我正在处理一个使用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 = ""
它仍然无法正常工作。
谁能告诉我为什么?
我只是在寻找一个简单的解决方案。
答案 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