python写用’户登录程序‘的过程2
Posted 刘冬冬的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python写用’户登录程序‘的过程2相关的知识,希望对你有一定的参考价值。
上次写的登陆程序杂乱无章,自己都看不下去了,老师做出的点评如下
由于目前字典还不是太熟悉就先不用了,
然后加入了一个while循环确实好用
但是感觉代码仍然是冗余的多,可读性超级差
对了现在发现一个比较有用的调试方法,就是在每个功能完成的时候加入一段print语句来说明这段代码运行了,或者说明一下实现了怎么样的一个功能
上次的那个代码还有一个超级漏洞就是,当某一个用户名锁定了之后,当你再次输入正确的密码的时候仍然会登陆上,
然后这次被我改正了,下面就是代码
user_name=[\'a\',\'b\',\'c\',\'d\'] #密码和字符串分别保存到两个列表内并对应位置 passward=[\'1\',\'2\',\'3\',\'4\'] error_record=[] while(1): error_record = [] input_user_name=input("请输入用户名") #将格式转化为字符串格式 input_passward=input("请输入密码") if input_user_name in user_name: # 判断用户名是否存在 user_name_position = user_name.index(input_user_name) # 获得用户名在列表中的位置 with open(\'error_record.txt\') as f: # 打开文件并返回对象 for line in f: # 对每一行数据进行循环 rs = line.replace(\'\\n\', \'\') # 替换换行符 error_record.append(rs) # 循环放到列表内 f.close() print(error_record) print("用户存在,并写入列表error_record") if input_user_name in error_record: # 如果列表里有这个用户名 print("用户存在txt记录中") user_name_position1 = error_record.index(input_user_name) # 找到这个用户名的位置 # if error_record[user_name_position1 + 1] == \'3\': # 对应用户名位置判断密码是否正确 # print("登录失败,账户已经被锁定") # elif input_passward == passward[user_name_position]: # 对应用户名位置判断密码是否正确 # # print("登陆成功") if error_record[user_name_position1 + 1] == \'1\': if input_passward == passward[user_name_position]: print("登陆成功") else: error_record[user_name_position1 + 1] = \'2\' # print("登陆失败,还有1次机会") print(error_record) with open(\'error_record.txt\', \'w\') as f: f.truncate() # 文档清空 for i in error_record: # 循环写入文档新列表 with open(\'error_record.txt\', \'a\') as f: f.write(i) f.write(\'\\n\') f.close() print("写入txt记录中2") elif error_record[user_name_position1 + 1] == \'2\': if input_passward == passward[user_name_position]: # 对应用户名位置判断密码是否正确 print("登陆成功") else: print("登陆失败,还有0次机会") error_record[user_name_position1 + 1] = \'3\' # print(error_record) with open(\'error_record.txt\', \'w\') as f: f.truncate() # 文档清空 for i in error_record: # 循环写入文档新列表 with open(\'error_record.txt\', \'a\') as f: f.write(i) f.write(\'\\n\') f.close() print("写入txt记录中3") elif error_record[user_name_position1 + 1] == \'3\': print("登录失败,账户已经被锁定") else: if input_passward == passward[user_name_position]: # 对应用户名位置判断密码是否正确 print("登陆成功") else: error_record=[] with open(\'error_record.txt\') as f: # 打开文件并返回对象 for line in f: # 对每一行数据进行循环 rs = line.replace(\'\\n\', \'\') # 替换换行符 error_record.append(rs) # 循环放到列表内 f.close() print("把文当中有的数据放到列表中") print(error_record) error_record.append(input_user_name) error_record.append(\'1\') print("没有这个用户的错误记录,加入到error_record列表中") print(error_record) with open(\'error_record.txt\', \'w\') as f: f.truncate() # 文档清空 for i in error_record: # 循环写入文档新列表 with open(\'error_record.txt\', \'a\') as f: f.write(i) f.write(\'\\n\') f.close() print("密码错误,还有两次机会") else: print("请输入正确的用户名")
代码仍然超级烂,我也是知道的,没事我还会改的,
以上是关于python写用’户登录程序‘的过程2的主要内容,如果未能解决你的问题,请参考以下文章