最后一行代码中的无限while循环

用户名

任何人都可以在以下方面为我提供帮助:

我有一个代码,该代码读取用户名和密码,然后允许用户访问程序。我有第一个选项来注册一个新用户。我的最后两行代码遇到无限循环问题。我想运行一个字符串,说明如果输入了未注册的用户名,它将返回一个字符串,表明没有这样的注册用户。该字符串仅在循环中运行,有什么我可以做的来更改它。

用户名:admin

密码:adm1n

我的代码如下:

users = {}  
with open ('user.txt', 'rt')as username:
    for line in username:
        username, password = line.split(",")
        users[username.strip()] = password.strip()  # strip removes leading/trailing whitespaces

uinput = input("Please enter your username:\n")
while uinput not in users:
    print("Username incorrect.")
    uinput = input("Please enter a valid username:/n")

if uinput in users:
            print ("Username correct")

with open('user.txt', 'rt') as password:
    for line in password:
        username, password = line.split(",")
        users[password.strip()] = username.strip()  # strip removes leading/trailing whitespaces

uinput2 = input("Please enter your password:\n")
while uinput2 not in users:
    print("Your username is correct but your password is incorrect.")
    uinput2 = input("Please enter a valid password:\n")

if uinput2 in users:
    password2 = ("Password correct")
    print (password2)

if password2 == ("Password correct"):
       menu = (input("\nPlease select one of the following options:\nr - register user\na - add task\nva - view all tasks\nvm - view my tasks\ne - exit\n"))
    if menu == "r" or menu == "R":
                new_user = (input("Please enter a new user name:\n"))
                new_password = (input("Please enter a new password:\n"))
                with open ('user.txt', 'a')as username:
                        username.write("\n" + new_user + ", " + new_password)
    elif menu == "a" or menu == "A":
                task = input("Please enter the username of the person the task is asigned to.\n")
        while task not in username:
                print("User not registered. Please enter a valid username:\n")
x

您最后有一个循环,说

while task not in username:
    print("User not registered. Please enter a valid username:\n")

这是未完成的,并且将无限循环,因为如果task不在中username,则打印某些内容不会改变该事实,因此它将循环并再次打印。您可能想添加类似

task = input("Please enter a valid username of a person the task is assigned to.\n")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

bash while循环删除文本文件的最后一行

来自分类Dev

for循环仅将最后一行保存在数据库中

来自分类Dev

更改QTextBrowser中的最后一行

来自分类Dev

如何在while循环中仅打印最后一行

来自分类Dev

Ansible with_items继续覆盖循环的最后一行

来自分类Dev

删除组中的最后一行

来自分类Dev

C#如何从循环中删除最后一行

来自分类Dev

无限循环:继续打印一行

来自分类Dev

当该行中没有数据时,循环中的最后一行会添加一行错误

来自分类Dev

从文件中删除最后一行

来自分类Dev

在读取循环时忽略文件中的最后一行

来自分类Dev

如何在while循环中仅打印最后一行

来自分类Dev

试图了解代码的最后一行

来自分类Dev

为什么这个“ while”循环无法识别最后一行?

来自分类Dev

检查这是否是while循环中的最后一行

来自分类Dev

如何替换Windows批处理代码中的最后一行?

来自分类Dev

从while循环在python中的一行上打印文本

来自分类Dev

用于确定A列中不同条目的第一行和最后一行的循环

来自分类Dev

省略嵌套循环中的最后一行

来自分类Dev

Python循环仅在cassandra中插入最后一行

来自分类Dev

在while循环中更改一行代码

来自分类Dev

当单击按钮时,while循环仅显示数据库中的最后一行[以显示模式对话框]

来自分类Dev

如何避免在循环的最后一次迭代中回显一行?

来自分类Dev

PHP While 循环不返回一行中的数据

来自分类Dev

去掉shell中的最后一行

来自分类Dev

最后在vimrc中执行一行

来自分类Dev

DataGridView 中的最后一行验证

来自分类Dev

如果我的 while 循环成功,如何使最后一行不打印?

来自分类Dev

在 C 中,一行 While 循环如何工作?

Related 相关文章

热门标签

归档