要求:

启动程序后,让用户输入工资,然后打印出带有序号的商品列表

用户输入商品序号购买相应的商品,或者输入 " 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(" 请输入您的薪水:")

if not salary.isdigit(): # 薪水不是数字,结束循环

print(" 输入格式有误!请重新输入...")

continue

break

balance = salary = int(salary)

print(" -----------欢迎购买------------ ")

# 生成带序号的商品列表

for index, item in enumerate(product_list):

print(index, item)

# 判断输入的序号是否符合要求

while True:

while True:

i = input(" 输入您要购买的商品序号,或输入 q 取消购买:")

if i == "q": # 输入 q 退出购买界面

while True:

a = input(" 是否继续购买?(Y/N):")

if a != "n" and a != "N" and a != "y" and a != "Y":

print(" 输入格式有误,请重试...")

continue

elif a == "y" or a == "Y": # 继续购买

break

else: # 购买完毕

if balance == salary: # 没有买任何东西

print(" 交易结束,购买失败...")

exit()

else: # 结算

print(" 您已成功购买以下商品: ")

for item in shopping_list:

print(item)

print(" 共消费金额 %d 元,余额 %d 元" % (salary - balance, balance))

exit()

continue

if not i.isdigit(): # 序号不是数字,结束循环

print(" 输入格式有误!请重新输入...")

continue

i = int(i)

if i < 0 or i >= len(product_list): # 序号范围不正确,结束循环

print(" 此商品不存在,请重新输入...")

continue

break

product = product_list[i]

price = int(product[1])

# 判断余额是否充足,够就直接扣款,不够提醒

if price <= balance:

balance -= price

shopping_list.append(product_list[i])

print(" 您已成功购买 %s ,当前余额为 %d 元" %(product, balance))

else:

print(" 购买失败,您的余额不足...")

while True:

a = input(" 是否继续购买?(Y/N):")

if a != "n" and a != "N" and a != "y" and a != "Y":

print(" 输入格式有误,请重试...")

continue

break

if a == "Y" or a == "y":

continue

else:

break

if balance == salary:

print(" 交易结束,购买失败...")

exit()

else:

print(" 您已成功购买以下商品: ")

for item in shopping_list:

print(item)

print(" 共消费金额 %d 元,余额 %d 元" %(salary-balance, balance))

exit()

python简单的购物程序代码-Python实现购物程序思路及代码相关推荐

  1. 50行的python游戏代码_50行代码实现贪吃蛇(具体思路及代码)

    [下载文档:  50行代码实现贪吃蛇(具体思路及代码).txt ] (友情提示:右键点上行txt文档名->目标另存为) 50行代码实现贪吃蛇(具体思路及代码) 最近一直在准备用来面试的几个小de ...

  2. python简单实践作业_【Python】:简单爬虫作业

    使用Python编写的图片爬虫作业: #coding=utf-8 import urllib import re def getPage(url): #urllib.urlopen(url[, dat ...

  3. python简单图形输出_基于 Python Matplotlib 模块的高质量图形输出

    Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块.它利用了 Python 下的数值计算模块 Numeric 及 Numarray,克隆了许多 M ...

  4. python简单爬虫手机号_使用Python编写多线程爬虫抓取邮箱与手机号(2)

    我们的爬虫抓取数据本质上就是不停的发起http请求,获取http响应,将其存入我们的电脑中.了解http协议有助于我们在抓取数据的时候对一些能够加速抓取速度的参数能够精准的控制,比如说keep-ali ...

  5. (LattePanda)拿铁熊猫python 简单控制led闪烁(使用python 进行硬件开发)

    前言 开发环境: LattePanda(拿铁熊猫)开发板, arduino, windows10 开发语言: python3.7, 首先说一下思路,这里的控制思路是通过对mcu中烧录 Firmata协 ...

  6. 普歌-允异团队-【Java实例】一起做一个简单的王者荣耀RPG吧!从设计思路到代码实现一条龙!-登录与注册(IO流)/记录时间/属性面板呈现

    [Java实例]-王者荣耀RPG-从设计思路到代码实现 前言 一.案例分析 1. 设计理念 2. 功能设计 (1)登录与注册 (2)游戏时间记录 (3)选择游戏模式 (4)游戏地图 (5)生物属性 二 ...

  7. python简单爬虫手机号_python手机号前7位归属地爬虫代码实例

    需求分析 项目上需要用到手机号前7位,判断号码是否合法,还有归属地查询.旧的数据是几年前了太久了,打算用python爬虫重新爬一份 单线程版本 # coding:utf-8 import reques ...

  8. python简单图片识别_用Python进行简单的图片识别(1)

    起因是这样的,我想买一个定焦镜头,但也不是必需品,可以长期观望购买.最初的想法是,写个程序,每天爬一下各大电商网站的价格,或者直接爬etao把该镜头的价格记录下来,突然有一个惊爆的低价,就发邮件通知. ...

  9. python简单网络爬虫_【Python】简单的网络爬虫

    完整代码 # encoding:UTF-8 # from bs4 import BeautifulSoup import urlparse import urllib2 import re impor ...

  10. python简单网络爬虫_【Python】 简单网络爬虫实现

    介绍网络爬虫(英语:网络爬虫),也称为网络蜘蛛(蜘蛛)是一个Web机器人用于自动浏览万维网.其目的通常是为了编译web索引.\u2014\u2014维基百科web爬虫程序可以节省他们访问的页面,以便搜 ...

最新文章

  1. Web 服务器-Apache详解
  2. C 整数反转
  3. All input tensors must be on the same device
  4. docker pull 私有_【赵强老师】管理Docker镜像
  5. python查看库函数和方法_查看python库函数和三方库函数文档
  6. nginx unit
  7. CUDA ---- Hello World From GPU
  8. arcgis中img 批量转换tif_在ArcGIS中Python使用及批量裁剪示技巧讲解 !
  9. STL vector的迭代器的熟练运用及lower_bound和upper_bound的使用
  10. centos7修改ip地址命令_linux nmcli命令详解
  11. 因果分析:原理、方法论、应用
  12. 计算机网络的结构组成
  13. MPB:南土所褚海燕组-土壤宏转录组学样本前处理与数据分析
  14. 翘首期盼的3D仿真练实操全面开启线上学理论,3D练实操,为您插上考证成功的翅膀
  15. 老旗舰华为能用上鸿蒙吗,千元机也能用鸿蒙!曝荣耀 9X 手机年内全部升级鸿蒙系统...
  16. android8.0 桌面图标适配
  17. 单位冲激信号 matlab,matlab单位冲激序列
  18. 五大浏览器:chrome---Blink IE--Trident firebox--Gecko safari--Webkit opera--Blink
  19. 【环境搭建】Ubuntu安装vulkan
  20. CNMOOC-os- ch2硬件基础

热门文章

  1. 【Flink】使用Flink实现索引数据到Elasticsearch
  2. 95-10-040-启动-限额管理
  3. 【Spring】SpringMVC 初始化 流程
  4. 【elasticsearch】elasticsearch 搜索结果的含义
  5. 【Kafka】Kafka InvalidReceiveException: Invalid receive (size = 369296128 larger than 104857600)
  6. 【MySQL】MySQL SQL查询语法建议
  7. git : 上传大文件或者PDF或者二进制文件导致无法上传
  8. linux-01-linux中的一些特殊符号
  9. 【oracle】如何恢复误删的表记录数据
  10. 从Nginx、Apache工作原理看为什么Nginx比Apache高效!