Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
2个相同的字符串“;“不相等”;[Python]_Python - Fatal编程技术网

2个相同的字符串“;“不相等”;[Python]

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

通过搜索发现了一个类似的问题,但我是一个新的(糟糕的)程序员,无法理解答案

我有一个包含多个字符串的.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_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')
看起来与我的终端中的标志符号完全相同,但这些字符串不相等。