Python实现购物程序思路及代码

 更新时间:2017年07月24日 08:43:14   作者:Dreamer_qiao  
本文给大家分享的是使用Python实现的购物小程序的思路要求以及相关代码,非常的简单实用,有需要的小伙伴可以参考下

要求:

启动程序后,让用户输入工资,然后打印出带有序号的商品列表
用户输入商品序号购买相应的商品,或者输入 ' 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实现图像尺寸和格式转换处理的示例详解

    这篇文章主要为大家详细介绍了如何利用Python实现图像尺寸获取和格式转换处理的功能,文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-04-04
  • 零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版

    零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版

    前面已经发了一篇关于百度贴吧抓取的代码,今天我们来看下代码的改进版,参考了上篇抓取糗事百科的思路,给需要的小伙伴们参考下吧
    2014-11-11
  • python 通过exifread读取照片信息

    python 通过exifread读取照片信息

    这篇文章主要介绍了python 如何通过exifread读取照片信息,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • python运行加速的几种方式

    python运行加速的几种方式

    Python运行的慢是历来被诟病的,本文就来介绍一下python运行加速的几种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Python3中的bytes和str类型详解

    Python3中的bytes和str类型详解

    这篇文章主要介绍了Python3中的bytes和str类型,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • python编程Flask框架简单使用教程

    python编程Flask框架简单使用教程

    这篇文章主要为大家介绍了python编程中Flask框架简单使用教程,有需要的朋友可以借鉴参考下希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-11-11
  • 详解Python多线程Selenium跨浏览器测试

    详解Python多线程Selenium跨浏览器测试

    本篇文章主要介绍了Python多线程Selenium跨浏览器测试,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • python 正确保留多位小数的实例

    python 正确保留多位小数的实例

    今天小编就为大家分享一篇python 正确保留多位小数的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Pandas 如何处理DataFrame中的inf值

    Pandas 如何处理DataFrame中的inf值

    这篇文章主要介绍了Pandas 如何处理DataFrame中的inf值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 基于PyQt5制作一个PDF文件合并器

    基于PyQt5制作一个PDF文件合并器

    PDF文件合并工具是非常好用可以把多个pdf文件合并成一个,本文将利用Python中的PyQT5模块,制作一个简易的PDF文件合并器,感兴趣的可以了解一下
    2022-03-03

最新评论