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
(假)
这样你就会得到预期的结果。
添加回答
举报