我已经开始重新运行一些python并且我被卡住了,我将提供的代码试图将用户选择的正确答案与从txt文件中读取的字符串进行比较。因此,next_line(the_file)将从txt文件读取一行并将该行文本放入正确的变量中。读取的文本行只有一个字符长,始终是1-4的数字。
correct = next_line(the_file)
if correct:
correct = correct [0]
用户将从1-4中选择
的答案answer = input("What's your Answer?:")
然后程序用
检查答案if answer == correct:
print ("Right!")
我不明白的是为什么correct = next_line(the_file)
需要整个if语句正确=正确[0]?
如果用户输入4作为答案,那么为什么不能仅对正确= next_line(the_file)进行检查。
答案 0 :(得分:1)
读取的文本行只有一个字符长,始终是1-4的数字。 我不明白的是为什么纠正= next_line(the_file) 需要整个if语句正确=正确[0]?
这是因为当您从文件中读取行时,您正在读取整行,包括行尾字符:
>>> i = '4\n'
>>> i[0]
'4'
这就是correct = correct[0]
的原因。外部if
语句确保您跳过任何空行。
所以,这些行:
correct = next_line(the_file)
if correct:
correct = correct[0]
翻译的意思是:
“从变量the_file
读取下一行并将结果存储在correct
。如果有行读取(即行不是空行),则存储变量correct
中该行的第一个字符。“
如果您未检查correct
的值,那么当文件中有空行时,您会在IndexError
上收到correct = correct[0]
例外。