当前位置: 首页 > news >正文

Python_week1-2018.7.8(购物车,BMI增删改查系统)

"""
功能要求:
要求用户输入自己拥有总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]

"""

goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]

money = int(input("请输入你的总资产是多少:"))
count = 1
lis = [1,2,3,4]
for i in goods:
print("{} {} {}".format(count, i.get("name"), i.get("price")))
count += 1

lst = []
while True:
a = input("请输入你要购买的商品编码:").upper()
if a == "Q":
print("输入结束!!")
break
elif int(a) in lis:
a = int(a)
if money - goods[a - 1].get("price") >= 0:
lst.append(a)
print("已经成功添加--%s--号商品,商品价格是--%s--,你还剩下--%s--" % (a, goods[a - 1].get("price"), money - goods[a - 1].get("price")))
money = money - goods[a - 1].get("price")
else:
print("余额不足,无法购买!")
break

else:
print("输入有误!!!请重新输入:")
print(lst)
print("你还剩余--{}元--你目前已经成功购买以下产品:".format(money))
for i in lst:
print(goods[i - 1].get("name"))
print("购物结束!")




# 1.创建并输出菜单, 菜单是不可变的. 所以使用元组
# menus = ("1, 录入", "2, 查询", "3, 删除", "4, 修改", "5, 退出")

# 存储用户的信息 id: {'name':'名字', 'weight':体重, 'height':身高}
# 例如:目前有两个用户信息:1. 汪峰, 2. 章子怡
# 存储结构:
# {
# 1:{'name':'汪峰', 'weight':80, 'height':1.8, 'BMI':24.7},
# 2:{'name':'章子怡', 'weight':50, 'height':1.65, 'BMI':18.4}
# }
# bodies = {}
#
# body_id = 1 # 编号从1开始

# 体质指数(BMI)= 体重(kg)÷ (身高(m) x 身高(m))
# 体重的单位: KG
# 身高的单位: m
# 需求:首先。打印菜单,然后用户输入选择的菜单项
# 输入1:进入录入环节。用户需要录入:名字,身高,体重.
# 由程序计算出BMI指数. 保存到bodies字典中. 第一个用户的id是1, 第二个是2, 以此类推
# 录入完毕后. 提示用户是否继续录入. 如果选择是, 则继续进行录入, 直到用户输入否. 则返回到主菜单
# 输入2: 进入查询环节, 提示用户输入要查询的人的id. 如果不存在,给与提示, 如果存在. 则显示出该用户的全部信息(名字,身高,体重,BMI)
# 然后提示用户是否继续查询. 如果选择是, 继续进行查询, 直到用户输入否, 返回主菜单
# 输入3: 进入删除环节, 提示用户输入要删除的人的id, 如果id不存在, 给与提示, 如果存在, 则执行删除操作. 并提示删除成功.
# 然后提示用户是否继续删除, 如果是, 继续让用户选择要删除的id, 直到用户输入否, 返回主菜单
# 输入4: 进入修改环节, 首先让用户输入要修改的人的id, 根据id查找用户信息, 如果不存在, 给与提示, 如果存在, 将用户原信息进行打印,
# 然后提示用户输入新的名字, 身高, 体重. 由程序重新计算BMI指数. 并将新的信息保存在bodies中. 同时给用户展示新的用户信息
# 然后提示用户是否继续修改, 如果是, 则继续要求用户输入id信息. 直到用户输入否, 返回主菜单.
# 输入5: 程序退出.
# 输入其他任何内容. 都予以提示不合法. 让用户重新进行输入
body_id = 1
dic = {}
while True:
menus = ("1, 录入", "2, 查询", "3, 删除", "4, 修改", "5, 退出")
print("欢迎您进入系统!!!")
for i in menus:
print(i)
num = input("请根据菜单序号输入你要进行的操作:")
if num == "1": ##添加用户信息
#录入系统
print("您现在在--录入--界面:")
while True:
bodies = {}
name = input("请输入你的姓名:")
bodies["name"] = name
hight = int(input("请输入你的身高(cm):"))
bodies["hight"] = hight
weight = int(input("请输入你的体重(Kg):"))
bodies["weight"] = weight
BMI = weight / hight * 2
bodies["BMI"] = BMI
dic[body_id] = bodies
body_id += 1
chose1 = input("选择是否还要录入:")
print(bodies)
print(dic)
if chose1 == "是":
continue
else:
break
# print(bodies)
# print(dic)

