Python 为什么嵌套for循环打印其第一个值而不考虑条件
我擅长python。我对这个基本的python程序及其输出感到有点困惑Python 为什么嵌套for循环打印其第一个值而不考虑条件,python,Python,我擅长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
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如何打印到输出显示器上
感谢您的帮助。您的缩进似乎有误。尝试使用不同缩进的相同代码:
for num in range(2,10):
for i in range(2,num):
if (num % i) == 0:
break
else:
print(num)
在原始代码中,
else
与第二个for
循环对齐,而不是与内部循环中的if对齐,因为num
为2时,内部循环中的if
语句不会在第一次迭代中执行,因为范围(2,2)
将返回空序列。这自然会导致内部循环完成,从而执行下面的else
语句
对循环中的else
有以下说明:
循环语句可能有一个else子句;当循环通过耗尽列表(使用for)或当条件变为false(使用while)而终止时执行,但当循环通过break语句终止时不执行。下面的循环就是一个例子,它搜索素数
因为2,3,5,7是素数。你能修正你的缩进以精确匹配你的实际代码吗?现在还不清楚那还属于什么。