Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
468 views
in Technique[技术] by (71.8m points)

2 identical strings "not equal" [Python]

Found a similar question via search but I'm a new (terrible) programmer and couldn't understand the answer.

I have a .txt file with multiple strings, seperated by a '-'. I used a split to seperate some of the strings into variables, and 2 of them are equal, but in an if statement they come out as not equal.

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")

This produces the following:

Sweden

Sweden

No

There is a space infront and after both "Sweden" strings, and they're both written with an uppercase 'S', yet are not equal? Where have I messed up?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The last element includes a newline. Let's take this input file as an example:

$ cat file.txt
Sweden-Sweden

Now, let's read it in:

>>> a, b = open('file.txt').readline().split('-')
>>> a,b
('Sweden', 'Sweden
')
>>> a == b
False

The solution is to strip the newline:

>>> a, b = open('file.txt').readline().rstrip('
').split('-')
>>> a == b
True

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...