我必须制作一个程序,其中一个功能是从文本文件中检索用户名和结果。 (全部在同一条线上) 出于某种原因,当我运行它时,只打印出第一行。为什么是这样 ?此外,这只发生在我尝试在学校运行程序(作业的一部分)时,它会在家里的笔记本电脑上打印所需的一切。 (Python版本也相同)
这是我的代码:
def results():
username = input("Enter username :")
for line in open("resultsfile.txt","r"):
if username in line:
print (line)
elif username not in line:
("No such user")
此外,这是文本文件的样子(没有项目符号点):
答案 0 :(得分:0)
def results():
username = input("Enter username :")
for line in open("resultsfile.txt","r"):
if username in line:
print (line)
else:
print("No such user")
results()
答案 1 :(得分:0)
您正在对文件进行迭代,但是您为每个与用户名不匹配的行打印No such user
。
如果文件中的某行包含用户名,则应该在循环后评估 。要实现这一点,您可以引入一个布尔值(found
)来指示是否找到了用户:
def results():
found = False
username = input("Enter username :")
for line in open("resultsfile.txt","r"):
if username in line:
print (line)
found = True
if not found:
print("No such user")