-1 python python-3.x
我试图一步一步地了解这个程序是如何工作的
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)
Run Code Online (Sandbox Code Playgroud)
这段代码不打印任何内容,那么我包含的实际值是什么,它是否包含垃圾值。
range(2, 2)是一个空序列。范围是半开的,因此range(2, 2)意味着“>=2除<2,其中没有:
>>> len(range(2, 2))\n0\n>>> list(range(2, 2))\n[]\nRun Code Online (Sandbox Code Playgroud)\n\n因此,当您迭代它时,您会得到一个空迭代器:
\n\n>>> it = iter(range(2, 2))\n>>> next(it)\nStopIteration:\nRun Code Online (Sandbox Code Playgroud)\n\n因此,for i in range(2, 2):循环 0 次,甚至从未将任何内容分配给i,更不用说print对其进行赋值了。
因此i包含在此之前发生的任何内容for:
>>> i = \'this is a string\'\n>>> for i in range(2, 2): pass\n>>> print(i)\nthis is a string\nRun Code Online (Sandbox Code Playgroud)\n\n\xe2\x80\xa6 或者,如果它不包含任何内容,则没有i变量:
>>> del i\n>>> for i in range(2, 2): pass\n>>> print(i)\nNameError: name \'i\' is not defined\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
8633 次 |
| 最近记录: |