Python实现购物程序思路及代码


Posted in Python onJuly 24, 2017

要求:

启动程序后,让用户输入工资,然后打印出带有序号的商品列表
用户输入商品序号购买相应的商品,或者输入 ' 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 相关文章推荐
Windows上配置Emacs来开发Python及用Python扩展Emacs
Nov 20 Python
Python2中文处理纪要的实现方法
Mar 10 Python
selenium+python实现自动登录脚本
Apr 22 Python
Python带动态参数功能的sqlite工具类
May 26 Python
python爬虫刷访问量 2019 7月
Aug 01 Python
Python List列表对象内置方法实例详解
Oct 22 Python
Python中sorted()排序与字母大小写的问题
Jan 14 Python
Python中if有多个条件处理方法
Feb 26 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
Mar 12 Python
Python如何定义有默认参数的函数
Aug 10 Python
Python Merge函数原理及用法解析
Sep 16 Python
python 实现socket服务端并发的四种方式
Dec 14 Python
python实现上传下载文件功能
Nov 19 #Python
分享几道你可能遇到的python面试题
Jul 24 #Python
python 判断是否为正小数和正整数的实例
Jul 23 #Python
python WindowsError的错误代码详解
Jul 23 #Python
python实现发送邮件功能
Jul 22 #Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
Jul 22 #Python
Python原始字符串与Unicode字符串操作符用法实例分析
Jul 22 #Python
You might like
各种战术和打法的原创者
2020/03/04 星际争霸
WIFI万能钥匙密码查询接口实例
2015/09/28 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
使用PHP访问RabbitMQ消息队列的方法示例
2018/06/06 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
JavaScript实现梯形乘法表的方法
2015/04/25 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
JS实现的相册图片左右滚动完整实例
2016/11/23 Javascript
原生JS实现左右箭头选择日期实例代码
2017/03/14 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
[58:32]EG vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中的高级函数map/reduce使用实例
2015/04/13 Python
python elasticsearch环境搭建详解
2019/09/02 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
2021/02/25 Python
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
英国在线发型和美容产品商店:Beauty Cutie
2019/04/27 全球购物
写给女朋友的道歉信
2014/01/08 职场文书
户外亲子活动策划方案
2014/02/07 职场文书
三方协议书范本
2014/04/22 职场文书
欢迎新生标语
2014/10/06 职场文书
订货会邀请函
2015/01/31 职场文书
自我评价优缺点范文
2015/03/11 职场文书
优秀大学生自荐信
2015/03/26 职场文书
民主生活会主持词
2015/07/01 职场文书
学生会工作感言
2015/08/07 职场文书
2015年度女工工作总结
2015/10/22 职场文书
Python实现照片卡通化
2021/12/06 Python