python简单购物车功能



# 需求:
# 用户名和密码存放于文件中,格式为:egon|egon123
# 启动程序后,先登录,登录成功则让用户输入工资, 然后打印商品列表,失败则重新登录,超过三次则退出程序
# 允许用户根据商品编号购买商品
# 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
# 可随时退出,退出时,打印已购买商品和余额

msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}

conut=0
# 循环体开始循环
while True:
u=input('请输入用户名:')
if conut == 3:
break


with open('a.txt','r') as f:
data=f.readlines()
print(data)


for user in data:
user_list =user.strip().split('|')
if u == user_list[0]:
print(user_list[0])

while True:
p=input('请输入密码:').strip()
if conut == 3:
break


with open('a.txt','r') as f:
data=f.readlines()

for passwd in data:
user_list=passwd.strip().split('|')

if u == user_list[0] and p == user_list[1].strip():
print('用户%s登陆成功'%u)

while True:
money_str = input('请输入工资:').strip()
money = int(money_str)

if money == '':
continue

# 打印商品名称和价格列表

msg_list = list(msg_dic.items())

# 打印商品名称列表

msg_name_list = list(msg_dic.keys())

# 定义一个空的购物列表
shopping_list = []
shop_car = []



while True:
print('Product List'.center(40, '-'))

for prod_name in msg_list:
print(msg_list.index(prod_name) + 1, prod_name)

choice_id = input('请输入商品名对应的编号,输入q退出程序!>>: ').strip()
# 退出后打印已购商品信息和剩余金额
if choice_id == 'q':
print('购物车清单'.center(37, '-'))
print('已购商品:', shop_car)
print('您当前的余额为:', money)
print('结束'.center(40, '-'))
exit()

if choice_id.isdigit():
choice_id = int(choice_id)
# 判断输入的商品编号条件
if choice_id > 0 and choice_id <= len(msg_list):
# 通过商品ID,等到商品名称
choice_prod_name = msg_name_list[choice_id - 1]

print('您选择的商品是%s!' % choice_prod_name)

while True:
prod_num = input('请输入购买商品个数,输入q退出程序!>>: ').strip()
total_price = int(msg_dic[choice_prod_name]) * int(prod_num)
# 判断是否金额足够购买商品
if total_price <= money:
# 计算剩余金额
money -= total_price
# 将已购买商品追加到列表中
shop_car.append((choice_prod_name, int(prod_num)))
print('您已购买商品%s' % choice_prod_name)
print('您当前的余额为:', money)
else:
# 购买商品余额不足处理
print('您的余额不足')

# 退出打印已购商品清单,并打印余额
if prod_num == 'q':
print('购物车清单'.center(37, '-'))
print('已购商品:', shop_car)
print('您当前的余额为:', money)
print('结束'.center(40, '-'))
exit()
# 判断输入商品数量是否为纯数字
if prod_num.isdigit():
break
# 打印添加到购物车的商品
shopping_list.append(
(choice_prod_name, msg_dic[choice_prod_name], int(prod_num)))
print('购物车', shopping_list)


else:
print('您输入的商品编号%s不存在,请重新选择商品!' % choice_id)

else:
print('你输入的错误次数太多退出程序')
conut+=1













原文地址:https://www.cnblogs.com/Lollipop1/p/8041518.html