zoukankan      html  css  js  c++  java
  • 综合练习函数以及以前的知识

    import random
    import 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 str1
    vip_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()
    #相关业务的连接考虑还不是很全面,有什么问题的可以留言一起讨论
  • 相关阅读:
    runtime iOS 运行时机制
    iOS 文件操作
    responseCode 状态吗查询
    iOS常用宏定义
    Block里用self造成循环引用
    iOS Block全面分析
    OC与Swift混编
    iOS打包app发给测试人员测试
    Swift UITextField
    sqilite学习
  • 原文地址:https://www.cnblogs.com/guojie-guojie/p/9245126.html
Copyright © 2011-2022 走看看