Python函数基础实战之购物车系统
一、Python函数基础实战之购物车系统
- 用户管理:注册(简单追加方式写入文件)、登录(限制3次尝试机会)、注销
- 购物功能:浏览商品、添加商品到购物车、查看购物车
- 数据存储:用户信息存储在文本文件中
username_list = [] # 存储当前登录用户
prize_dict = {
'0': "芭比娃娃",
'1': "变形金刚",
'2': "psp游戏机",
'3': "奥特曼",
'4': "遥控飞机",
'5': "chongqiwawa",
}
shopping_cart_dict = {} # 购物车
# 用户交互输入信息
def inp_username_pwd():
username_inp = input("请输入用户名:")
pwd_inp = input("请输入你的密码:")
return username_inp, pwd_inp
def login():
print('欢迎来到登录功能!')
if username_list:
print('已经登录,请勿重复登录!')
return # 提前退出,不执行后续登录逻辑
count = 0
while count < 3:
username_inp, pwd_inp = inp_username_pwd()
with open('D:\\user_info.txt', 'r', encoding='utf8') as f:
for user_info in f:
user_info = user_info.strip()
username, pwd = user_info.split(':')
if username == username_inp and pwd == pwd_inp:
print('登录成功')
username_list.append(username_inp)
return
else:
print('账号密码错误!')
count += 1
def register():
print('欢迎来到注册功能!')
username_inp, pwd_inp = inp_username_pwd()
with open('D:\\user_info.txt', 'a', encoding='utf8') as fa:
fa.write(f'{username_inp}:{pwd_inp}\n')
def logout():
print('欢迎来到注销功能!')
if not username_list:
print('请登录之后注销!')
return
username_list.clear()
def shopping():
print('欢迎来到消费功能!')
if not username_list:
print('请登录后使用该功能')
return
print('''
0 芭比娃娃
1 变形金刚
2 psp游戏机
3 奥特曼
4 遥控飞机
5 chongqiwawa
''')
while True:
prize_choice = input('请输入需要购买商品编号:')
# 验证:检查是否为数字,且数字是否在有效范围
if not prize_choice.isdigit() or prize_choice not in prize_dict:
print("请输入有效的数字编号!")
continue
break # 所有验证通过,退出循环
prize_name = prize_dict[prize_choice]
if prize_name in shopping_cart_dict:
shopping_cart_dict[prize_name] += 1
else:
shopping_cart_dict[prize_name] = 1
print(f'消费成功{prize_name},当前购物车情况为{shopping_cart_dict}')
def shopping_cart():
print('恭喜剁手成功!')
if not username_list:
print('请登录后使用该功能')
return
print(f'恭喜购物成功:{shopping_cart_dict}')
shopping_cart_dict.clear()
func_dict = {
'1': login,
'2': register,
'3': logout,
'4': shopping,
'5': shopping_cart,
}
while True:
print('''
1 登录
2 注册
3 注销
4 购物
5 购物车
q 退出
''')
func_choice = input('请选择你要选择的功能(输入q退出):')
if func_choice == 'q':
break
if func_choice not in func_dict:
print('长眼睛没,看不懂数字?')
continue
func_dict[func_choice]()

浙公网安备 33010602011771号