使用«filter()»命令创建可按特定数字划分的数字列表

2024-06-29 01:09:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python)我必须使用filter()创建一个列表,其中包含从1到100(包括)的所有数字,这些数字可以除以7、9和42。我写了这段代码,但是,当我启动它时,它并没有给我正确的解决方案。你知道问题出在哪里吗

listnumbers = []
for x in range (1, 101):
    x = str(x)
    listnumbers.append(x)
print (listnumbers)

def dividable(k):
    for t in k:
        if int(t) % 7 == 0:
            return True
        if int(t) % 9 == 0:
            return True
        if int(t) % 42 == 0:
            return True
        else:
            return False
    return dividable

s2u = list(filter(dividable, listnumbers))

for q in s2u:
    print(q)

Tags: 代码intrue列表forreturnif数字
2条回答

根据你的问题陈述,这个数字应该可以被7和9和42整除

listnumbers = list(range(1,101))

def dividable(k):
    if k % 7 == 0 and k % 9 == 0 and k % 42 == 0:
        return True
    else:
        return False

ans = list(filter(dividable, listnumbers))
print(ans)

只要看看你的代码,我认为dividable(k)写得不正确。更新至:

def dividable(k):
    n = int(k)
    return n % 7 == 0 or n % 9 == 0 or n % 42 == 0:

为什么在这个方法中声明了for外观?如果它通过了其余的条件,为什么它会在最后返回函数呢

相关问题 更多 >