在控制檯(我認爲是正確的)和函數內(我認爲不正確)之間進行布爾值str比較的方式似乎有所不同。即對於相同的代碼和數據,我得到了不同的答案。 控制檯:控制檯和函數之間的Python str比較不同
s
Out[537]: ['a', 'g', 'xyz', 'b', '6', 'g', 'v']
'x' in s
Out[538]: False
'xyz' in s
Out[539]: True
所以這都有道理,現在,在函數內我拿S的每個元素反過來,尋找一個真實的回報如下:
def f(s):
print 's in f(s) looks like: ', s, 'x' in s
return 'x' in s
結果:
Number of required string in list of strings is: s sent to f(s) is: a
s in f(s) looks like: a False
s sent to f(s) is: g
s in f(s) looks like: g False
s sent to f(s) is: xyz
s in f(s) looks like: xyz True
那麼爲什麼在返回 'XYZ' 真,如果我要找的 'X'?
你可以在'f(s)'中打印's'嗎? – Sait
看來你在第一個例子中有一個列表,而不是一個字符串。最後一個不包含字符串「x」。但顯然,字符串「xyz」包含字符「x」。 –
你的函數檢查''x「'是否在字符串's'中。當你調用'f(「x」)','s'設置爲'「xyz」',所以你在'xyz''中檢查'「x」。字符串'「xyz」'包含字符串'「x」'。 – Sam