作业要示:
购物车程序:
启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表
允许用户根据商品编号购买商品
用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
可随时退出,退出时,打印已购买商品和余额
在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示
用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买
允许查询之前的消费记录
先上一下流程吧!
具体代码还在优化中》》》先一下与流程图对应的代码吧!
1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import time,sys,os 5 with open('user_file.txt','r',encoding='utf-8') as user_file: 6 user_list=eval(user_file.readline())#转换用户文件中的字符串 7 lock_name=open('lock_name.txt','r+',encoding='utf-8')#打开锁定用户列表文件 8 lock_list=eval(lock_name.readline())#转换锁定用户文件中的字符串 9 10 def userchar(_user_name):#检测用户名的函数 11 while True: 12 if _user_name in user_list and _user_name not in lock_list:#判断用户是否存在并正常 13 return True#存在返回真 14 break 15 elif _user_name in user_list and _user_name in lock_list:#判断用户是否被锁定 16 print('您的用户已经被锁定,请联系商家解锁!') 17 break 18 else: 19 print('您输入用户不存在,请先注册') 20 break 21 22 def confirm():#退出确认函数 23 qu=input("是否退出登陆!按 33[31;1mY/y 33[0m退出? 按其它键重新登陆:") 24 if qu=='Y'or qu=='y': 25 print("您已经退出!" ) 26 exit()#退出程序 27 else : 28 pass 29 30 def user_pass(): 31 bool=True#定义退出循环条件变量 32 while bool: 33 _user_name=(input('请输入用户名:')) 34 if userchar(_user_name.strip()):#运行检测用户名的函数判断,去除两边空格 35 count=3#定义锁次数 36 while count>0 :#如果密码错误次数超过退出密码输入 37 #password=getpass.getpass('请输入密码:') 38 password=input('请输入密码:') 39 if password==user_list[_user_name]:#密码通过验证结束循环 40 print("密码通过验证") 41 bool=False 42 print("欢迎您 33[32;1m%s 33[0m 您已经登陆成功!" % _user_name) 43 return _user_name#返回用户名 44 else: 45 count -=1#次数减少 46 print("密码错误请重试,剩余: 33[31;1m%s 33[0m次! "% count) 47 pass 48 else: 49 print("