python成品_【18】Python半成品购物车

#!/usr/bin/env python

#Author:Li QW

'''

程序需求:

1、启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表

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

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

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

5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示

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

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

流程图可供参考

import sys

product_list=[

('Iphone',7000),

('Watch',333),

('Water',10),

('coffer',54),

('Xiaomi',2490),

]

###将文件转换成字典

f=open('user.txt','r')

user_lis=f.read()

f.close()

user_info=user_lis.split("#")

user_dict={}

###工资

salary=10000

sa=[]

###历史购物车

show_shopping_log=[]

###购物车

add_cart=[]

for item in user_info:

item_list=item.split(":")

user_dict[item_list[0]]=item_list[-1]

print(user_dict)

while True:

####用户部分####

print("输入1:用户注册,输入2:老用户登录,输入q退出")

login_num=input("请选择: ")

if login_num.isdigit():

login_num=int(login_num)

if login_num==1:

while True:

user_1=input("输入注册用户名:")

if user_1 in user_dict: ###判断注册用户是否存在,存在则退出当前循环

print("用户已存在,请重新注册")

continue

else:

pass_1=input("请设置密码:") ###设置新用户密码

f=open('user.txt','a+') ###将注册用户与密码保存账户文件中(a+,追加内容,不会覆盖原本内容)

f.write("#%s:%s"%(user_1,pass_1))

f.close()

a1="恭喜,注册成功"

a11=a1.center(20,"-")

print(a11)

break ####注册成功,返回初始界面

elif login_num==2:

while True:

with open('user.txt','r') as f:

user_lis2=f.read()

user_info2=user_lis2.split("#")

user_dict1={}

for item1 in user_info2:

item_list1 = item1.split(":")

user_dict1[item_list1[0]] = item_list1[-1]

print(user_dict1)

user_2=input("输入用户名登录:")

if user_2 in user_dict1:

pass_2=input("输入密码:")

if pass_2 == user_dict[user_2]:

a2="登录成功,欢迎进入"

a22=a2.center(20,'-')

print(a22)

while True:

print("选择a购物/选择b查询余额/选择c充值/选择q退出")

print("------------------------------------------------")

choice_1=str(input("根据提示选择模式>>>"))

if choice_1 =="a": ###购物模式

while True:

for index,t in enumerate(product_list):###添加索引

print(index,t) #打印商品

print("------------------------------")

print("选择a查询购物车、选择b返回、q退出")

user_choice1=input("选择购买的商品序号或进入其它菜单>>>>>") #选择购买的商品

if user_choice1.isdigit(): #修整字符类型

user_choice1=int(user_choice1)

if 0<=user_choice1

p_item = product_list[user_choice1]

print(p_item)

if p_item[1] <=salary: ###判断余额

print("您已购买商品")

salary -= p_item[1] #减去金额

add_cart.append(p_item) ###加入购物车

show_shopping_log=add_cart.copy() ###拷贝到购物历史中

print("您已购买\033[31;1m{}\033[0m,余额还剩\033[31;1m{}\033[0m".format(p_item,salary))

continue

else:

print('----------已购商品---------')

print("-----退出a购物模式------")

print(show_shopping_log)

break

else:

print("----------------------------")

print("您输入的商品不存在,请重新购买")

elif user_choice1=="a": #####a查询购物车

print("-----购物车------")

print("已购买",show_shopping_log)

elif user_choice1 == 'b': ###退出当前模式,并打印已购买商品。

print(" ")

print('返回-----已购买商品如下')

print(add_cart)

break

elif user_choice1=='q': ###退出购物

sys.exit()

elif choice_1=="b": ###b查看余额

print("-----还剩\033[31;1m{}\033[0m-----".format(salary))

continue

elif choice_1=="c": ##c充值

while True:

print("您的余额不足,是否充值。(充值1/返回b)")

salary_11 = input("请确认是否充值:")

if salary_11.isdigit():

salary_11 = int(salary_11)

if salary_11 == 1:

print("------输入充值金额-------")

salary_22 = int(input("充值>>>"))

salary += salary_22

print("充值完成后,还剩\033[31;1m{}\033[0m".format(salary))

continue

elif salary_11=="b":

break

elif choice_1=="q": ###退出购物

sys.exit()

else:

a3="密码错误,请重新输入"

print(a3.ljust(13,"!")) #字符串补位

continue

else:

a4="用户不存在,请重新输入"

print(a4.ljust(14,'!'))

continue

elif login_num=='q':

sys.exit()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值