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 相关文章推荐
Python中list初始化方法示例
Sep 18 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
Jan 18 Python
Python实现霍夫圆和椭圆变换代码详解
Jan 12 Python
浅谈dataframe中更改列属性的方法
Jul 10 Python
python实现感知器算法(批处理)
Jan 18 Python
Python利用字典破解WIFI密码的方法
Feb 27 Python
PyQt弹出式对话框的常用方法及标准按钮类型
Feb 27 Python
python之信息加密题目详解
Jun 26 Python
python写一个随机点名软件的实例
Nov 28 Python
Python使用Matlab命令过程解析
Jun 04 Python
python线程里哪种模块比较适合
Aug 02 Python
Python爬虫之Spider类用法简单介绍
Aug 04 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
在Windows版的PHP中使用ADO
2006/10/09 PHP
php 文本文件的读取效率
2012/02/10 PHP
Yii2创建表单(ActiveForm)方法详解
2016/07/23 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
2015/12/25 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
tensorflow实现简单的卷积网络
2018/05/24 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
python实现梯度法 python最速下降法
2020/03/24 Python
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
启动一个线程是用run()还是start()
2016/12/25 面试题
自我评价正确写法范文
2013/12/10 职场文书
财务会计专业求职信范文
2013/12/31 职场文书
我未来的职业规划范文
2014/01/11 职场文书
护士辞职信范文
2014/01/19 职场文书
社区优秀志愿者先进事迹
2014/05/09 职场文书
汽车销售经理岗位职责
2014/06/09 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
怎样写工作总结啊!
2019/06/18 职场文书
Python自然语言处理之切分算法详解
2021/04/25 Python
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS