zoukankan      html  css  js  c++  java
  • 函数装饰器练习题

    1.文件a.txt内容:每一行内容分别为商品名字,价钱,个数。
    apple 10 3
    tesla 100000 1
    mac 3000 2
    lenovo 30000 3
    chicken 10 3
    通过代码,将其构建成这种数据类型:[{'name':'apple','price':10,'amount':3},{'name':'tesla','price':1000000,'amount':1}......] 并计算出总价钱。
    dic = {}
    lis = []
    price = 0
    with open('a.txt',encoding='utf-8') as f_read:
        for f in f_read.readlines():
            content = f.split('
    ')
            dic['name'] = content[0].split()[0]
            dic['price'] = content[0].split()[1]
            dic['amount'] = content[0].split()[2]
            price += int(dic['price']) * int(dic['amount'])
            lis.append(dic)
    print(lis)
    print(price)
    View Code
    2.有如下文件:
    ------------------------------------------------------------ alex是老男孩python发起人,创建人。 alex其实是人妖。 谁说alex是sb? 你们真逗,alex再牛逼,也掩饰不住资深屌丝的气质。 ------------------------------------------------------------ 将文件中所有的alex都替换成大写的SB。
    import os
    with open('d.txt',encoding='utf-8') as f_read, 
            open('.d.txt.swap','w',encoding='utf-8') as f_write:
        f = f_read.read()
        f_write.write(f.replace('alex','SB'))
    os.remove('d.txt')
    os.rename('.d.txt.swap','d.txt')
    View Code
    3.文件a1.txt内容:每一行内容分别为商品名字,价钱,个数。
    文件内容:
    name:apple price:10 amount:3 year:2012
    name:tesla price:100000 amount:1 year:2013
    
    通过代码,将其构建成这种数据类型:
    [{'name':'apple','price':10,'amount':3},
    {'name':'tesla','price':1000000,'amount':1}......]
    并计算出总价钱。
    lis = []
    dic = {}
    price = 0
    with open('d.txt',encoding='utf-8') as f_read:
        for f in f_read.readlines():
            content = f.split('
    ')[0].split()
            for j in content:
                dic[j.split(':')[0]] = j.split(':')[1]
            price += int(dic['price']) * int(dic['amount'])
            lis.append(dic)
    print(lis)
    print(price)
    View Code
    4.文件内容:
    序号     部门      人数      平均年龄      备注
    1       python    30         26         单身狗
    2       Linux     26         30         没对象
    3       运营部     20         24         女生多
    通过代码,将其构建成这种数据类型:
    [{'序号':'1','部门':Python,'人数':30,'平均年龄':26,'备注':'单身狗'},
    ......]
    lis = []
    dic = {}
    key_list = []
    value_list = []
    with open('a.txt',encoding='utf-8') as f_read:
        f1 = f_read.readline().split('
    ')[0].split(' ')
        for k in f1:
            if not len(k):
                continue
            key_list.append(k)
        for v in f_read.readlines():
            v = v.split('
    ')[0].split(' ')
            for r_v in v:
                if not len(r_v):
                    continue
                value_list.append(r_v)
            for long in range(len(key_list)):
                dic[key_list[long]] = value_list[long]
            lis.append(dic)
    print(lis)
    
    ret = []
    with open('a.txt',encoding='utf-8') as f1:
        li = f1.readline().split()
        for i in f1:
            dic = {}
            for j in range(len(li)):
                dic[li[j]] = i.split()[j]
            ret.append(dic)
    print(ret)
    
    lis = []
    with open('a.txt',encoding='utf-8') as f2:
        keys = [i for i in f2.readline().split()]
        for value in f2:
            lis.append({k:v for k,v in zip(keys,value.split())})
        print(lis)
    View Code
    5.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
    
    a = [1,2,3,4]
    def func1(args):
        l = []
        for i in range(len(args)):
            if i % 2 == 1:
                l.append(args[i])
        return l
    print(func1(a))
    
    def func(args):return args[0::2] # 步长切片
    print(func(a))
    View Code
    6.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
    a='asdasdasd'
    b=['asda','','asd']
    c=(1,12)
    def func(args):
        if len(args) >= 5:
            return "大于或等于5"
        return "小于5"
    print(func(a))
    print(func(b))
    print(func(c))
    
    def func(args):
        return "%s 大于或等于5" %str(args) if len(args) >= 5 else "%s 小于5" %str(args)
    print(func(a))
    print(func(b))
    print(func(c))
    
    def func1(argv):
        return len(argv) > 5 # 直接返回bool值
    View Code
    7.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
    a = [1,2,3,4,5]
    def func(argv):
        if len(argv)>2:
            return argv[0:2]
        return argv
    
    def func(argv): return argv[:2] if len(argv) > 2 else argv
    
    def func(argv):
        return argv[0:2]
    print(func(a))
    View Code
    8.写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数,并返回结果。
    def func(argv):
        n = 0
        s = 0
        space = 0
        o = 0
        for i in argv:
            if i.isdigit():
                n+=1
            elif i.isalpha():
                s += 1
            elif i.isspace():
                space += 1
            else:
                o += 1
        print('数字%s个,字符%s个,空格%s个,其它%s个' %(n,s,space,o))
    func('as asd 123<> 123')
    View Code
    9.写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容,并返回结果。
    a =('1','',2)
    def func(argv):
        for i in argv:
            i = str(i)
            if i.isdigit():
                print(i)
                continue
            elif i.isspace():
                return argv,"有空值"
        return argv,'无空值'
    print(func(a))
    View Code
    10.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
    dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    PS:字典中的value只能是字符串或列表
    dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    def func(argv):
        for k in argv:
            if len(argv[k]) > 2:
                argv[k] = argv[k][0:2]
        return argv
    print(func(dic))
    
    def func(argv):
        for k in argv:
            argv[k] = argv[k][:2]
        return argv
    print(func(dic))
    View Code
    11.写函数,接收两个数字参数,返回比较大的那个数字。
    def func(x,y):
        return x if x > y  else y
    print(func(4,6))
    View Code
    12.写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作.
    import os
    def func(f,old,new):
        with open(f,encoding='utf-8') as f_r,
                open('.%s.bak' %f,'w',encoding='utf-8') as f_w:
            for i in f_r.readlines():
                f_w.write(i.replace(old,new))
        os.remove(f)
        os.rename('.%s.bak' %f,f)
    func('d.txt','alex','SB')
    View Code
    13.写一个函数完成三次登陆功能,再写一个函数完成注册功能
    def userfile():
        username = input("请输入用户名:").strip()
        password = input("请输入密码:").strip()
        return username,password
    def register():
        while True:
            info = userfile()
            username, password = info[0], info[1]
            with open('user.txt','r+',encoding='utf-8') as f:
                for i in f:
                    li = i.strip().split()
                    if username == li[0] or len(username) == 0 :
                        print('用户名已存在,请重新输入')
                        break
                else:
                    f.write('
    %s %s' %(username,password))
                    break
        return "注册成功"
    def login():
        count = 0
        while count < 3:
            count += 1
            info = userfile()
            username, password = info[0], info[1]
            with open('user.txt',encoding='utf-8') as f:
                for i in f.readlines():
                    i = i.split('
    ')[0]
                    user,pwd = i.split(' ')[0],i.split(' ')[1]
                    if username == user and password == pwd:
                        return "%s登陆成功" %username
                    else:
                        continue
        return "登陆失败"
    def func():
        print('welcome to one world one dream')
        while True:
            choice = input('请输入你要进行的操作1.登陆 2.注册 3.退出').strip()
            if not len(choice):continue
            if int(choice) == 1:
                ret = login()
                print(ret)
            elif int(choice) == 2:
                ret = register()
                print(ret)
                continue
            else:
                print("bye")
                break
    func()
    View Code
    14.模拟公司hr录入员工账号密码的程序。
    1),员工的账号密码存储在这种数据类型中:
    user_list = [
        {'username':'barry','password':'1234'},
        {'username':'alex','password':'asdf'},
    	.........
                 ]
    2)非法字符模板:board = ['张三','李小四','王二麻子']
    3)Hr输入用户名,密码(可持续输入,如果想终止程序,那就在输入用户名时输入Q或者q退出程序),
    在Hr输入用户名时,检测此用户名是否有board里面的非法字符,如果有非法字符,
    则将非法字符替换成同数量的*(如王二麻子替换成****),然后添加到user_list中,
    如果没有非法字符,则直接添加到user_list中,每次添加成功后,打印出刚添加的用户名,密码。
    user_list = [
        {'username':'barry','password':'1234'},
        {'username':'alex','password':'asdf'}]
    board = ['张三','李小四','王二麻子']
    while True:
        username = input('请输入用户名:').strip()
        if not username:continue
        if username.upper() == 'Q':break
        if username in board:
            username = username.replace(username,'*'*len(username))
        password = input('请输入密码:').strip()
        dic = {}
        dic['username'] = username
        dic['password'] = password
        user_list.append(dic)
        print(dic)
        print(user_list)
    View Code
    15.按要求完成下列转化(不要按照索引去做)。
    list3 = [
        {"name": "alex", "hobby": "抽烟"},
        {"name": "alex", "hobby": "喝酒"},
        {"name": "alex", "hobby": "烫头"},
        {"name": "alex", "hobby": "Massage"},
        {"name": "wusir", "hobby": "喊麦"},
        {"name": "wusir", "hobby": "街舞"},
    ]
    如何把上面的列表转换成下方的列表?
    list4 = [
        {"name": "alex", "hobby_list": ["抽烟", "喝酒", "烫头", "Massage"]},
        {"name": "wusir", "hobby_list": ["喊麦", "街舞"]},
    ]
    dic3 = {}
    dic4 = {}
    list4 = []
    for i in list3:
        dic3.setdefault('name')
        dic4.setdefault('name')
        dic3.setdefault('hobby',[])
        dic4.setdefault('hobby',[])
        if i['name'] == 'alex':
            dic3['name'] = 'alex'
            dic3['hobby'].append(i['hobby'])
        else:
            dic4['name'] = 'wusir'
            dic4['hobby'].append(i['hobby'])
    list4.append(dic3)
    list4.append(dic4)
    print(list4)
    View Code
    16.实现一个整数加法计算器:
    如:content = input(‘请输入内容:’)  # 如用户输入:5+8+7....(最少输入两个数相加),
    然后进行分割再进行计算,将最后的计算结果添加到此字典中(替换None):
    dic={‘最终计算结果’:None}。
    dic = {}
    sum = 0
    content = input('>>').strip()
    content = content.split('+')
    for i in content:
        i = int(i)
        sum += i
    dic['最终计算结果']=sum
    print(dic)
    View Code
    17.查找列表li中的元素,移除每个元素的空格,并找出以’A’或者’a’开头,并以’c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表
    li = ['taibai ','alexC','AbC ','egon',' Ritian',' Wusir','  aqc']
    n_l = []
    for i in li:
        i = i.strip()
        # if (i.startswith('a') or i.startswith('A')) and i.endswith('c'):
        if i.upper().startswith('A') and i.endswith('c'):
            n_l.append(i)
    print(n_l)
    View Code
    18.补充代码(从已有的代码下面继续写):
    有如下值li= [11,22,33,44,55,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
    li = [11,22,33,44,55,77,88,99,90]
    result = {}
    for row in li:
        result.setdefault('k1',[])
        result.setdefault('k2',[])
        if row > 66:
            result['k1'].append(row)
        else:
            result['k2'].append(row)
    print(result)
    View Code
    19.计算用户输入内容中索引为奇数并且对应的元素为数字的个数(没有则个数为零)
    count = 0
    content = input('>>').strip()
    for k,v in enumerate(content):
        print(k,v,type(v),v.isdigit())
        if k % 2 == 1 and v.isdigit():
            count += 1
    print(count)
    a = '2'
    print(a.isdigit())
    View Code
    20.分别使用while循环,和for循环打印1-2+3-4+5.......+99的结果
    sum = 0
    n=1
    while n < 100:
        if n % 2 == 0:
            sum -= n
        else:
            sum += n
        n += 1
    print(sum)
    sum = 0
    for i in range(100):
        if i % 2 == 0:
            sum -= i
        else:
            sum += i
    print(sum)
    for i in range(100,-1,-1):
        print(i)
    View Code
    21.有列表li = [‘alex’,’wusir’,’rain’],通过操作该列表构造一个字符串s=’alexwusirrain
    li = ['alex','wusir','rain']
    s= li[0]+li[1]+li[2]
    print(s)
    s1 = '*'.join(li)
    print(s1)
    print(s.split('l',1))
    View Code
    22.写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组
    例如:[(‘红心’,2), (‘草花’,2), …(‘黑桃,‘A’)]
    def puke():
        num = []
        for n in range(2,11):
            num.append(n)
        num.extend(['J','Q','K','A'])
        lis = []
        base = ['红心','草花','黑桃','方块']
        for item in base:
            for m in num:
                lis.append((item,m))
        return lis
    print(puke())
    View Code
    23.写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}
    例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}
    def min_max(*args):
        l = []
        dic ={}
        for i in args:
            l.append(i)
        l.sort()
        dic['max'] = l[-1]
        dic['min'] = l[0]
        return dic
    print(min_max(2,5,7,8,4))
    
    def min_max(*args):
        the_max = args[0]
        the_min = args[0]
        for i in args:
            if i > the_max:
                the_max = i
            elif i < the_min:
                the_min = i
        return {'max':the_max,'min':the_min}
    print(min_max(2,5,7,8,4))
    View Code
    24.写函数,专门计算图形的面积
    其中嵌套函数,计算圆的面积,正方形的面积和长方形的面积
    调用函数area(‘圆形’,圆半径)  返回圆的面积
    调用函数area(‘正方形’,边长)  返回正方形的面积
    调用函数area(‘长方形’,长,宽)  返回长方形的面积
    import math
    def area(name,*args):
        def round(x):
            return math.pi * x ** 2
        def square(x):
            return x ** 2
        def rectangle(x,y):
            return x * y
        if name == '圆形':
            return round(*args)
        elif name == '正方形':
            return square(*args)
        elif name == '长方形':
            return rectangle(*args)
    print(area('圆形',3))
    print(area('正方形',3))
    print(area('长方形',2,3))
    View Code
    25.写函数,传入一个参数n,返回n的阶乘。例如: cal(7) 计算7 * 6 * 5 * 4 * 3 * 2 * 1
    def cal(n):
        sum = 1
        print(sum)
        for i in range(n,1,-1):
            sum = sum * i
        return sum
    print(cal(6))
    
    sum = 1
    def cal(n):
        global sum
        if n >= 1:
           sum = n * cal(n-1)
        return sum
    print(cal(6))
    View Code
    26.编写下载网页内容的函数,要求功能是:用户传入一个url,函数返回下载页面的结果
    from urllib import request
    def func(url):
        with request.urlopen(url) as f:
            data = f.read()
            print('status',f.status,f.reason)
            for k,v in f.getheaders():
                print('%s:%s' %(k,v))
            print('Data:',data.decode('utf-8'))
    func('https://www.baidu.com')
    
    import requests
    def my_down(url = 'https://www.baidu.com'):
        return requests.get(url).content
        def get():
            return requests.get(url).content
        return get
    print(my_down())
    View Code
    27.实现下载的页面存放于文件中,如果文件内有值(文件大小不为0),就优先从文件中读取网页内容,否则,就去下载,然后存到文件中
    扩展功能:用户可以选择缓存介质/缓存引擎,针对不同的url,缓存到不同的文件中
    import requests
    import os
    
    def make_cache(func):
        def inner(*args,**kwargs):
            if not os.path.exists('cache.txt'):
                with open('cache.txt','w'): pass
            if os.path.getsize('cache.txt'):
                print(os.path.getsize('cache.txt'))
                with open('cache.txt',encoding='utf-8') as f_read:
                    res = f_read.read()
            else:
                print('err')
                print(os.path.getsize('cache.txt'))
                res = func(*args,**kwargs)
                with open('cache.txt','w',encoding='utf-8') as f_write:
                    f_write.write(res.decode('utf-8'))
            return res
        return inner
    @make_cache
    def get(url):
        return requests.get(url).content
    print(get('https://www.baidu.com'))
    View Code
    28.给每个函数写一个记录日志的功能,
    功能要求:每一次调用函数之前,要将函数名称,时间节点记录到log的日志中。
    所需模块:
    import time
    struct_time = time.localtime()
    print(time.strftime("%Y-%m-%d %H:%M:%S",struct_time))
    import time,os
    def timmer(func):
        struct_time = time.localtime()
        def inner(*args):
            if not os.path.exists('log.txt'):
                with open('log.txt','w') : pass
            current_time = time.strftime('%Y-%m-%d %H:%M:%S',struct_time)
            with open('log.txt','a',encoding='utf-8') as f:
                f.write("
    %s	%s"%(current_time,func.__name__))
                func()
        return inner
    @timmer
    def test():
        print('hello world')
    View Code
    29.编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码
    dic = {
        'status' : False
    }
    flag = False
    def auth(func):
        def inner(*args,**kwargs):
            user = []
            global flag
            while not flag:
                user_info = login()
                with open('user.txt','r+',encoding='utf-8') as f:
                    for i in f:
                        i = i.strip().split()
                        user.append(i[0])
                        if i[0] == user_info[0] and i[1] == user_info[1]:
                            print('%s login success' %user_info[0])
                            flag = True
                    if user_info[0] not in user:
                        f.seek(0,2)
                        f.write('
    %s	%s' %(user_info[0],user_info[1]))
                        flag = True
            while flag:
                ret = func(*args,**kwargs)
                return ret
        dic['status'] = True
        return inner
    
    def login():
        username = input('请输入用户名:').strip()
        password = input('请输入密码').strip()
        return username,password
    @auth
    def func():
        if dic['status']:
            print(' hello world ')
    @auth
    def func1():
        if dic['status']:
            print(' hello elk ')
    func()
    func1()
    View Code
    30.在编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码。这个作业之上进行升级操作:
    	设置两套密码,一套为京东账号密码,一套为淘宝账号密码保存在文件中。
    	设置四个函数,分别代表 京东首页,京东超市,淘宝首页,淘宝超市。
    	循环打印四个选项:东首页,京东超市,淘宝首页,淘宝超市。
    	供用户选择,用户输入选项后,执行该函数,四个函数都加上认证功能,只要登陆成功一次,在选择其他函数,后续都无需输入用户名和密码。
    相关提示:用带参数的装饰器。装饰器内部加入判断,验证不同的账户密码。 
    import os
    dic = {
        'name': None,
        'status' : False
    }
    def auth(func):
        def inner(*args,**kwargs):
            if not dic['status']:
                username = input('请输入用户名:').strip()
                password = input('请输入密码:').strip()
                if not os.path.exists('user.txt'):
                    with open('user.txt','w'):pass
                with open('user.txt',encoding='utf-8') as f:
                    for i in f:
                        i = i.strip().split()
                        if username == i[0] and password == i[1]:
                            ret = func(*args,**kwargs)
                            dic['name'] = username
                            dic['status'] = True
                            return ret
            else:
                ret = func(*args,**kwargs)
                return ret
        return inner
    
    @auth
    def func1():
        print('京东首页')
    @auth
    def func2():
        print('京东商城')
    @auth
    def func3():
        print('淘宝首页')
    @auth
    def func4():
        print('淘宝商城')
    
    while True:
        func1()
        func2()
        func3()
        func4()
    View Code
    31.写程序完成下列功能:
    1),启动程序,首页面应该显示成如下格式:
        欢迎来到博客园首页
        1:请登录
        2:请注册
        3:文章页面
        4:日记页面
        5:评论页面
        6:收藏页面
        7:注销
        8:退出程序
    2),用户输入选项,3~6选项必须在用户登录成功之后,才能访问成功。
    3),用户选择登录,用户名密码从register文件中读取验证,三次机会,没成功则结束整个程	序运行,成功之后,可以选择访问3~6项,访问页面之前,
    必须要在log文件中打印日志,	日志格式为-->用户:xx 在xx年xx月xx日 执行了 %s函数,访问页面时,页面内容为:欢	迎xx用户访问评论(文章,日记,收藏)页面
    4),如果用户没有注册,则可以选择注册,注册成功之后,可以自动完成登录,然后进入首页选择。
    5),注销用户是指注销用户的登录状态,使其在访问任何页面时,必须重新登录。
    6),退出程序为结束整个程序运行。
    import os
    import time
    flag = False
    dic = {
        'username' : None,
        'status' : False
    }
    def auth(func):
        def inner(*args,**kwargs):
            if not os.path.exists('log.txt'):
                with open('log.txt', 'w', encoding='utf-8'): pass
            if dic['status']:
                with open('log.txt', 'a', encoding='utf-8') as f3:
                    f3.write('用户%s 在%s 执行了%s函数 
    ' % (dic['username'],time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()), func.__name__))
                ret = func(*args,**kwargs)
                return ret
            else:
                i = 0
                while i <= 3:
                    username = input('请输入你的用户名:').strip()
                    password = input('请输入你的密码:').strip()
                    with open('user.txt',encoding='utf-8') as f1:
                        for f in f1:
                            f = f.strip().split()
                            if f[0] == username and f[1] == password:
                                dic['username'] = username
                                dic['status'] = True
                                ret = func(*args,**kwargs)
                                with open('log.txt', 'a', encoding='utf-8') as f3:
                                    f3.write('用户:%s 时间:%s  exec:%s
    ' % (dic['username'], time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()), func.__name__))
                                return ret
                        else:
                            i += 1
                            print('用户名或者密码错误,剩余输入次数%s' %(3-i))
                            continue
        return inner
    @auth
    def login():
        print('%s登录成功'%dic['username'])
    def register():
        if not os.path.exists('user.txt'):
            with open('user.txt',encoding='utf-8'):pass
        global flag
        while not flag:
            username = input('请输入需要注册的用户名:').strip()
            user_list = []
            with open('user.txt','r',encoding='utf-8') as f2:
                for f in f2:
                    f = f.strip().split()
                    user_list.append(f[0])
            if username in user_list:
                print('该用户已存在,请换个用户名')
                continue
            password = input('请输入密码:').strip()
            double_password = input('请再次输入密码:').strip()
            if password != double_password:
                print('密码不匹配,请再次输入')
                continue
            with open('user.txt','a',encoding='utf-8') as f3:
                f3.write('
    %s	%s' %(username,password))
            break
        print('%s注册成功' %username)
        dic['username'] = username
        dic['status'] = True
    @auth
    def article():
        print('欢迎访问文章页面!')
    @auth
    def diary():
        print('欢迎访问操作日志页面!')
        with open('log.txt',encoding='utf-8') as f4:
            for f in f4:
                print(f)
    @auth
    def comment():
        print('欢迎访问评论页面!')
    @auth
    def collection():
        print('欢迎访问收藏页面!')
    def log_out():
        print('%s注销成功!'%dic['username'])
        dic['username'] = None
        dic['status'] = False
    def web_exit():
        global flag
        flag = True
        print('程序运行结束!')
    def display_list():
        print('欢迎来到博客园首页')
        lis = ['请登录','请注册','文章页面','日志页面','评论页面','收藏页面','注销','退出程序']
        for l in lis:
            print(lis.index(l)+1,':',l)
        return len(lis)
    
    def web_index():
        global flag
        while not flag:
            num_max = display_list()
            choice = input('请输入要进行的操作:').strip()
            if not choice.isdigit(): continue
            choice = int(choice)
            if choice == 0 or choice > num_max:
                print('输入不合法,请再次输入!')
            if choice == 1:
                login()
            elif choice == 2:
                register()
            elif choice == 3:
                article()
            elif choice == 4:
                diary()
            elif choice == 5:
                comment()
            elif choice == 6:
                collection()
            elif choice == 7:
                log_out()
            elif choice == 8:
                web_exit()
    if __name__ == '__main__':
        web_index()
    View Code
  • 相关阅读:
    vue3父组件方法之间方法的互相调用
    vue3获取数据的注意点
    2021牛客暑期多校训练营5 D. Double Strings(DP/排列组合)
    2021牛客暑期多校训练营8 K. Yet Another Problem About Pi(几何)
    2021牛客暑期多校训练营8 D. OR(位运算/结论)
    2021牛客暑期多校训练营5 J. Jewels(二分图最大权匹配)
    关于C++ STL中对于set使用lower_bound进行二分查找的效率问题
    CSP202012-4 食材运输(70分)
    【k8s】Volume-pv-local
    【k8s】Volume-pvc
  • 原文地址:https://www.cnblogs.com/Uncle-Guang/p/8862183.html
Copyright © 2011-2022 走看看