当用户输入一个输入时,如果该输入不可用,打印将执行两次
如何修复它???
if ask.lower() == 'open':
with open(filename, 'r') as f:
contents = f.read().splitlines()
search_name = input("What is your name? ")
for line in contents:
if line.find(search_name) != -1:
print(line)
else:
print("Unable to find your name")
输出:
找不到您的姓名
找不到你的姓名
这里有一个更健壮的构造:
if ask.lower() == 'open':
with open(filename) as f:
name = input('What is your name? ')
for line in f:
if name in line:
print(line)
break
else:
print('Unable to find your name')
您正在为文件中的每个条目调用print
命令!让我澄清一下,对于作为search_name
输入的名称,您正在从文件中读取的每一行上循环(在您的情况下,文件似乎有2行(。
如果线索不是你想要的。你需要的是这样的东西:
if ask.lower() == 'open':
with open(filename, 'r') as f:
contents = f.read().splitlines()
search_name = input("What is your name? ")
is_found = false
for line in contents:
if line.find(search_name) != -1:
is_found = true
print(line)
if not is_found:
print("Unable to find your name")