3 回答

TA貢獻1798條經驗 獲得超7個贊
試試這個。
def almost_there(n):
list_1 = [x for x in range(90,111)]
list_2 = [i for i in range(190,211)]
if n in list_1 or n in list_2:
return True
else:
return False
print(almost_there(1))
# False
檢查 n 是否在list_1或 中list_2。如果您if n in list_1 or list_2這樣做,則只會檢查是否ninlist_1和 not list_2。
還有一件事不要用作list變量名稱。這將覆蓋該list()函數。

TA貢獻1812條經驗 獲得超5個贊
由于條件: if n in list or list_1:
當你有 or 條件時,條件的兩個部分都應該是False
條件為 False
在您的情況下:n is not in list
是 False ,但list_1
不為空并且是 True 。
所以你有 if False or True:
- 這返回 True (滿足條件)

TA貢獻1856條經驗 獲得超17個贊
問題出在你的if
陳述中。
if n in list or list_1:
計算結果為: 1) if n in list
(假) or
2) if list_1
(真)
現在第二個參數總是會是True
因為它是一個填充列表。
正確的陳述方式if
應該是:if (n in list or n in list_1)
計算結果為if
1) n in list
(假) or
2) n in list_1
(假)
這樣你就會得到預期的結果。
添加回答
舉報