#print all Prime numbers between 1 and 100
for x in range(1, 101):
for z in range(2, x):
if x % z == 0:
break
else:
print(x, end=",")
答案 0 :(得分:1)
写这个的不同方式是
for x in range(1, 101):
f = 0
for z in range(2, x):
if x % z == 0:
f = 1
break
if f == 0:
print(x, end=",")
这里f
只是在检查我们是否找到一个将x
完全除的数字。这正是else
循环情况下for
语句提供给我们的功能。
更早的else
尚未附加if
,它处于for
级别。
如果您查看手册,将会发现这确实是正确的。
for x in range(1, 101):
f = 0
for z in range(2, x):
if x % z == 0:
break
else:
# loop didn't find anything. So we are falling back to this.
print(n, 'is a prime number')
来自manual:
循环语句可以包含
else
子句;在 循环时执行 通过用尽可迭代(带有for) 或当 条件变为false(带有while),但 不会在循环为 被中断语句终止 。
答案 1 :(得分:0)
一个简单的缩进错误导致了这种情况。该代码将是:
for x in range(1, 101):
for z in range(2, x):
if x % z == 0:
break
else:
print(x, end=",")
else语句用于if块,而不是for循环。