为啥这样写不对

来源:3-13 编程练习

SomnusL

2019-10-18 00:17:30

num=1
count=0
while num<=100:
   if num%3==0 or num%7==0:
       if num%3==0 and num%7==0:
           pass
       else:
           count+=1
           num += 1
   else:
       pass

print(count)

写回答

1回答

慕之熠_灿烈

2019-10-18

同学,你好。

首先,该写法错误的原因是num+=1的位置不应该放在if条件( if num%3==0 or num%7==0:)内,而应该放在与外层if···else同级的最后,如下图:

http://img.mukewang.com/climg/5da92ca909811d3209820472.jpg

这样的写的原因是:实现题目要求需要具备两个条件(1)被3或者7整除;(2)但不能同时被3和7整除。也就是说满足条件(1)、(2)才可以使得count+=1,当对循环遍历的每一个num而言,无论对条件(1)、(2)是否满足,都应该进行num+=1操作,所以应该放置在循环体的最后一句(如上图)。

如果我的回答解决了您的疑惑,请采纳!祝~学习愉快~

0

0 学习 · 8160 问题

查看课程