2015-01-09 28 views
0

什麼是最有效的方法來檢查可以不用重複的「或」功能以不同的方式寫入的輸入? (即一個較短的版本寫的:檢查類似可能輸入的有效方法?

如果答案==「是」或回答==「是」或回答== YES

感謝

+1

對於特殊情況:如果'answer.ToUpper()==「是」'或者如果語言支持大小寫無關的字符串比較,您可以用這些,而不是從C#摘自:'回答.Equals(「yes」,StringComparison.OrdinalIgnoreCase)' – 2015-01-09 20:46:51

+0

@EtienneMaheu不!答案是空的?!在Java中更好的是「是」.equals(answer.toUpper())或者明確地檢查其他語言的答案的空格 – kulatamicuda 2015-01-09 20:49:57

+0

@kulatamicuda大多數情況下,null不是問題。如果是這樣的話,我會選擇'answer?.Equals(...)'而不是(在C#中)或者一些等價的東西。尤達的條件是可怕的閱讀,我會不惜一切代價避免它們。我甚至更喜歡編寫擴展方法來處理這種情況(再次用C#):'answer.SelectOrDefault(a => a.Equals(...))'。不過,好點。空值是一種痛苦。 – 2015-01-09 20:53:09

回答

0
valid = ["Yes", "yes", "y", "ok"] 

if answer in valid: 
    print "You said yes" 
else: 
    print "You did not say yes" 
0

檢查它是否是一個集合的成員!

if answer in {'Yes', 'yes', YES}: 
    ... 
相關問題