我正在开发一个使用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 = accountelse: print("That username was not found.") account = ""而且它仍然无法正常工作。谁能告诉我为什么?我只是在寻找一个简单的解决方案。
1 回答
www说
TA贡献1775条经验 获得超8个赞
我假设你想找到文件中用户名所在的文件行。如果您对查找用户名所在的特定行不感兴趣,而只想继续循环直到输入有效的用户名,那么您应该知道您只能在文件打开后调用一次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
添加回答
举报
0/150
提交
取消