如何解决为什么该程序打印12?
for num in range(10,14):
for i in range(2,num):
if num%i == 1:
print(num)
break
该程序的输出为: 10 11 12 13
我对输出为何包含12感到困惑?因为当num = 12时,内部循环中i的值均不满足if条件。那么输出不应该排除12吗?你能解释为什么会这样吗?
解决方法
让我们简单地调试一下,您具有以下值:
num i num%i output
10 2 0 => do nothing <nothing>
10 3 1 => print(num) 10
11 2 1 => print(num) 11
12 2 0 => do nothing <nothing>
12 3 0 => do nothing <nothing>
12 4 0 => do nothing <nothing>
12 5 2 => do nothing <nothing>
12 6 0 => do nothing <nothing>
12 7 5 => do nothing <nothing>
12 8 4 => do nothing <nothing>
12 9 3 => do nothing <nothing>
12 10 2 => do nothing <nothing>
12 11 1 => print(num) 12
13 2 1 => print(num) 13
您现在了解逻辑了吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。