为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

沧海一幻觉 2021-08-17 10:05:40
我想打印 1-100 之间的数字,跳过可被 3 和 5 整除的数字,当我使用代码 1 时,我没有得到正确的输出,我正在计算 1-100#CODE1i=1a=1while i<=100:    if (a%3==0 and a%5==0) :           a=a+1    else:        print(a)        a=a+1    i=i+1但是当我使用 CODE-2 时,我得到了想要的结果#CODE2i=1a=1while i<=100:    if ((a%3 and a%5)==0) :        a=a+1    else:        print(a)        a=a+1    i=i+1注意代码的第四行,为什么第一个代码有问题?
查看完整描述

3 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

考虑一下:


a = 10


(a%3 == 0) and (a%5 == 0)  # False

(a%3 and a%5) == 0         # True

第一次尝试给出False错误,因为它需要同时满足两个条件;你需要or代替。如果仔细观察,一些数字(例如15)被排除在外,与同时具有3和5作为因数的数字一致。


如果因为在第二次尝试是正确的a是不整除或者3或5,则表达式计算得到False,并0 == False给出True。更惯用的写法是:


not (a%3 and a%5)


查看完整回答
反对 回复 2021-08-17
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

检查这也有效!100%


def result(N):

           for num in range(N):

          if num % 3 == 0 and num % 5 == 0:

             print(str(num) + " ", end="")

          else:

             pass

    if __name__ == "__main__":

       N = 100

    

       result(N)


查看完整回答
反对 回复 2021-08-17
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

在他所关注的层面上有一个更清晰的答案


a = 1


while a <= 100:


    if a%3 == 0 or a%5 ==0:

        a = a+1

    else:

        print(a)

        a = a+1


查看完整回答
反对 回复 2021-08-17
  • 3 回答
  • 0 关注
  • 278 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信