2017-07-31 155 views
-1

我一直在試圖弄清楚爲什麼這個簡單的程序無法正常工作。它總是返回錯誤消息。如果變量不在給定範圍內,則返回錯誤消息 - 但錯誤消息總是返回?

這是一個程序,它由5個整數,並增加了他們,但如果他們是大於100或小於0,則返回錯誤信息..只是它總是返回此無論放在什麼數字英寸

我是新來的,所以我知道它可能過於複雜或迂迴,但它應該起作用。 This is a picture of my programming.

+1

請不要張貼照片,發佈您的實際代碼 –

+4

複製並粘貼在這裏的代碼,不要讓我們從一個形象,如果一切都重新輸入我們想自己測試一下。 –

回答

0

or不按照您認爲的方式工作。

它比較它旁邊的兩個語句,如果其中一個是True那麼該語句是正確的。在這種情況下,所有整數屬實所以與第一or聲明:因爲整數被視爲True

int_one or int_two... 

永遠是真實的!因此,你的比較應該是:

if int_one not in range or int_two not in range or int_three not in range or int_four not in range or int_five not in range: 

爲了使這個比較快,我會做一個列表,然後使用while讓用戶輸入他們的輸入到列表中,並通過一個比較它們一個:

user_input_list = [] 
i = 0 

while len(user_input_list) < 5: 
    user_input = int(input("Enter the " + str(i+1) + "th number:")) 
    if 0 <= user_input <= 100: 
     user_input_list.append(user_input) 
     i += 1 
    else: 
     print("Please enter a number from 0 to 100") 

Try it here!

+0

謝謝。另外想知道,你會如何親自編寫比較以節省一些時間? – Lilac

+0

@Lilac給我一點時間 –

+0

@Lilac看我的編輯。如果有助於解決您的問題,請記住接受(綠色複選標記)答案。 –

0

將來會使用代碼格式選項在您的問題中發佈您的代碼。

「或」運算符查看返回布爾型真/假值的2個表達式的輸出。所以你使用它的方式是不正確的。

>>> if 1 or 2 or 3 not in [1,2,3]: 
...  print "hi" 
... 
hi 
>>> if 1 not in [1,2,3] or 2 not in [1,2,3] or 3 not in [1,2,3]: 
...  print "hi" 
... 
>>> 

考慮上面的例子。第一個是你在做什麼。你應該做後者。

相關問題