解决Python 出现File “<stdin>“, line 1非语法错误的问题

  • Post category:Python

当在命令行或 Python 解释器中输入多行代码时,我们可能会遇到 File "<stdin>", line 1 错误,这是因为 Python 解释器认为当前代码块没有完全执行(例如函数或循环),从而提示用户输入更多代码。

以下是解决 Python 出现 File ““, line 1 非语法错误问题的完整攻略:

1. 检查语法和缩进错误

错误的代码缩进可能会导致Python在解释时抛出此错误。在使用交互式解释器时,缩进更容易引起错误。检查代码中的缩进是否正确,并检查所有的语法错误。

2. 使用Ctrl + D或exit()

当Python解释器提示您为继续输入代码时,您可以使用特殊密钥Ctrl + D(在Windows上是Ctrl + Z)终止解释器并退出交互式模式,或者在退出Python交互式模式时直接输入”exit()”,如以下示例:

>>> print("Hello World!")
Hello World!
>>> exit()

示例说明

假设我们在Python交互解释器中输入以下代码,但是我们没有完成函数并且没有终止解释器:

>>> def hello_world():
...     print("Hello World!")
...

此时我们会得到以下的错误提示 File "<stdin>", line 3,因为Python解释器认为函数定义没有完成。 我们可以按下Ctrl + D或输入”exit()”终止交互式解释器。

下面是另一个示例:

>>> my_list = [1, 2, 3,
...            4, 5, 6,
...            7, 8, 9]

在输入完最后一行代码后,如果我们没有按下回车键再按下一次Ctrl + D或输入”exit()”来退出解释器,Python解释器将会抛出类似以下的错误:

File "<stdin>", line 4
    7, 8, 9]
           ^
SyntaxError: unexpected EOF while parsing

这是因为Python解释器认为当前代码块还没有完成,因为缩进没有结尾,所以它提示用户继续输入代码。要解决这个问题,我们可以按下回车键让Python解释器知道我们已经完成输入,并用Ctrl + D或输入”exit()”退出交互式解释器。