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实现的百度贴吧网络爬虫实例
Apr 17 Python
深入理解Python 关于supper 的 用法和原理
Feb 28 Python
Python使用win32 COM实现Excel的写入与保存功能示例
May 03 Python
Python 统计字数的思路详解
May 08 Python
python如何创建TCP服务端和客户端
Aug 26 Python
解决pandas .to_excel不覆盖已有sheet的问题
Dec 10 Python
Pyqt5 基本界面组件之inputDialog的使用
Jun 25 Python
Python使用lambda表达式对字典排序操作示例
Jul 25 Python
python自动分箱,计算woe,iv的实例代码
Nov 22 Python
关于Python Tkinter Button控件command传参问题的解决方式
Mar 04 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
Mar 10 Python
用python实现名片管理系统
Jun 18 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 5.3.0 安装分析心得
2009/08/07 PHP
php快速url重写 更新版[需php 5.30以上]
2010/04/20 PHP
PHP中的正则表达式函数介绍
2012/02/27 PHP
PHP Directory 函数的详解
2013/03/07 PHP
基于php iconv函数的使用详解
2013/06/09 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
ExtJS Ext.MessageBox.alert()弹出对话框详解
2010/04/02 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
nodejs入门教程四:URL相关模块用法分析
2017/04/24 NodeJs
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
js中Object.defineProperty()方法的不详解
2018/07/09 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
python中单下划线_的常见用法总结
2018/07/10 Python
Django 实现购物车功能的示例代码
2018/10/08 Python
python树莓派红外反射传感器
2019/01/21 Python
24式加速你的Python(小结)
2019/06/13 Python
python区块及区块链的开发详解
2019/07/03 Python
django rest framework serializer返回时间自动格式化方法
2020/03/31 Python
python:解析requests返回的response(json格式)说明
2020/04/30 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
大学新学期计划书
2014/04/28 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python
使用CSS连接数据库的方式
2022/02/28 HTML / CSS
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python