打印 1-100 之间的数字,跳过可被 3 和 5 整除的数字

我想打印 1-100 之间的数字,跳过可被 3 和 5 整除的数字,当我使用代码 1 时,我没有得到正确的输出,我正在计算 1-100


#CODE1

i=1

a=1

while i<=100:

    if (a%3==0 and a%5==0) :

           a=a+1

    else:

        print(a)

        a=a+1

    i=i+1

但是当我使用 CODE-2 时,我得到了想要的结果


#CODE2

i=1

a=1

while i<=100:

    if ((a%3 and a%5)==0) :

        a=a+1

    else:

        print(a)

        a=a+1

    i=i+1

注意代码的第四行,为什么第一个代码有问题?


沧海一幻觉
浏览 279回答 3
3回答

梦里花落0921

考虑一下:a = 10(a%3 == 0) and (a%5 == 0)&nbsp; # False(a%3 and a%5) == 0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# True第一次尝试给出False错误,因为它需要同时满足两个条件;你需要or代替。如果仔细观察,一些数字(例如15)被排除在外,与同时具有3和5作为因数的数字一致。如果因为在第二次尝试是正确的a是不整除或者3或5,则表达式计算得到False,并0 == False给出True。更惯用的写法是:not (a%3 and a%5)

泛舟湖上清波郎朗

检查这也有效!100%def result(N):&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for num in range(N):&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if num % 3 == 0 and num % 5 == 0:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;print(str(num) + " ", end="")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pass&nbsp; &nbsp; if __name__ == "__main__":&nbsp; &nbsp; &nbsp; &nbsp;N = 100&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;result(N)

小唯快跑啊

在他所关注的层面上有一个更清晰的答案a = 1while a <= 100:&nbsp; &nbsp; if a%3 == 0 or a%5 ==0:&nbsp; &nbsp; &nbsp; &nbsp; a = a+1&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; print(a)&nbsp; &nbsp; &nbsp; &nbsp; a = a+1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python