zoukankan      html  css  js  c++  java
  • day 12 课后作业

    # -*- coding: utf-8 -*-
    # @Time : 2019/1/4 20:49
    # @Author : Endless-cloud
    # @Site :
    # @File : day 12 课后作业.py
    # @Software: PyCharm
    '''
    # 3、编写装饰器,在每次执行被装饰函数之前打印一句’
    每次执行被装饰函数之前都得先经过这里,这里根据需求添加代码’
    在每次执行被装饰函数之前让用户输入用户名,密码,给用户三次机会,
    登录成功之后,才能访问该函数.

    '''
    # def login(f):
    # falg =True
    # def inner(*args,**kwargs):
    # nonlocal falg
    # count = 3
    # while falg:
    #
    # name =input('name>>>>>')
    # password =input('password')
    # if name =='wzh' and password =='123':
    # f(*args,**kwargs)
    # break
    # else:
    # count = count - 1
    # print('账号密码错误{}'.format(count))
    #
    # if count==0:
    # falg=False
    # return inner
    #
    #
    # @login
    # def fun1(ss):
    # print('登录成功{}'.format(ss))
    # fun1('asdasdasda')
    '''
    # 4、编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件,只支持单用户的账号密码,给用户三次机会),
    要求登录成功一次,后续的函数都无需再输入用户名和密码
    '''
    # falg = False
    #
    #
    # def login(f):
    # def inner(*args,**kwargs):
    # global falg
    # if falg:
    # ret =f(*args,**kwargs)
    # # return ret
    # else:
    # username =input('请输入名字')
    # password =input('请输入密码')
    # if username=='wzh' and password =='123':
    #
    # falg=True
    # ret =f(*args,**kwargs)
    # # return ret
    #
    #
    # return inner
    #
    #
    # @login
    # def fun1(ss):
    # return 666
    # @login
    # def fun2(aa):
    # print('de{}'.format(aa))
    # @login
    # def fun3(cc):
    # print('asd{}'.format(cc))
    # print(fun1('asdasdasda'))
    # fun2('213')
    # fun3('aswww')
    '''
    # 5.写一个函数完成三次登陆功能:
    # 用户的用户名密码从一个文件register中取出。
    # register文件包含多个用户名,密码,用户名密码通过|隔开,每个人的用户名密码占用文件中一行。
    # 完成三次验证,三次验证不成功则登录失败,登录失败返回False。
    # 登陆成功返回True。

    '''
    flag =False
    def login(f):

    def inner(*args,**kwargs):

    global flag
    count = 1
    while count<=3:
    if flag:
    ret =f(*args,**kwargs)
    return ret

    else:
    dic={}
    with open('mima', 'r', encoding='utf-8') as f1:
    for i in f1:
    l=i.strip().split('|')
    # list.append(i.strip().split('|'))
    dic[l[0]]=l[1]
    inusername =input('请输入账号')
    inpassword =input('请输入密码')

    # {'wzh': '123', 'haha': '123', 'chihuo': '123'}
    try:
    if inpassword == dic[inusername]:
    flag =True
    ret=f(*args,**kwargs)
    return ret
    else:
    print('你还有{}次'.format(count))

    except:

    print('你还有{}次'.format(count))
    count =count+1



    return inner



    @login
    def fun(gg):
    return gg+'登陆陈工'
    @login
    def fun1(ll):
    return ll+'登陆陈工1'
    @login
    def fun2(ha):
    return ha+'登陆陈工2'
    print(fun('asdasdasd'))
    print(fun1('asdasdasd'))
    print(fun2('asdasdasd'))
    '''
    # 6.再写一个函数完成注册功能:
    # (1)用户输入用户名密码注册。
    # (2)注册时要验证(文件regsiter中)用户名是否存在,如果存在则让其重新输入用户名,如果不存在,则注册成功。
    # (3)注册成功后,将注册成功的用户名,密码写入regsiter文件,并以 | 隔开。
    # (4)注册成功后,返回True,否则返回False。


    '''
    # def zhuce():
    # dic ={}
    # with open('mima','r',encoding='utf-8') as f:
    # for line in f:
    #
    # s =line.strip().split('|')
    # dic[s[0]]=s[1]
    # while 1:
    # username =input('请输入用户名')
    # password = input('请输入密码')
    # if username in dic.keys():
    # print('你输入的账号已经重复请重新输入')
    # return False
    # else:
    # dic[username]=password
    #
    # print('你注册成功')
    # lis3 =' '+username+'|'+str(password)
    # # for n,j in dic.items():
    # # # lis4 =[]
    # # lis3.append('|'.join([n,j]))
    #
    #
    # with open('mima','a',encoding='utf-8') as f2:
    # f2.seek(0,2)
    # f2.writelines(str(lis3))
    # print('写入成功')
    # return True
    #
    # zhuce()
    '''
    # 7. 用完成一个员工信息表的增删功能(升级题)。
    # 文件存储格式如下:
    id,name,age,phone,job
    1,Alex,22,13651054608,IT
    2,太白,23,13304320533,Tearcher
    3,nezha,25,1333235322,IT
    # 现在要让你实现两个功能:
    # 第一个功能是实现给文件增加数据,用户通过输入姓名,年龄,电话,工作,给原文件增加数据
    (增加的数据默认追加到原数据最后一行的下一行),但id要实现自增
    (id自增有些难度,id是不需要用户输入的但是必须按照顺序增加)。
    # 第二个功能是实现给原文件删除数据,用户只需输入id,则将原文件对应的这一条数据删除
    (删除后下面的id不变,比如此时你输入1,则将第一条数据删除,但是下面所有数据的id值不变及太白,nezha的 id不变)。


    '''
    # def funxieru2():
    #
    # with open('xinxi','r',encoding='utf-8') as f1:
    # titie =f1.readline()
    # dic ={}
    # for i in f1: #['1', 'Alex', '22', '13651054608', 'IT']
    # l =i.strip().split(',')
    # # dic1={}
    # dic[l[0]]=l[1:]
    #
    # line_num =len(dic)
    # # print(line_num)
    #
    #
    # name =input('请输入名字')
    # age = input('请输入年龄')
    # id =input('请输入id')
    # zhiye =input('请输入职业')
    # key_num =str(line_num+1)
    # dic[key_num]=[name,age,id,zhiye]
    # print(dic)
    # with open('xinxi','w',encoding='utf-8') as f3:
    # f3.write(titie.strip())
    # for i,j in dic.items():
    #
    # ln =','.join(list(i)+j)
    # ln =' '+ln
    # f3.write(ln)
    # print('写入成功')
    # # print(dic)
    #
    #
    # funxieru2()
    def fundel():
    with open('xinxi','r',encoding='utf-8') as f4:
    titie =f4.readline().strip()
    dic1 ={}
    for line in f4:

    l =line.strip().split(',')
    dic1[l[0]] =l[1:] #['1', 'Alex', '22', '13651054608', 'IT']
    # print(dic1) #'1': ['Alex', '22', '13651054608', 'IT']
    del_id =input('请输入删除的id')
    dic1.pop(del_id)
    # print(dic1)
    with open('xinxi','w',encoding='utf-8') as f3:
    f3.write(titie.strip())
    for i,j in dic1.items():

    ln =','.join(list(i)+j)
    ln =' '+ln
    f3.write(ln)
    print('写入成功')
    fundel()
    # flag=False
    # count = 3
    # def login(func):
    # def inner(*args,**kwargs):
    # global flag,count
    # if flag:
    # print('每次执行被装饰函数之前都得先经过这里。')
    # func_ret=func(*args,**kwargs)
    # return func_ret,True
    # else:
    # while count>0:
    # username=input('请输入账户名:').strip()
    # password=input('请输入密码:').strip()
    # with open('mima',encoding='utf-8') as f1:
    # list_file=f1.readlines()
    # for i in range(len(list_file)):
    # if username == list_file[i].strip().split('|')[0] and password == list_file[i].strip().split('|')[1]:
    # flag=True
    # print('登录成功!')
    # print('每次执行被装饰函数之前都得先经过这里。')
    # func_ret=func(*args,**kwargs)
    # return func_ret,True
    # count -= 1
    # print('您输入的账户名或密码错误,请重新输入,剩余%s机会' % count)
    # if count == 0:
    # return False
    # return inner
    #
    # @login
    # def func1(para1):
    # print('in func1')
    # return para1
    # func1('test para1')
    # @login
    # def func2(para2):
    # print('in func2')
    # return para2
    # func2('test para2')
  • 相关阅读:
    2020.8.20收获
    2020.8.19
    2020.8.21收获
    2020.8.24收获
    UIScrollView滑动动作结束的侦听函数
    iphone 自定义UISwitch
    总结SQLite不支持的SQL语法有哪些
    去除nsstring中的空格
    ObjectiveC中判断字符串是否包含其他字符串
    设置IPHONE顶部的状态栏的样式
  • 原文地址:https://www.cnblogs.com/baili-luoyun/p/10239474.html
Copyright ? 2011-2022 开发猿


http://www.vxiaotou.com