elif num == "2": ##查看用户信息模块
while True:
print(bodies)
print(dic)
print("您现在在--查询--界面:")
chose2 = int(input("请输入你要查询的人ID号码:"))
print(dic.get(chose2, "不存在这个ID"))
chose1 = input("选择是否还要查询:")
if chose1 == "是":
continue
else:
break

elif num == "3": ##删除用户信息模块
while True:
print("您现在在--删除--界面:")
print(bodies)
print(dic)
chose3 = int(input("请输入你要删除的人ID号码:"))
print(dic.keys())
if chose3 in dic.keys():
ret = dic.pop(chose3)
print("你删除的内容是:{}".format(ret), " 删除成功!!")
else:
print("没有这个ID:")
chose1 = input("选择是否还要删除:")
if chose1 == "是":
continue
else:
break


elif num == "4": #修改用户信息模块
print("您现在在--修改--界面:")
while True:
chose4 = int(input("请输入你要修改的人ID号码:"))
print(dic.keys())
if chose4 in dic.keys():
print(dic[chose4])
bodies = {}
name = input("请输入新的的姓名:")
bodies["name"] = name
hight = int(input("请输入新的的身高(cm):"))
bodies["hight"] = hight
weight = int(input("请输入新的的体重(Kg):"))
bodies["weight"] = weight
BMI = weight / hight * 2
bodies["BMI"] = BMI
dic[chose4] = bodies
body_id += 1
else:
print("没有这个ID:")
continue
chose1 = input("选择是否还要继续修改:")
print(bodies)
print(dic)
if chose1 == "是":
print("请进行下一次修改!!")
else:
break
elif num == "5":
print("您退出了程序,欢迎下次使用!")
break
else:
print("你输入有误!!")

转载于:https://www.cnblogs.com/kcwxx/p/9280872.html

相关文章:

  • 服务器状态监控相关
  • 初学Python——面向对象编程
  • 给妹子讲python-S01E07字符编码历史观-从ASCII到Unicode
  • JS字符串转数字方法总结
  • 经典算法详解(6)渔夫捕鱼
  • MariaDB 10.3 instant ADD COLUMN亿级大表毫秒级加字段
  • 09_用户行为分析_广告精准推送项目介绍
  • Linux 查看gpu信息 Nvidia显卡信息及使用情况
  • tensorflow笔记6:tf.nn.dynamic_rnn 和 bidirectional_dynamic_rnn:的输出,output和state,以及如何作为decoder 的输入...
  • CSS标签
  • 自我绘制四
  • 路飞学城-Python爬虫集训-第二章
  • 正则之从dom字符串中提取url
  • CSS面试复习(二):CSS的使用
  • ACM博弈
  • [译]Python中的类属性与实例属性的区别
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【mysql】环境安装、服务启动、密码设置
  • 08.Android之View事件问题
  • Angular6错误 Service: No provider for Renderer2
  • dva中组件的懒加载
  • echarts花样作死的坑
  • ES6系列(二)变量的解构赋值
  • ES6语法详解(一)
  • ESLint简单操作
  • extract-text-webpack-plugin用法
  • Fastjson的基本使用方法大全
  • NSTimer学习笔记
  • PHP CLI应用的调试原理
  • Python - 闭包Closure
  • React-flux杂记
  • Service Worker
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 前端面试之CSS3新特性
  • 深度学习在携程攻略社区的应用
  • 使用SAX解析XML
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 携程小程序初体验
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #AngularJS#$sce.trustAsResourceUrl
  • $(function(){})与(function($){....})(jQuery)的区别
  • (2015)JS ES6 必知的十个 特性
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (rabbitmq的高级特性)消息可靠性
  • (二)PySpark3:SparkSQL编程
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (接口封装)
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (转)IOS中获取各种文件的目录路径的方法
  • .net core控制台应用程序初识
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证