我一直在試圖弄清楚爲什麼這個簡單的程序無法正常工作。它總是返回錯誤消息。如果變量不在給定範圍內,則返回錯誤消息 - 但錯誤消息總是返回?
這是一個程序,它由5個整數,並增加了他們,但如果他們是大於100或小於0,則返回錯誤信息..只是它總是返回此無論放在什麼數字英寸
我是新來的,所以我知道它可能過於複雜或迂迴,但它應該起作用。 This is a picture of my programming.
我一直在試圖弄清楚爲什麼這個簡單的程序無法正常工作。它總是返回錯誤消息。如果變量不在給定範圍內,則返回錯誤消息 - 但錯誤消息總是返回?
這是一個程序,它由5個整數,並增加了他們,但如果他們是大於100或小於0,則返回錯誤信息..只是它總是返回此無論放在什麼數字英寸
我是新來的,所以我知道它可能過於複雜或迂迴,但它應該起作用。 This is a picture of my programming.
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")
謝謝。另外想知道,你會如何親自編寫比較以節省一些時間? – Lilac
@Lilac給我一點時間 –
@Lilac看我的編輯。如果有助於解決您的問題,請記住接受(綠色複選標記)答案。 –
將來會使用代碼格式選項在您的問題中發佈您的代碼。
「或」運算符查看返回布爾型真/假值的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"
...
>>>
考慮上面的例子。第一個是你在做什麼。你應該做後者。
請不要張貼照片,發佈您的實際代碼 –
複製並粘貼在這裏的代碼,不要讓我們從一個形象,如果一切都重新輸入我們想自己測試一下。 –