python编写购物程序_Python实现购物程序思路及代码
要求:
启动程序后,让用户输入工资,然后打印出带有序号的商品列表
用户输入商品序号购买相应的商品,或者输入 ' q ' 退出购买界面
选择商品后,检查余额是否足够,够则直接扣款,不够则提示余额不足
用户每购买一件商品后,或者输入 ' q ' 退出购买界面后,提示:是否继续购买?(Y/N),实现多次购买
若用户购买了商品,打印出购买的商品列表,总金额,余额;若用户没买任何商品,打印:交易结束,购物失败
Readme:
运行程序,输入薪水,根据商品列表的序号选择购买的商品,可以选择多次购买,或者不购买
流程图:
代码:
# 简单的购物小程序
product_list = [
['surface pro 4', 7800],
['dell xps 15', 12000],
['macbook', 12000],
['小米6', 2499],
['iphone7', 4600],
['坚果Pro', 1499]
]
shopping_list = []
# 判断输入的薪水格式是否正确
while True:
salary = input('\n请输入您的薪水:')
if not salary.isdigit(): # 薪水不是数字,结束循环
print('\n输入格式有误!请重新输入...')
continue
break
balance = salary = int(salary)
print('\n-----------欢迎购买------------\n')
# 生成带序号的商品列表
for index, item in enumerate(product_list):
print(index, item)
# 判断输入的序号是否符合要求
while True:
while True:
i = input('\n输入您要购买的商品序号,或输入 q 取消购买:')
if i == 'q': # 输入 q 退出购买界面
while True:
a = input('\n是否继续购买?(Y/N):')
if a != 'n' and a != 'N' and a != 'y' and a != 'Y':
print('\n输入格式有误,请重试...')
continue
elif a == 'y' or a == 'Y': # 继续购买
break
else: # 购买完毕
if balance == salary: # 没有买任何东西
print('\n交易结束,购买失败...')
exit()
else: # 结算
print('\n您已成功购买以下商品:\n')
for item in shopping_list:
print(item)
print('\n共消费金额 %d 元,余额 %d 元' % (salary - balance, balance))
exit()
continue
if not i.isdigit(): # 序号不是数字,结束循环
print('\n输入格式有误!请重新输入...')
continue
i = int(i)
if i < 0 or i >= len(product_list): # 序号范围不正确,结束循环
print('\n此商品不存在,请重新输入...')
continue
break
product = product_list[i]
price = int(product[1])
# 判断余额是否充足,够就直接扣款,不够提醒
if price <= balance:
balance -= price
shopping_list.append(product_list[i])
print('\n您已成功购买 %s ,当前余额为 %d 元' %(product, balance))
else:
print('\n购买失败,您的余额不足...')
while True:
a = input('\n是否继续购买?(Y/N):')
if a != 'n' and a != 'N' and a != 'y' and a != 'Y':
print('\n输入格式有误,请重试...')
continue
break
if a == 'Y' or a == 'y':
continue
else:
break
if balance == salary:
print('\n交易结束,购买失败...')
exit()
else:
print('\n您已成功购买以下商品:\n')
for item in shopping_list:
print(item)
print('\n共消费金额 %d 元,余额 %d 元' %(salary-balance, balance))
exit()
希望与广大网友互动??
点此进行留言吧!
python编写购物程序_Python实现购物程序思路及代码相关推荐
- python编写代码_用 Python 编写干净、可测试、高质量的代码
用 Python 编写干净.可测试.高质量的代码 Noah Gift 2010 年 12 月 20 日发布 简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R ...
- python编写高质量代码_用 Python 编写干净、可测试、高质量的代码
用 Python 编写干净.可测试.高质量的代码 Noah Gift 2010 年 12 月 20 日发布 简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R ...
- 用 Python 编写干净、可测试、高质量的代码
简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R C" 的作者之一 Brian Kernigan 在 Software Tools 一书中总结了软件 ...
- python编写木马攻击_Python编写简易木马程序
Python编写简易木马程序 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Sublime text2 + ...
- python编写统计选票的程序_使用python编写微信公众号发稿统计程序
近日为学校公众号统计发稿情况,需统计本年度各部门分别所发稿件标题.时间.作者等. 首先考虑查看公众号后台有无统计功能,看到的界面如下: 每页只显示7天的消息,且没有部门作者信息.再看另一界面: 只统计 ...
- Python编写无界面版打字练习程序
开学第一课:一定不要这样问老师Python问题 在线开放课程"Python程序设计基础"第7次开课通知 智慧树大学共享课"Python数据分析与数据可视化"20 ...
- 用python编写一个处理报文的小程序
最近用python编写了一个处理报文的小程序,最后保存成.txt格式. 主要内容非常简单,介绍如下: 1.报文内容如下所示,比较乱,因为要输入到matalab中进行仿真验证,因此,需要将里面的'\n' ...
- 用python编写一个掷骰子的小程序
摘要: 编写了一个掷骰子的程序,主要通过pygame模块实现了以下几点功能:1.每次点击开始键时,骰子都会转动起来.2.每次开始后点击停止键时,骰子停止并且随机停在1-6的某一个数字上.3.按下结束键 ...
- python判断火车票座位_Python抢票程序优化,可以选择车次和座次
Python抢票程序优化,可以选择车次和座次 阅读文本大概需要 5 分钟. pk 哥在元旦前写了一篇关于自动化抢票的程序 用Python抢火车票加邮件通知,同时建了一个火车票助力群,本来只是写着玩玩, ...
- 用python编写一个猜年龄的小程序-知道了这个,你也能写出 Python 趣味小程序
原标题:知道了这个,你也能写出 Python 趣味小程序 前两天在 51CTO 看见某篇推荐博文,大概是一个 豆子比较感兴趣,在知乎和 github 上搜索了相关的源代码,发现原来实现起来非常的简单, ...
最新文章
- outlook 2010 记忆式键入不工作的解决办法
- day36 Pyhton 网络编程03
- Leetcode--全排列(Java)
- mysql 数据查询优化_优化MySQL数据库查询的三种方法
- Visual Studio的语法着色终于调得赏心悦目
- 京东拼购弹窗骗局5万人上当?回应:报道内容不实 保留追究权利
- Linux下一块网卡设置多个IP地址
- 系统学习机器学习之模型诊断与调试
- 简单批处理内部命令简介(转)
- Flume系列一之架构介绍和安装
- java jsp中文乱码怎么解决_分享JSP中文乱码解决方法
- 图像检索代码python_python-图像检索
- eNSP模拟无线AC和AP
- 程序员必备技能之上传代码(Github篇)
- 用最优控制视角看微分几何下的测地线
- 点餐APP 冲刺二总结
- 老钓友分享蚯蚓钓鲤鱼配方
- Hibernate中,mappedBy和注解@JoinColumn的对比
- Linux是什么操作系统?Linux和Windows的区别
- [实践篇]13.8 如何解析gcore?
热门文章
- 五个人+三个月=美摄云非编1.0 | 我们采访到了“工期很紧“的美摄研发总监
- Xilinx FPGA,“加速”视频质量提升
- Java多线程之单例模式在多线程环境下的安全问题
- Linux I/O 那些事儿
- 腾讯关系型数据库达成“双百”里程碑——6大企业级MySQL特性全面解析
- 「递归」第10集 | 一款“摔”出来的产品
- C++之TR1::function
- ajax post请求不走success org.springframework.web.util.NestedServletException: Request processing failed
- leetcode 787. Cheapest Flights Within K Stops | 787. K 站中转内最便宜的航班(BFS)
- 左神算法:求最大子矩阵的大小(Java版)