Python中字符串的平等性

时间:2014-02-03 21:49:45

标签: python python-2.7

我有这段代码:

afile = "name.txt"
f = open(afile,"r")
content = f.readlines()
f.close()
correct = content[1]
answer = raw_input()
if answer == correct:
    print 'True'

让我们说,因为name.txt,内容[1]是George,然后我运行代码并输入George作为答案。 为什么我不会成真? 为什么回答和纠正是不一样的?

2 个答案:

答案 0 :(得分:6)

您阅读的数据包括换行符;首先从行中删除那些:

if answer == correct.strip():

从字符串的开头和结尾删除所有空格。如果开头或结尾的空格很重要,您可以使用以下命令从中删除新行

if answer == correct.rstrip('\n'):

答案 1 :(得分:0)

重写了一下:

def get_file_line(fname, line_num):
    with open(fname) as inf:
        try:
            for _ in range(line_num + 1):
                line = inf.next()
            return line.rstrip('\r\n')
        except StopIteration:
            return None

if answer == get_file_line('name.txt', 1):
    print('True')