可被两个给定整数整除

Divisible by two given integers

x=[1,2,3,4,5,6]

for y in x:
    if y %2 == 0:
        print (y)
    elif y %3 == 0:
        print ("y")
    elif y %3 and y %2 ==0:
        print ("Divisible by 2 and 3!")
    else:
        print ("Odd number!")

我试图找出 1 到 6 之间的偶数和奇数。除整数 6 外,一切都很好,我需要它来打印出整数 6 可以被 2 和 3 整除。我怎样才能修复错误?

可被 2 和 3 整除的测试应该放在第一位,因此对于 6,您评估的是 y %3==0 and y %2 ==0 而不是 y %2 == 0:

for y in x:
    if y % 3 == 0 and y % 2 == 0:
        print ("Divisible by 2 and 3!")
    elif y % 2 == 0:
        print (y)
    elif y % 3 == 0:
        print (y)
    else:
        print ("Odd number!")

这里有两个问题:首先条件应该是:

elif y %3 <b>== 0</b> and y %2 ==0:

因为有两个不同的条件。接下来,您需要将支票 移到顶部 ,因此:

for y in x:
    <b>if y %3 == 0 and y %2 ==0:</b>
    <b>    print ("Divisible by 2 and 3!")</b>
    elif y %2 == 0:
        print (y)
    elif y %3 == 0:
        print ("y")
    else:
        print ("Odd number!")

为什么?因为如果一个数可以被 2 和 3 整除,它也可以被 2 整除。所以这意味着在你的情况下 它会选择第一个分支 。通过交换顺序,它将首先检查它是否可以被 23 整除。如果不是这种情况 - 即如果至少一个条件失败 - 它将检查剩余的分支。