首页 > 解决方案 > while 循环似乎无法正常运行

问题描述

我正在开发一个使用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 = ""

它仍然无法正常工作。

谁能告诉我为什么?

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

标签: pythonwhile-loop

解决方案


当我最初回答您的帖子时,我假设您想查找文件中用户名所在的文件行。如果您对查找用户名所在的特定行不感兴趣,并且只想循环一直持续到输入有效的用户名,那么您应该知道您只能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

推荐阅读