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 = ""

而且它仍然无法正常工作。


谁能告诉我为什么?


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


森栏
浏览 102回答 1
1回答

www说

我假设你想找到文件中用户名所在的文件行。如果您对查找用户名所在的特定行不感兴趣,而只想继续循环直到输入有效的用户名,那么您应该知道您只能在文件打开后调用一次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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python