我是python的初学者。我对这个基本的python程序及其输出感到困惑
for num in range(2,10):
for i in range(2,num):
if (num % i) == 0:
break
else:
print(num)
输出
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:38:48) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
================= RESTART: C:\Users\ms\Desktop\python\new.py =================
2
3
5
7
>>>
根据条件
if (2 %2) == 0:
break
然后2如何打印到输出显示
感谢您的帮助..
答案 0 :(得分:0)
你的缩进似乎是错误的。尝试使用不同缩进的相同代码:
for num in range(2,10):
for i in range(2,num):
if (num % i) == 0:
break
else:
print(num)
在原始代码中,else
与第二个for
循环对齐,而不与if
对齐。
答案 1 :(得分:0)
当if
为2时,内部循环中的num
语句不会在第一次迭代时执行,因为range(2, 2)
将返回空序列。这自然导致内部循环完成,从而执行else
语句。
Python tutorial对循环中的else
有以下解释:
循环语句可能有一个else子句;当循环通过列表耗尽(with for)或条件变为false(with while)时终止,但是当循环被break语句终止时,它被执行。这通过以下循环来举例说明,该循环搜索素数