1.登陆接口

来源:互联网 发布:cs手机扫描软件 编辑:程序博客网 时间:2024/04/30 09:20
编写登陆接口

1.输入用户名密码
2.认证成功后显示欢迎信息

3.输错三次后锁定



import picklepickle_file1 = open('user.txt', 'rb')userlist = pickle.load(pickle_file1)pickle_file1.close()pickle_file2 = open('userlock.txt', 'rb')locklist = pickle.load(pickle_file2)count = 0while count < 3:    username = input('username:')    if username not in userlist.keys():        print('wrong username,print again!')        continue    password = input('password:')    if username not in locklist:        if int(password) == userlist.get(username):            print('welcome user {0} loading...'.format(username))            break        else:            print('wrong password,please input  again...')            count += 1    else:        print('your username have been locked!!!')        breakelse:    print('you have try three times,your username has been locked...')    locklist.append(username)    pickle_file2 = open('userlock.txt', 'wb')    pickle.dump(locklist, pickle_file2)pickle_file2.close()


import pickleuser = {'gyc': '123', 'gyf': '123', 'ylz': '123', 'gjq': '123'}lock = ['gyc']with open('user.txt', 'wb') as file1:    pickle.dump(user, file1)with open('userlock.txt', 'wb') as file2:    pickle.dump(lock, file2)

总结:

     1.pickle是用来存储结构化数据的模块,比如一个字典,用pickle.dump存到本地文件,所存数据的结构就是字典

而普通的file.write写入文件的是字符串   同理,用pickle.load从文件中读取一个字典,而file.read返回的是一个字符串

      2.if int(password) == userlist.get(username):  这行代码,刚开始时没加int()强制转换,导致用户名和密码始终不能匹配,因为前面的input 默认把输入返回为字符串,当输入密码 123 时,为整形数据,导致不匹配

      3.刚开始我把userlock也当作字典,但发现输入三次要锁定某用户时使用locklist.append(username) 无法添加,因为字典没有append属性,于是我把userlock当作列表创建

原创粉丝点击