2012-12-17 46 views
0

我使用的Python 3.2.3空閒 這裏是我的代碼:我如何做一個不等於多個數字?

number = input("please enter 1 or 2") 
if number != 1 or 2: #this part is wrong 
    print("You didn't enter 1 or 2") 

我的代碼不正確。我想這樣做,以便如果用戶不輸入1或2,彈出錯誤。說他們輸入1.5,3等,或者不是1.0或2.0的東西。

如何使用!=命令?

+1

這是令人不安的是很難用搜索找到一個確切的重複,但是這是一個星期要求至少一次。 – geoffspear

+0

@Wooble - 這是遊戲的名字。一些問題被超頻地詢問,但很難以合理的方式爲搜索引擎找到明顯的索引。 – mgilson

回答

4

的問題是,該代碼被解析爲

if ((number != 1) or 2): 

2,爲非零值,是總是如此。

相反,我會建議

if number not in (1, 2): 
+0

's/positive/nonzero /'。 – delnan

+0

@delnan謝謝。 – cmh

+0

雖然它沒有什麼區別,但使用一個集合而不是一個元組是一個好主意(從2.7開始支持設置文字),例如:'如果數字不在{1,2}中:'as sets對會員資格進行快速檢查。如果這個集合比這個簡單的例子大得多,這可能很重要。 –

2

您可以隨時使用in/not in

if number not in (1,2): 

不要忘了你的號碼創建一個整數,以及...

number = int(input("please enter 1 or 2")) 

你的代碼是永遠不會給True結果因爲你將字符串與整數進行比較(它總是不相等)。

+0

注意'input'不是'raw_input'所以'1'確實是'int'而不是'string'的類型。 –

+1

@sudo_O - 不正確(我一開始沒有注意到它)。 OP使用的是python3.2.3,其中'input'與python2.x的'raw_input'是一樣的(python3已經擺脫了帶有隱含的'eval'的版本)。 – mgilson

+0

我站好了,很高興知道! –

1

你可以試試這個:

if number!=1 and number!=2 
相關問題