Python Shell和IDLE之间的结果不同

时间:2018-11-30 03:41:28

标签: python python-3.x interpreter python-idle

下面的代码显示1到1000的5的倍数之和

s = 0
for i in range(1, 1001):
    if i % 5 == 0: s += i
print(s)

如果我在IDLE中运行此代码,结果为100500,但是在外壳程序中出现错误 SyntaxError:无效的语法,出现在print。为什么IDLE和Shell给出不同的结果?我的Python版本是3.7。

1 个答案:

答案 0 :(得分:5)

在Python shell(规范名称:REPL)中,您应该以空行终止缩进的块,因此应在REPL中运行它:

s = 0
for i in range(1, 1001):
    if i % 5 == 0: s += i

print(s)

请注意print之前的空行,这在REPL中是必需的,但是从文件(或IDLE)中运行代码时则不需要。