为什么打印for循环(整数)输出会产生语法错误,除非包含在函数中?

Fel*_*lix 3 python python-3.x

新手python 3程序员试图让人口增长模型发挥作用.我遇到的问题在下面是风格化的.

在解释模式下,以下代码在其打印的行上生成"无效语法"错误:

n = 1
for i in range(10):
    n += 1
print(n)
Run Code Online (Sandbox Code Playgroud)

奇怪的是,将它包装在一个函数中会产生预期的输出(11):

def function():
    n = 1
    for i in range(10):
        n += 1
    print(n)

function()
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

小智 5

你需要在for循环之后添加一个空行,让它知道语句已经完成(这只是最外层,只有在解释器中才需要).当解释器显示...而不是>>>,这意味着它正在等待该语句的更多输入(在这种情况下,整个for循环),并且因为它只在完全读入后执行语句,所以你需要明确告诉它声明完成后.