发现之前的三级菜单代码有BUG现已经修改过来了
购物车程序:
启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表
允许用户根据商品编号购买商品
用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
可随时退出,退出时,打印已购买商品和余额
在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示
用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买
允许查询之前的消费记录
对于昨天的作业自己不太满意!所以重新设计了流程图:
增加新的功能:
1,可以注册!
2,可以查看当前购物的清单
3,可以不结算退出
详细代码如下:
1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import time,sys,os 5 user_file=open("user_file.txt",'r+',encoding='utf-8')#打开用户列表文件 6 #with open('user_file.txt','r+',encoding='utf-8') as user_file: 7 user_list=eval(user_file.readline())#转换用户文件中的字符串 user_list:注册用户列表 8 lock_name=open('lock_name.txt','r+',encoding='utf-8')#打开锁定用户列表文件 9 lock_list=eval(lock_name.readline())#转换锁定用户文件中的字符串 10 11 12 def regis(): 13 while True: 14 name=input("请输入您要注册的用户名:") 15 if name not in user_list: 16 print("恭喜!该用户名可以被注册!>>>") 17 password=input('请输入密码:') 18 password2=input('请再次确认密码:') 19 if password==password2: 20 name_infor='''恭喜您用户注册成功! 21 用户名:{name} 22 密 码:{password} 23 请牢记您的用户名与密码 24 ''' 25 print(name_infor.format(name=name,password=password2)) 26 user_list[name]=password2#增加注册用户到字典中 27 user_file.seek(0)#称到最前 28 user_file.write(str(user_list))#写入文件 29 user_file.flush()#即可保存 30 31 #confirm() 32 break 33 else: 34 print("该用户名已经被注册啦!请重新来过<<<") 35 confirm()#是否退出 36 continue 37 38 39 40 def userchar(_user_name):#检测用户名的函数 41 while True: 42 if _user_name in user_list and _user_name not in lock_list:#判断用户是否存在并正常 43 return True#存在返回真 44 elif _user_name in user_list and _user_name in lock_list:#判断用户是否被锁定 45 print('您的用户已经被锁定,请联系商家解锁!') 46 break 47 else: 48 reg=input('您输入用户不存在,请先注册!按 33[31;1m Q/q 33[0m 直接退出 33[31;1m Y/y 33[0m 确定注册,其它键返回!') 49 if reg=='y' or reg=='Y': 50 regis()#用户注册函数 51 print('是否直接退出商城?') 52 break 53 elif reg=='q' or reg=='Q': 54 print("您已经退出!" ) 55 exit() 56 else : 57 break 58 59 def confirm():#退出确认函数 60 qu=input("是否退出!按 33[31;1mY/y 33[0m退出? 按其它键返回<<<") 61 if qu=='Y'or qu=='y': 62 print("您已经退出!" ) 63 exit()#退出程序 64 else : 65 pass 66 67 def user_pass(): 68 bool=True#定义退出循环条件变量 69 while bool: 70 print("用户登陆".center(30,'-')) 71 _user_name=(input('请输入用户名:')) 72 if userchar(_user_name.strip()):#运行检测用户名的函数判断,去除两边空格 73 count=3#定义锁次数 74 while count>0 :#如果密码错误次数超过退出密码输入 75 #password=getpass.getpass('请输入密码:') 76 password=input('请输入密码:') 77 if password==user_list[_user_name]:#密码通过验证结束循环 78 print("密码通过验证") 79 bool=False 80 print("欢迎您 33[32;1m%s 33[0m 您已经登陆成功!" % _user_name) 81 return _user_name#返回用户名 82 else: 83 count -=1#次数减少 84 print("密码错误请重试,剩余: 33[31;1m%s 33[0m次! "% count) 85 pass 86 else: 87 print("