我不明白爲什麼不是空字符串是False,就像空字符串一樣。我認爲人物的收集比少得多。在這種情況下,python的用途是什麼?爲什麼python的解釋不會將strig的對象清空爲邏輯False?
>>> "" in 'fdsa'
True
>>> '' in ''
True
>>> 'asdf' in ''
False
>>> 'adsf' is True
False
我不明白爲什麼不是空字符串是False,就像空字符串一樣。我認爲人物的收集比少得多。在這種情況下,python的用途是什麼?爲什麼python的解釋不會將strig的對象清空爲邏輯False?
>>> "" in 'fdsa'
True
>>> '' in ''
True
>>> 'asdf' in ''
False
>>> 'adsf' is True
False
我不完全明白你的問題。您在這裏使用兩個運營商:
in
字符串檢查是否第一個字符串第二的子字符串。 The empty string is considered a substring of every other string.
is
測試對象標識和返回True
如果兩個操作符都是同一個對象。 'adsf'
和True
顯然不是同一個對象,所以你得到False
。這兩個運營商的
無涉及解釋在布爾上下文字符串 - 這是你的問題似乎也觸及。例如,布爾上下文將是if
語句的條件。在布爾上下文中,空字符串被視爲False
,而非空字符串被視爲True
。您可以使用bool(obj)
來查看對象在布爾上下文中的行爲。
請注意,如果你想看到什麼樣的字符串的布爾值,你可以調用bool()
功能就可以了,就像這樣:
>>> bool('')
False
>>> bool('asdf')
True
關鍵字in
(docs)將測試如果一個元素是在一個序列 - 我不認爲這是你想要的。
「爲什麼不是空字符串是假的,就像空字符串一樣」。這到底意味着什麼? – 2012-07-24 17:26:25
@DavidRobinson,OP的問:「爲什麼非空字符串是假的,就像空字符串一樣?」對於初學者來說,英語比Python難得多。 (OP的前提是錯誤的,這無助於事情。) – 2012-07-24 20:12:55