作业需求:
数据结构: goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ...... ] 功能要求: 基础要求: 1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表 2、允许用户根据商品编号购买商品 3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4、可随时退出,退出时,打印已购买商品和余额 5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示 扩展需求: 1、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买 2、允许查询之前的消费记录
# 系统储存的用户名密码信息:
user_info = {‘andyzhang‘:‘123‘,‘hanmei‘:‘321‘,‘yaoyao‘:‘023‘}
goods = [{‘name‘: ‘平板电脑‘, ‘price‘: 2109}, {‘name‘: ‘耳机‘, ‘price‘: 25}, {‘name‘: ‘游艇‘, ‘price‘: 2000}, {‘name‘: ‘美女‘, ‘price‘: 998}]
exit_flag = false #设立标识符
while not exit_flag: #循环,用户名密码错误之后能让用户再次输入
name_input = input(‘请输入用户名:‘)
password_input=input(‘请输入密码:‘)
#判断用户名、密码是否正确
#用户名、密码正确则登录
if password_input == user_info.get(name_input)
print(‘登录成功‘)
salary_input = int(input(‘请输入您的工资:‘))
#输入工资后打印商品列表
print(‘--------商品列表--------‘)
for k, i in enumerate(goods):
print(‘%s. %s price:%s‘ % (k,i[name],i[price]))
#定义一个购物车为空列表
cart = []
#用户输入有2种情况:
#1、用户输入数字:如果输入的数字是商品编码,则把相应的商品添加到购物车;
#如果输入的数字不是商品编码,则提示“商品编码错误”信息;
#2、输入字母“q”则退出
while not exit_flag: #循环,让用户可以持续添加商品编码
product_choice = input(请输入您要购买的商品编号:)
#第一种情况:用户输入的是数字
if product_choice.isdigit():
choice = int(product_choice)
#输入数字在商品编码范围之内
if choice>=0 and choice <len(goods):
#输入正确的商品编码后,去判断工资是否足够买这个商品,
#余额足够就把所选的商品添加到购物车cart 列表中,并从余额中扣除相应的价格,打印“商品已添加到购物车”和所剩余额信息。
if salary_input >= goods[choice][‘price‘]
cart.append[goods[choice]]
print(‘商品: %s 已被添加到购物车‘ % (goods[choice][‘name‘]))
salary_input -= goods[choice][‘price‘]
print(‘现在的余额是:‘salary_input)
#余额不足
else:
print("余额不足!")
else:
print(‘商品不存在!‘)
#用户输入的是字母‘q‘
elif product_choice == ‘q‘
exit_flag = True
if len(cart) > 0
print(--------您已购买的商品清单--------)
for index,i enumerate(cart)
print(‘%s %s price:s%‘ % (index,i[‘name‘],i["price"]))
print(‘您的余额还剩:‘,salary_input) #打印余额信息
#用户名、密码错误,‘打印用户名密码错误’
else:
print(“用户名密码错误,请重新输入:”)