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的主要内容,如果未能解决你的问题,请参考以下文章

python-pytest学习函数传参

python-pytest学习函数传参

Python Api接口自动化测试框架 代码写用例

SpringBoot 统一功能处理

pytest-14-函数传参和firture传参数request

pytest文档14-函数传参和firture传参数request