为什么相同的字符串返回false = =?

时间:2016-06-26 15:34:05

标签: python string

这是我的问题的简化版本。

QA = open('Qestions and answers.txt')
Q = []
A = []

for line in QA:
  (first,second) = line.split(';')
   Q.append(first)
   A.append(second)

QA.close()

print(A[0], A[1])
print(A[0] == '1981')
print(A[1] == 'Feb')
print(str(A[0]) == '1981') # I even tried str
print(str(A[1]) == "Feb")

输出:

1981
 Feb

False
False
False
False

2 个答案:

答案 0 :(得分:4)

你那里有额外的空白。我猜是这样的:

print(repr(A[0]))

输出:

'1981\n'

这是因为当您从文件中读取行时,您也会在每行的末尾获得换行符。如果您不想这样,请将它们剥离。

for line in QA:
    line = line.rstrip('\n')
    ...

答案 1 :(得分:0)

strip()适用于此问题

print(A[0].strip() == '1981')
print(A[1].strip() == 'Feb')


True
True