综合练习函数以及以前的知识

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

综合练习函数以及以前的知识的相关文章

sort函数使用的基本知识

STL中就自带了排序函数sortsort 对给定区间所有元素进行排序  要使用此函数只需用#include <algorithm> sort即可使用,语法描述为:sort(begin,end),表示一个范围,例子:#include <algorithm>int main(){ int a[20]={2,4,1,23,5,76,0,43,24,65},i; for(i=0;i<20;i++)  cout<<a[i]<<endl; sort(a,a+20)

js中函数的一些理论知识

  函数的一些理论知识 1. 函数:                执行一个明确的动作并提供一个返回值的独立代码块.同时函数也是javascript中的一级公民(就是函数和其它变量一样). 2.函数的声明方式:                 1> 函数声明:在函数里,必须手动去声明函数的返回值,如果返回值没有申明,则此函数返回值为undefined,,return是函数内部使用的,形参能自动声明,而实参不能自动声明为undefined.我们在调用函数时要:函数+()这种形式.不然就是函数本身.

python基础-基础知识考试_day5 (包括:函数_递归等知识)

老男孩 Python 基础知识练习(三) 1.列举布尔值为 False 的值空,None,0 2.写函数:根据范围获取其中 3 和 7 整除的所有数的和,并返回调用者:符合条件的数字个数以及符合条件的数字的总和如: def func(start,end): 3.函数的默认返回值是什么?None 4.简述break/continue/return的区别Break:用于退出所有循环continue:跳出本次循环,继续执行下次循环return:程序返回,不再执行下面的代码 5.函数传递参数时,是引用还

函数的一些基本知识

函数:一个具备某种功能的模块,每个函数都有名称,该名称叫做函数名. 参数:函数正常工作需要的额外信息. 返回结果:函数运行完后,得到的结果. 返回类型:返回结果的类型. 函数的思想:分 和 复用 函数分为定义和调用,先定义,后调用. 定义语法:返回类型 函数名(参数列表){函数体} 调用语法:函数名(参数列表) 形参:函数定义时使用的参数. 实参:函数调用时使用的参数. 调用函数是时,会将实参的数据传递给形参. return关键字的作用:1.立即结束函数2.返回关键字后的结果 函数签名 =函数名

函数传参初级知识

什么是函数传参? 例子 <script> function fn1(a){ //相当于var a =100; alert(a) } fn1(100); //调用,弹出100:</script> 答:往函数里面传递参数 多个参数 fn1(100,'px')用逗号隔开,里面function fn1(a,b)加一个b来接受'px'例子 <script> function fn1(a,b){ alert(a+b) } fn1(100,"px"); //弹出1

主函数调用相同函数名的小知识

// MethodOverload.java// Using overloaded methods public class MethodOverload { public static void main(String[] args) {  System.out.println("The square of integer 7 is " + square(7));  System.out.println("\nThe square of double 7.5 is &quo

变量与函数的综合示例(九)

之前我们学习了 makefile 中的变量及函数的相关语法知识,那么我们今天就来以实际需求为例来进行实际编写.实战需求:1.自动生成 target 文件夹存放可执行文件:2.自动生成 objs 文件夹存放编译生成的目标文件(*.o):3.支持调试版本的编译选项:4.考虑代码的扩展性. 那么在进行今天的 makefile 编写之前,我们还需要了解下几个知识点:a> $(wildcard _pattern),它的作用是获取当前工作目录中满足 _pattern 的文件或目录列表:b> $(addpr

教师资格证笔试大纲《数学学科知识与教学能力》(高级中学)

 <数学学科知识与教学能力>(高级中学) 一.考试目标 1.数学学科知识的掌握和运用.掌握大学本科数学专业基础课程的知识和高中数学知识.具有在高中数学教学实践中综合而有效地运用这些知识的能力. 2.高中数学课程知识的掌握和运用.理解高中数学课程的性质.基本理念和目标,熟悉<普通高中数学课程标准(实验)>(以下简称<课标>)规定的教学内容和要求. 3. 数学教学知识的掌握和应用.理解有关的数学教学知识,具有教学设计.教学实施和教学评价的能力. 二.考试内容模块与要求 1.

学习虚拟化技术需要掌握的知识与能力(未完成版)

我从1993年学习计算机,有过短期的C语言开发经历,现在主要从事网络与系统集成的工作.我可以算是学习计算机比较"早"的一批人了. 1993年的时候,我是从MS-DOS 3.30开始,直到最后的MS-DOS 6.22.Windows系统是从Windows 3.1(中文版)开始,再到Windows 3.11.Windows 95.98一直到现在的Windows 10. 组建Windows网络是在1996年河北省国税局全省联网,是从Windows NT 3.51开始,到后来的Windows