import os
good_list = {'咸鸭蛋': 50,
'iPhone x': 7888,
'mac book': 13888,
'康师傅方便面': 5
}
shopping_list = {}
cost = 0
def register():
print('开始注册!')
user_name = input('请输入用户名').strip()
if os.path.exists('%s.txt' % user_name):
print('该用户已注册,请登录!')
login()
else:
while True:
pwd = input('请输入密码')
pwd_sure = input('请确认密码')
if pwd == pwd_sure:
print('注册成功,请登录!')
with open(r'%s.txt' % user_name, 'w', encoding='utf-8') as f:
f.write('%s|%s' % (user_name, pwd))
f.flush()
login()
break
else:
print('两次密码不一致,请重新输入')
pass
def login():
print('开始登录!')
user_name = input('请输入用户名').strip()
if not os.path.exists('%s.txt' % user_name):
print('该账户尚未注册,请先注册')
register()
else:
while True:
pwd = input('请输入密码')
with open(r'%s.txt' % user_name, 'r', encoding='utf-8') as f:
res = f.read().split('|')
if pwd == res[1]:
print('登录成功')
break
else:
print('密码输入错误,请重新输入')
return user_name
def shopping():
global cost
print('请先登录!')
user_name = login()
print('开始购物!')
with open(r'%s.txt' % user_name, 'r', encoding='utf-8') as f:
res = f.read().split('|')
pwd = res[1]
if len(res) < 3:
print('余额不足,请充值!')
mon = recharge(user_name)
else:
mon = int(res[2])
while True:
print('商品列表!')
res = list(good_list)
for k, v in enumerate(good_list, 1):
print(k, v, '%s元' % good_list[v])
buying = input('请输入你想购买的商品:').strip()
if buying.isdigit():
buying = int(buying)
if buying > 0 and buying < len(good_list):
if good_list[res[buying - 1]] < mon:
mon -= good_list[res[buying - 1]]
cost += good_list[res[buying - 1]]
if res[buying - 1] in shopping_list:
shopping_list[res[buying - 1]] += 1
else:
shopping_list[res[buying - 1]] = 1
quit_or_not = input('请问是否退出购物(Y/N)?')
if quit_or_not.lower() == 'y':
quit(mon, user_name,pwd)
break
else:
print('余额不足请充值!')
charge_or_not = input('是否充值(Y/N)?').strip()
if charge_or_not.lower() == 'y':
mon = recharge(user_name)
else:
print('余额不足,结账退出!')
quit(mon, user_name, pwd)
break
pass
else:
print('没有该商品!')
else:
print('请输入数字!')
pass
def recharge(user_name):
with open(r'%s.txt' % user_name, 'r', encoding='utf-8') as f:
res = f.read().split('|')
if len(res) < 3:
mon = 0
else:
mon = int(res[2])
pwd = res[1]
while True:
recharge_mon = input('请输入充值金额:')
if recharge_mon.isdigit():
recharge_mon = int(recharge_mon)
mon += recharge_mon
with open(r'%s.txt' % user_name, 'w', encoding='utf-8') as f:
f.write('%s|%s|%s' % (user_name, pwd, mon))
f.flush()
break
else:
print('请输入数字!')
return mon
def quit(mon, user_name, pwd):
print('购物清单!')
for i in shopping_list:
print('购买商品%s\t单价%s\t数量%s\t'%(i,good_list[i],shopping_list[i]))
print('总价:%s'%cost)
with open(r'%s.txt'%user_name,'w',encoding='utf-8') as f:
f.write('%s|%s|%s'%(user_name, pwd, mon))
f.flush()
pass
while True:
choice_list = {1: register, 2: login, 3: shopping}
choice = input('1、注册\n'
'2、登录\n'
'3、购物\n'
'请选择功能:')
if choice.isdigit():
choice = int(choice)
if choice in [1, 2, 3]:
if choice == 1:
register()
if choice == 2:
login()
if choice == 3:
shopping()
break
else:
print('没有该功能!')
else:
print('请输入数字!')