while循环似乎无法正常运行

时间:2020-08-24 22:28:02

标签: python while-loop

我正在处理一个使用while循环的python项目。独特的东西。但是,我无法让循​​环为我完成工作。

我的代码:

with open("accounts.txt", "r") as account_file:
    while account == "":
        account = str(input("Enter a username: ") + " ")
        if account not in account_file.read():
            print("That username was not found.")
            account = ""

运行此命令时,它将提示我输入用户名,并且如果可以在accounts.txt中找到输入的字符串(加上空格),则会提示我可以找到我的用户名。

如果我输入了无效的用户名,则该程序应该告诉我找不到输入的用户名,然后让我再试一次-除非我在下次尝试中正确输入了用户名,否则程序仍会提示我找不到我的用户名。

我尝试进行此更改:

if account in account_file.read():
    account = account
else:
    print("That username was not found.")
    account = ""

它仍然无法正常工作。

谁能告诉我为什么?

我只是在寻找一个简单的解决方案。

1 个答案:

答案 0 :(得分:1)

当我最初回答您的帖子时,我假设您想在文件中找到用户名所在的文件行。 如果您不希望找到用户名所在的特定行,而只想循环直到输入有效的用户名,那么您应该知道打开后只能在文件上调用read()

考虑这样做:

while account == "":
    account = str(input("Enter a username: ") + " ")
    with open("accounts.txt", "r") as account_file:
        if account not in account_file.read():
            print("That username was not found.")
            account = ""

如果您确实想要用户名所在的行,则可能需要这样的内容:

with open("accounts.txt", "r") as account_file:
    account = str(input("Enter a username: ") + " ")
    for line in account_file:
        if account in line:
            print("Found username")
            break