注意-我使用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