我意识到我的问题标题可能有点令人困惑,所以我会给出背景信息。我有代码,它首先生成一个随机数,然后根据该范围的随机数创建一个列表(随机数,随机数+15)。
我想要做的是创建一个if语句,如果该范围内的每个项目都不能被输入的数字除,那么它将返回True
,然后执行应该发生的任何事情。 (我为此使用Python 3)
例如,如果我的列表为[8, 9, 10, 11, 12]
且输入的数字为5,则应检查中的每个数字是否的余数为0(在在这种情况下,列表不会满足10 % 5 == 0
)这个条件。因为这不是这种情况,所以代码将查找else语句。
我有一些想法,但没有一个是有效的。我列出了我记得的两个人。
if all(x % distance == 0 for x in jagX):
和
if (all(jagX) % distance == 0):
出于某种原因,这些总是返回true,即使我有目的地使用了输入,每次都会导致这些if语句为假(我会将距离设为2作为测试,以查看当语句为false时是否识别)
答案 0 :(得分:0)
如果将any()
与生成器表达式一起使用,可以构建如下:
def test_zero_modulo_in_list(list_to_test, modulo):
return not any(i % modulo == 0 for i in list_to_test)
a_list = [8, 9, 10, 11, 12]
print(test_zero_modulo_in_list(a_list, 5))
print(test_zero_modulo_in_list(a_list, 13))
False
True