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 相关文章推荐
使用setup.py安装python包和卸载python包的方法
Nov 27 Python
Python中多线程thread与threading的实现方法
Aug 18 Python
跟老齐学Python之赋值,简单也不简单
Sep 24 Python
python分割文件的常用方法
Nov 01 Python
python提取页面内url列表的方法
May 25 Python
python爬虫实现教程转换成 PDF 电子书
Feb 19 Python
Python 数据处理库 pandas 入门教程基本操作
Apr 19 Python
PyQt5每天必学之进度条效果
Apr 19 Python
python 写一个性能测试工具(一)
Oct 24 Python
vue.js刷新当前页面的实例讲解
Dec 29 Python
python中threading和queue库实现多线程编程
Feb 06 Python
Django + Taro 前后端分离项目实现企业微信登录功能
Apr 07 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制作静态网站的模板框架(三)
2006/10/09 PHP
一个PHP+MSSQL分页的例子
2006/10/09 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
简述php环境搭建与配置
2016/12/05 PHP
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
Bootstrap前端开发案例一
2016/06/17 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
2017/07/05 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
bootstrap实现嵌套模态框的实例代码
2020/01/10 Javascript
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
python控制台英汉汉英电子词典
2020/04/23 Python
python脚本实现统计日志文件中的ip访问次数代码分享
2014/08/06 Python
python 基础教程之Map使用方法
2017/01/17 Python
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
2020/03/06 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
美国渔具店:FishUSA
2019/08/07 全球购物
军校本科大学生自我评价
2014/01/14 职场文书
销售团队口号大全
2014/06/06 职场文书
大型公益活动策划方案
2014/08/20 职场文书
施工员岗位职责范本
2015/04/11 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书