import randomimport sys# 1、欢迎页面(是否购买vip卡)# 1、购物# 2、充值(验证码;钱不够判断是否进入充值页面)# 3、抽奖系统(购物大于500元抽奖1次,购物大于800元抽奖二次,大于1000抽奖三次)# 4、vip卡注册# 4、抽奖系统(购物大于500元抽奖1次,购物大于800元抽奖二次,大于1000抽奖三次)def lucy():#抽奖系统 global vip_card#声明全局变量; if sum_price >= 500 and sum_price < 800: print("您现在有一次抽奖机会!") while True: res = code()#调用验证码函数,并将返回值赋值给res变量 lucy_num = input("请输入您的数字[四位]:") if lucy_num.isdigit(): if int(lucy_num) == res: lucy_money = random.choice(range(10,1000))#随机生成奖金 print("恭喜您中奖了") vip_card = vip_card + lucy_num#将获得奖金添加到充值卡中 break else: print("谢谢惠顾,本次中奖号码为:%d" %res) else: print("请输入正确的数字") vip_dict = {}#定义一个全局变量,用于接收注册的信息#5、vip注册def vip_enroll():#vip注册函数 print("注册中...") while True: # 定义全局变量后,给全局变量赋值 name = input("用户名:") #判断用户名是否为纯字符串 if name.isalpha(): #判断用户名是否已经存在 if name not in vip_dict.keys(): password = input("密码:") #判断密码是否为六位 if len(password) == 6: #判断密码是否为数字或字母密码 if password.isalnum(): vip_dict.setdefault(name,password)#将用户名密码添加到vip字典中 print(vip_dict) print("注册成功") #返回欢迎菜单 memu()#调用菜单函数 else: print("请输入正确的密码") else: print("请输入正确长度的密码") else: print("用户名已经注册") lose = input("找回密码?[y/n]")#询问用户是否找回密码 if lose == "y": lost_password()#调用找回密码页面 else: sys.exit() else: print("请输入正确的用户名!") def lost_password():#找回密码丢失页面 while True: lost_name = input("请输入您的用户名:") if lost_name.isalpha():#判断用户的用户名是否为字符 print("验证码:"+code())#调用验证码函数code() lost_code = input("验证码:") if lost_name in vip_dict.keys():#判断用户的用户名是否在vip字典中 lost_password = vip_dict.get(lost_name)#返回用户密码 print("您的密码是:",lost_password) #判断用户是否用于登录 lost_login = input("是否登录:") if lost_login == ‘y‘: memu()#调用登录页面 else: print("欢迎下次光临") #退出系统 sys.exit() else: print("") else: print("请输入正确的用户名") def code():#生成验证码功能函数 global str1#定义全局变量str,用于接收生成的验证码 str1 = "" num1 = random.choice(range(0,4)) num2 = random.choice(range(0,4)) for i in range(0,4): if i == num1: temp = chr(random.randint(65,90)) elif i == num2: temp = chr(random.randint(97,122)) else: temp = str(random.choice(range(0,10))) str1 += temp return str1vip_card = 0#暂时定义一个vip卡#2:购物def shopping():#购物函数 global sum_price#定义商品总价,全局变量 sum_price = 0#定义处置 user_shop = {}#定义局部变量;接收用户购买的物品 flag = False while True: shop_memu = [‘苹果‘,‘香蕉‘,‘梨‘,‘橘子‘,‘甘蔗‘]#商场清单 shop_price = [5,10,15,20,25]#定义局部变量;商场物品价格 #向客户展示清单 for i in range(1,len(shop_memu)+1): print(i,":",shop_memu[i-1] , ":" , shop_price[i-1]) buy = int(input("购买<<<:")) num = int(input("几斤>>>:")) # 购买的斤数 # for i in range(1,len(shop_memu)+1): #询问用户购买几斤 user_shop_value = shop_price[buy-1] * num #用户字典的value值,等于原价*数量 user_shop.setdefault(shop_memu[buy-1],num)#添加到字典中 sum_price += user_shop_value#总花费 continue_buy = input("继续购买>>>:") if continue_buy == "y": flag = True else: print("下次见") print("您的清单:",user_shop,"总花费为:",sum_price) kahao = input("卡号:") if kahao in card_dict.keys():#是否在卡片的字典中 if card_dict[kahao] > sum_price: for i in range(0,len(card_dict.keys())): card_dict[kahao] = vip_card[kahao] - shop_price print("卡内余额为:%d" %card_dict[kahao]) a = input("是否进行抽奖") if a == ‘y‘: if sum_price >= 500: lucy() # 进入抽奖系统 else: print("对不起,消费不足") else: print("下次再见") sys.exit() else: ifchongzhi = input("是否充值[y/n]:") if ifchongzhi == "y": pay_monry()#调用充值函数 else: print("对不起余额真不足") else: ifjihuo = input("是否激活[y/n]:") if ifjihuo == "y": pay_monry()#调用充值函数 else: print("对不起,余额不足!") sys.exit()#退出系统 card_dict = {}#定义一个全局变量,接收卡片的卡号和金钱def pay_monry(): card = input("卡号:") if card in card_dict.keys():#如果卡号在定义的card_dict(),在就充值 print("卡内余额:%d" %card_dict[card])#展示余额 chongzhi1 = int(input(">>>充值:")) for key in range(0,len(card_dict)): card_dict[key] = chongzhi1#重新复制 print("卡内余额%d" %card_dict[card]) else:#不在激活 print("对不起,您的卡暂时没有激活") jihuo = input("是否激活[y/n]:") if jihuo == "y": while True:#如果验证码输入不正确,重新生成验证码再次验证 res = code()#调用验证码函数 print(res)#显示验证码 userCode = input("验证码:" ) if res == userCode: print("<<<激活成功>>>") card_dict.setdefault(card,0)#先把卡号和默认0元放在卡片的字典中 print(">>>余额:%d" %card_dict[card])#显示激活后的卡上的余额 chongzhi = input("是否充值[y/n]:")#询问用户是否充值 if chongzhi == "y": money = int(input(">>>数额:")) for key in range(0,len(card_dict.keys())): card_dict[card] = money print("卡内余额:%d" %card_dict[card]) break else: break#退出循环 else: print("请输入正确的验证码") else: sys.exit()#不激活退出系统 def outter(func):#装饰器;将memu()函数传入装饰器中 def inner(): print("*"*15+"小二超市"+"*"*15) memu_dict = {1:"购物",2:"充值",3:"抽奖",4:"vip注册"} for key,value in memu_dict.items(): print(key,"."+value) print("*" * 34) func()#执行memu()函数 return inner@outter#将装饰器应用到函数def memu():#欢迎界面 while True: num = input("请选择:") if num.isdigit():#判断输入的是否是纯数字 if int(num) == 1: shopping()#购物系统 elif int(num) == 2: pass elif int(num) == 3: print("请先消费") shopping()#抽奖系统 elif int(num) == 4: vip_enroll()#注册的vip else: print("正在开发中...") else: print("请输入合理的数字!")memu()#相关业务的连接考虑还不是很全面,有什么问题的可以留言一起讨论
原文地址:https://www.cnblogs.com/guojie-guojie/p/9245126.html
时间: 2025-02-01 04:03:18