2014-11-04 81 views
0

這是我遇到麻煩的代碼的一部分。對於部分如果nums> = -999不起作用。我也嘗試過int(nums)> = -999。我不確定如何解決這個問題。我得到的代碼是通過以下方式錯誤是unorderable類型:列表()> = INT()如何比較列表與整數?

from statistics import mean 
nums = [int(input("Enter Numbers ")) for _ in range(6)] 
if nums >= -999: 
    print("Sentinel value was entered") 
print([x for x in nums if x > mean(nums)]) 
+0

'nums'是一個列表。你想比較什麼?列表中的每個項目? – Amber 2014-11-04 02:58:13

+0

我想要做的是如果輸入的數字是-999或更少,它會打印出該消息,並且不起作用。 – itsthewendigo 2014-11-04 02:59:26

+1

「不起作用」是否表示它要求輸入另一個號碼,或者在輸入所有號碼後失敗? – Amber 2014-11-04 03:08:38

回答

2

我不太清楚你想要做什麼,但如果你想看看是否有任何數量> = - 999在列表中,你可以這樣做:

too_large=[i for i in nums if i>=-999] 
if (too_large): 
    print("Sentinel value was entered") 

這將構建一個列表(NUMS的一個子集),其中數爲> = - 999,並把它太大了;那麼,如果此列表包含任何元素(if (too_large):),則會打印該消息。

請注意,-999是一個非常小的數字,許多數字(例如1)比這個數字更大。我不知道這是你的意圖。

+0

它不是我試圖找到那個我想要做的是如果用戶輸入-999,-1000等在打印輸出「前哨值輸入」 – itsthewendigo 2014-11-04 03:04:53

+0

@itsthewendigo:如果你想要「'-999'或更少」,然後使用這個答案,但用<='而不是這個答案中顯示的'> =' – tom10 2014-11-04 03:08:54

+0

@ tom10哇我累了我不能相信我沒有捕捉到... – itsthewendigo 2014-11-04 03:11:28

4

如果你只是想檢查是否有列表中的數字小於或等於-999

if any(x <= -999 for x in nums): 
    # at least one of the numbers in nums was -999 or below