当我切换两个不同函数的位置时,结果不同



注意-我使用VSCode

示例1:在这个例子中,我的函数nextSquare()被执行,但aFunc()没有被执行,因为我没有得到我的第二个函数

的输出
def nextSquare():
i = 1
while True:
yield i*i
i += 1
for num in nextSquare():
if num<100:
print(num)
def aFunc():
print("This is inside our function")
print("This is outside of our funcion as a seperate entity")
aFunc()

输出:

Code/RoughWork.py
1
4
9
16
25
36
49
64
81

示例2:在这个例子中,我的函数nextSquare()被执行,但是aFunc()给了我输出,我所做的只是将aFunc()移到nextSquare()之前

def aFunc():
print("This is inside our function")
print("This is outside of our funcion as a seperate entity")
aFunc()
def nextSquare():
i = 1
while True:
yield i*i
i += 1
for num in nextSquare():
if num<100:
print(num)

输出:

Code/RoughWork.py
This is outside of our funcion as a seperate entity
This is inside our function
1
4
9
16
25
36
49
64
81

所以当我使用示例1:在上面的代码块中,我期望这两个函数都会被执行,但它们没有,而是通过重新排列函数的位置,我得到了一个输出,所以为什么在这种情况下存在的位置在重要的事情之前存在,当我在jupyter笔记本中尝试相同的时候,单元格根本不运行样本2。

for循环永远不会结束,所以在执行之后什么都没有。当num大于100时,它停止打印,但继续循环。你需要停止循环。

for num in nextSquare():
if num<100:
print(num)
else:
break

相关内容

  • 没有找到相关文章

最新更新