2016-07-03 30 views
-3

我對一些輸入和if語句有一個簡單的問題。我正在使用此頁面的功能,但我的修改無效。這是我的代碼:輸入函數和或邏輯的一些問題

def correct(prompt): 
    while True: 
     try: 
      value = int(raw_input(prompt)) 
     except ValueError: 
      print("Enter a number, please!") 
      continue 

     if (value != 1) or (value != 2): 
       print("Enter a value of either 1 or 2, please!") 
       continue 
     else: 
      break 
     return value 

這個問題似乎是在if語句。預期的行爲是拒絕不是1或2的輸入。但是,它拒絕所有輸入。

回答

1

你處於一個常見的陷阱。您想在您的if聲明中使用and而不是or。所有數字不是12。所以,你會想從if (value != 1) or (value != 2):更改您的代碼if (value != 1) and (value != 2):

1

問題是與這個測試:

if (value != 1) or (value != 2): 
    ... 

顯然,這是True任何value,includung 12。你可以使用in

if value not in [1, 2]: 
    ... 

而且,從來沒有達到在功能上return聲明,因爲它縮進是while循環的一部分,循環最終被break終止。

1

你可以使用:

if value not in [1,2]: 
    ...