我想知道是否有一種方法做以下更緊湊的風格:Python多重比較風格?
if (text == "Text1" or text=="Text2" or text=="Text3" or text=="Text4"):
do_something()
問題是我已經不僅僅是4比較多的if語句,它的開始看起來比較長,曖昧,而且很醜。有任何想法嗎?
我想知道是否有一種方法做以下更緊湊的風格:Python多重比較風格?
if (text == "Text1" or text=="Text2" or text=="Text3" or text=="Text4"):
do_something()
問題是我已經不僅僅是4比較多的if語句,它的開始看起來比較長,曖昧,而且很醜。有任何想法嗎?
如何:
if text in ('Text1', 'Text2', 'Text3', 'Text4'):
do_something()
我總是發現,古樸典雅。
「if if text in answer」是好的,但如果您的文本字符串符合模式,您可能還會考慮re(正則表達式)包。例如,從字面上看,「文本」後跟一個數字就是一個簡單的正則表達式。
下面是一個適用於「文本」後跟數字的示例。 \ Z匹配字符串的結尾,\ d一個數字。
if re.match('Text\d\Z', text):
do_something()
通常的Python風格不會在圓括號周圍放置空格。 @布倫特說得對,但由於某種原因將其刪除。 – 2011-03-18 15:27:47
正是我在找什麼,謝謝你,我的代碼現在看起來好多了:) – Symon 2011-03-18 15:46:50
@GlennMaynard:感謝pep-8提醒。就我個人而言,我發現在parens內部有空間可以更清晰地看到,但我應該記住要把它們留在例子中。 – 2011-03-18 22:21:14