从文本文件到变量的i / o

时间:2013-12-15 03:31:29

标签: python

我已经开始重新运行一些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)进行检查。

1 个答案:

答案 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]例外。