def generate_coor(dimension_x,dimension_y):
x,y=int(dimension_x/2),int(dimension_y/2)
for i in range(0, x + 1):
print(x)
x=x+1
generate_coor(100,27)
上面的代码确实终止了。
def generate_coor(dimension_x,dimension_y):
x,y=int(dimension_x/2),int(dimension_y/2)
for i in range(0, x + 1):
for j in range(0, y + 1):
print(y)
y=y+1
generate_coor(100,27)
上面的代码不会终止
def generate_coor(dimension_x,dimension_y):
x,y=int(dimension_x/2),int(dimension_y/2)
for i in range(0, y):
for j in range(0, y + 1):
print(y)
y=y+1
上面的代码确实终止了
这三个例子有什么区别?根据代码,x或y的每次迭代应该增加1,因此循环不应该终止,但有些终止,有些不终止?
所有循环都将终止,但终止的时间取决于您作为参数输入输入的值。
第二个示例中发生了什么:
def generate_coor(dimension_x,dimension_y):
x,y=int(dimension_x/2),int(dimension_y/2)
for i in range(0, x + 1):
for j in range(0, y + 1):
print(y)
y=y+1
是您的嵌套循环
for j in range(0, y + 1)
在第一个循环for i in range(0, x + 1)
的每次迭代中重复自身。
在您的情况下,这特别耗时,因为执行该函数所需的 CPU 时间将与您的两个整数输入成指数关系。如果您采用较低的值,例如generate_coor(100,27)
,你会看到该函数退出。