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编写的微博应用
Oct 17 Python
Python本地与全局命名空间用法实例
Jun 16 Python
Python设计实现的计算器功能完整实例
Aug 18 Python
python数字图像处理之高级滤波代码详解
Nov 23 Python
python random从集合中随机选择元素的方法
Jan 23 Python
Python下简易的单例模式详解
Apr 08 Python
python简单验证码识别的实现方法
May 10 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 Python
Python timer定时器两种常用方法解析
Jan 20 Python
django之从html页面表单获取输入的数据实例
Mar 16 Python
Pygame Draw绘图函数的具体使用
Nov 17 Python
python在package下继续嵌套一个package
Apr 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
Linux中为php配置伪静态
2014/12/17 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
2015/03/18 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
php5.x禁用eval的操作方法
2018/10/19 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
JavaScript实现网站访问次数统计代码
2015/08/12 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
JS实现倒计时图文效果
2018/11/17 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
详解react组件通讯方式(多种)
2020/05/06 Javascript
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
利用Python查看目录中的文件示例详解
2017/08/28 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
python 实现快速生成连续、随机字母列表
2019/11/28 Python
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
Linux的文件类型
2016/07/05 面试题
感恩节活动方案
2014/01/27 职场文书
高中体育教学反思
2014/01/29 职场文书
《傅雷家书》教学反思
2014/04/20 职场文书
学习雷锋活动总结
2014/04/29 职场文书
师范生求职信
2014/06/14 职场文书
部门2014年度工作总结
2014/11/12 职场文书
自我检讨书范文
2015/01/28 职场文书
邀请函格式范文
2015/02/02 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python