要求:

启动程序后,让用户输入工资,然后打印出带有序号的商品列表

用户输入商品序号购买相应的商品,或者输入 ' 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实现购物程序思路及代码相关推荐

  1. python编写代码_用 Python 编写干净、可测试、高质量的代码

    用 Python 编写干净.可测试.高质量的代码 Noah Gift 2010 年 12 月 20 日发布 简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R ...

  2. python编写高质量代码_用 Python 编写干净、可测试、高质量的代码

    用 Python 编写干净.可测试.高质量的代码 Noah Gift 2010 年 12 月 20 日发布 简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R ...

  3. 用 Python 编写干净、可测试、高质量的代码

    简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R C" 的作者之一 Brian Kernigan 在 Software Tools 一书中总结了软件 ...

  4. python编写木马攻击_Python编写简易木马程序

    Python编写简易木马程序 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Sublime text2 + ...

  5. python编写统计选票的程序_使用python编写微信公众号发稿统计程序

    近日为学校公众号统计发稿情况,需统计本年度各部门分别所发稿件标题.时间.作者等. 首先考虑查看公众号后台有无统计功能,看到的界面如下: 每页只显示7天的消息,且没有部门作者信息.再看另一界面: 只统计 ...

  6. Python编写无界面版打字练习程序

    开学第一课:一定不要这样问老师Python问题 在线开放课程"Python程序设计基础"第7次开课通知 智慧树大学共享课"Python数据分析与数据可视化"20 ...

  7. 用python编写一个处理报文的小程序

    最近用python编写了一个处理报文的小程序,最后保存成.txt格式. 主要内容非常简单,介绍如下: 1.报文内容如下所示,比较乱,因为要输入到matalab中进行仿真验证,因此,需要将里面的'\n' ...

  8. 用python编写一个掷骰子的小程序

    摘要: 编写了一个掷骰子的程序,主要通过pygame模块实现了以下几点功能:1.每次点击开始键时,骰子都会转动起来.2.每次开始后点击停止键时,骰子停止并且随机停在1-6的某一个数字上.3.按下结束键 ...

  9. python判断火车票座位_Python抢票程序优化,可以选择车次和座次

    Python抢票程序优化,可以选择车次和座次 阅读文本大概需要 5 分钟. pk 哥在元旦前写了一篇关于自动化抢票的程序 用Python抢火车票加邮件通知,同时建了一个火车票助力群,本来只是写着玩玩, ...

  10. 用python编写一个猜年龄的小程序-知道了这个,你也能写出 Python 趣味小程序

    原标题:知道了这个,你也能写出 Python 趣味小程序 前两天在 51CTO 看见某篇推荐博文,大概是一个 豆子比较感兴趣,在知乎和 github 上搜索了相关的源代码,发现原来实现起来非常的简单, ...

最新文章

  1. outlook 2010 记忆式键入不工作的解决办法
  2. day36 Pyhton 网络编程03
  3. Leetcode--全排列(Java)
  4. mysql 数据查询优化_优化MySQL数据库查询的三种方法
  5. Visual Studio的语法着色终于调得赏心悦目
  6. 京东拼购弹窗骗局5万人上当?回应:报道内容不实 保留追究权利
  7. Linux下一块网卡设置多个IP地址
  8. 系统学习机器学习之模型诊断与调试
  9. 简单批处理内部命令简介(转)
  10. Flume系列一之架构介绍和安装
  11. java jsp中文乱码怎么解决_分享JSP中文乱码解决方法
  12. 图像检索代码python_python-图像检索
  13. eNSP模拟无线AC和AP
  14. 程序员必备技能之上传代码(Github篇)
  15. 用最优控制视角看微分几何下的测地线
  16. 点餐APP 冲刺二总结
  17. 老钓友分享蚯蚓钓鲤鱼配方
  18. Hibernate中,mappedBy和注解@JoinColumn的对比
  19. Linux是什么操作系统?Linux和Windows的区别
  20. [实践篇]13.8 如何解析gcore?

热门文章

  1. 五个人+三个月=美摄云非编1.0 | 我们采访到了“工期很紧“的美摄研发总监
  2. Xilinx FPGA,“加速”视频质量提升
  3. Java多线程之单例模式在多线程环境下的安全问题
  4. Linux I/O 那些事儿
  5. 腾讯关系型数据库达成“双百”里程碑——6大企业级MySQL特性全面解析
  6. 「递归」第10集 | 一款“摔”出来的产品
  7. C++之TR1::function
  8. ajax post请求不走success org.springframework.web.util.NestedServletException: Request processing failed
  9. leetcode 787. Cheapest Flights Within K Stops | 787. K 站中转内最便宜的航班(BFS)
  10. 左神算法:求最大子矩阵的大小(Java版)