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对html代码进行escape编码的方法
May 04 Python
Python中处理字符串之isalpha()方法的使用
May 18 Python
Python中return语句用法实例分析
Aug 04 Python
Python切片工具pillow用法示例
Mar 30 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
pygame游戏之旅 添加icon和bgm音效的方法
Nov 21 Python
用xpath获取指定标签下的所有text的实例
Jan 02 Python
Python namedtuple命名元组实现过程解析
Jan 08 Python
python with语句的原理与用法详解
Mar 30 Python
python实现将字符串中的数字提取出来然后求和
Apr 02 Python
python中判断数字是否为质数的实例讲解
Dec 06 Python
python通配符之glob模块的使用详解
Apr 24 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
PHP高级对象构建 多个构造函数的使用
2012/02/05 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
PHP数组实例详解
2016/06/26 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
学习ExtJS fit布局使用说明
2009/10/08 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
Javascript中作用域的详细介绍
2016/10/06 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
原生JS实现自定义滚动条效果
2020/10/27 Javascript
React Native实现地址挑选器功能
2017/10/24 Javascript
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
Vue进度条progressbar组件功能
2018/04/17 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
jQuery实现的移动端图片缩放功能组件示例
2020/05/01 jQuery
js实现盒子移动动画效果
2020/08/09 Javascript
Python实现KNN邻近算法
2021/01/28 Python
python脚本生成caffe train_list.txt的方法
2018/04/27 Python
Linux上使用Python统计每天的键盘输入次数
2019/04/17 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
Pycharm新手使用教程(图文详解)
2020/09/17 Python
python基于selenium爬取斗鱼弹幕
2021/02/20 Python
盛大笔试题
2016/11/05 面试题
入党自我评价优缺点
2014/01/25 职场文书
质量负责人任命书
2014/06/06 职场文书
法学自荐信
2014/06/20 职场文书
借款协议书
2014/09/16 职场文书
思想品德评语大全
2014/12/31 职场文书
安装工程师岗位职责
2015/02/13 职场文书
庆七一活动简报
2015/07/20 职场文书
任命书格式范文
2015/09/22 职场文书