代码之家  ›  专栏  ›  技术社区  ›  Matthew Hui

为什么在空闲时try/except/finally块之后的代码出现语法错误?

  •  0
  • Matthew Hui  · 技术社区  · 6 年前

    我是Python新手,现在正在学习使用这个应用程序 SoloLearn

    在应用程序代码操场上,我可以毫无问题地运行这些代码: enter image description here

    但是当我在IDLE中运行相同的代码时,我会得到一个SyntaxError: enter image description here

    有人知道为什么吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Terry Jan Reedy    6 年前

    这与IDLE无关,正如其他人所说,IDLE是交互式Python的正常行为,它一次执行一条语句。

    >>> try:
    ...   print(10/0)
    ... except:
    ...   print(5)
    ... finally:
    ...   print(6)
    ... print(7)
      File "<stdin>", line 7
        print(7)
            ^
    SyntaxError: invalid syntax
    

    如果将相同的代码放在一个文件中,并在“批处理”模式下运行相同的文件,则无论是从命令行运行该文件,还是使用IDLE运行该文件,或使用将在文件或编辑器缓冲区中运行代码的任何其他编辑器或IDE运行该文件,都应该可以正常工作。

    由于代码操场有一个运行按钮,我强烈怀疑它向您展示的是一个编辑器窗口,类似于IDLE及其运行模块F5菜单/快捷方式选项,而不是一个交互式shell。