我试图逐步了解该程序的工作方式
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, 'equals', x, '*', n//x)
break
else:
# loop fell through without finding a factor
print(n, 'is a prime number')
for i in range(2,2):
print(i)
此代码不会打印任何内容,因此我包含的实际值是多少,是否包含垃圾值。
答案 0 :(得分:1)
range(2, 2)
是一个空序列。范围是半开的,因此range(2, 2)
的意思是“所有整数>=2
但<2
”,其中没有一个:
>>> len(range(2, 2))
0
>>> list(range(2, 2))
[]
因此,当您进行迭代时,会得到一个空的迭代器:
>>> it = iter(range(2, 2))
>>> next(it)
StopIteration:
因此,for i in range(2, 2):
循环0次,甚至没有为i
分配任何内容,更不用说print
了。
因此i
包含此for
语句之前包含的所有内容:
>>> i = 'this is a string'
>>> for i in range(2, 2): pass
>>> print(i)
this is a string
…,或者,如果不包含任何内容,则没有i
变量:
>>> del i
>>> for i in range(2, 2): pass
>>> print(i)
NameError: name 'i' is not defined
答案 1 :(得分:-1)
对于范围(2,2)中的i,结果为空列表[]
代码如下:
对于范围(2,11)中的n: 对于范围(2,n)中的x: 如果n%x == 0: 打印(n,“素数”) 打破 其他: 打印(n,不是素数)
结果: 2不是素数 3不是素数 4个素数 5不是素数 6个素数 7不是素数 8个素数 9个素数 10个素数