首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Python小练习】07-购物车

# 作业题目(二):购物车程序

# 作业需求:

# 数据结构:

goods =[

{"name":

"电脑","price":1999},

{"name":

"鼠标","price":10},

{"name":

"游艇","price":20},

{"name":

"美女","price":998}

]

# 功能要求:

# 基础要求:

# 1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表

# 2、允许用户根据商品编号购买商品

# 3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒

# 4、可随时退出,退出时,打印已购买商品和余额

# 5、在用户使用过程中,

# 关键输出,如余额,商品已加入购物车等消息,需高亮显示

# 扩展需求:

# 1、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买

# 2、允许查询之前的消费记录

我的解答:(不用新建文件,本代码可实现自动新建文件。)

importos

user_info={"Alex":"123123","egon":"345345","jay":"678678"}

name=input("login:")

pwd=input("password:")

shopping_list=[]

wage=

has_file =False#判断用户购物历史文件是否存在

ifnameinuser_info.keys():#判断用户登录的名字是否在字典中

ifpwd == user_info.get(name):#判断用户登录密码是否和用户登录名匹配

ifos.path.exists("购物车_"+name+".txt"):#判断文件是否存在

has_file =True#标志位

file =open("购物车_"+name+".txt","r",encoding='utf8')#文件以utf-8的编码打开

file.readline()

balanceInfo = file.readline()

shoppingHistory = file.readline()

wage=balanceInfo.split("::")[1]

wage=int(wage)

shopping_list =eval(shoppingHistory.split("::")[1])

print("当前余额:",int(wage))

print("----购物历史-----:")

forindex,itemsinenumerate(shopping_list) :

print("%s" " %s" "%s"%(index,items["name"],items["price"]))

file.close()

print("欢迎登录!")

else:

print("您好,密码不正确。")

else:

print("对不起,不存在该用户。")

exit_flag=True

ifhas_file ==False:

wage=input("Your Wage:")

wage =int(wage)

while True:

print("----商品列表----")

forindex,commodityinenumerate(goods):

print(index,commodity["name"],commodity["price"])

commodity_num=input("请输入您想购买的商品编号:")

ifcommodity_num.isdigit():

commodity_num=int(commodity_num)

ifcommodity_numinrange(,len(goods)):

ifint(goods[commodity_num]["price"])

shopping_list.append(goods[commodity_num])

wage=int(wage)-int(goods[commodity_num]["price"])

print("\033[1;32;43m 商品 %s 已加入购物车\033[0m!,还剩余\033[1;33;44m %d\033[0m 元"%(goods[commodity_num]["name"],wage))

else:

print("您的余额不足,无法购买")

else:

print("您好,不存在您所输入的商品。")

else:

print("请输入数字")

select_choice=input("是否“退出”? Y or anykey continue ?")

ifselect_choice=="Y":

iflen(shopping_list)>:

print("当前用户: %s"%name)

print("----您已购买以下商品----")

forindex,itemsinenumerate(shopping_list):

print(index+1,items["name"],items["price"])

print("--本次余额 %d 元--"%wage)

file =open("购物车_"+name+".txt","w",encoding="utf-8")

file.write("username::%s\nrest_wage::%d\nshoppint_history::%s"%(name,wage,shopping_list))

file.close()

break

else:

print("您还未购买任何商品。")

break

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180123G0VXL700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券