2个相同的字符串“;“不相等”;[Python]
通过搜索发现了一个类似的问题,但我是一个新的(糟糕的)程序员,无法理解答案 我有一个包含多个字符串的.txt文件,用“-”分隔。我使用拆分将一些字符串分隔为变量,其中两个相等,但在if语句中,它们显示为不相等2个相同的字符串“;“不相等”;[Python],python,Python,通过搜索发现了一个类似的问题,但我是一个新的(糟糕的)程序员,无法理解答案 我有一个包含多个字符串的.txt文件,用“-”分隔。我使用拆分将一些字符串分隔为变量,其中两个相等,但在if语句中,它们显示为不相等 f_nmr, f_Question, f_1, f_2, f_3, f_answer = file.readline().split('-') print(f_2) print(f_answer) if f_2 == f_answer: print("Yes") elif f_2
f_nmr, f_Question, f_1, f_2, f_3, f_answer = file.readline().split('-')
print(f_2)
print(f_answer)
if f_2 == f_answer:
print("Yes")
elif f_2 != f_answer:
print("No")
这将产生以下结果:
瑞典
瑞典
没有
两个“Sweden”字符串前后都有一个空格,它们都用大写字母“S”书写,但不相等?我哪里搞砸了?最后一个元素包括一个换行符。让我们以这个输入文件为例:
$ cat file.txt
Sweden-Sweden
现在,让我们读一下:
>>> a, b = open('file.txt').readline().split('-')
>>> a,b
('Sweden', 'Sweden\n')
>>> a == b
False
解决方案是剥离换行符:
>>> a, b = open('file.txt').readline().rstrip('\n').split('-')
>>> a == b
True
输入文件是什么样子的?尝试修剪两个字符串,然后用f_2.strip()和f_answer.strip()测试结果。
print(len(f_2))
和print(len(f_answer))
show?尝试print(repr(f_2))
和print(repr(f_answer))
;我保证你会看到不同之处。@ShadowRanger不一定repr('Ѕweden')
和repr('Sweden')
看起来与我的终端中的标志符号完全相同,但这些字符串不相等。