为什么在OSXPython3.4上会出现“SyntaxError:?

2024-04-25 01:12:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚买了一个新的mackbookpro并安装了python3.4。 我运行终端并打字

python3.4

我得到了:

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

我键入:

>>> print("Hello world") 
Hello world

很好,但当我尝试做一些更复杂的事情时,我遇到了麻烦,我做到了:

>>>counter = 5
>>>
>>> while counter > 0:
...     counter -= 1
...     print()
... print("Hello World")

我得到一个错误:

  File "<stdin>", line 4
print("Hello World")
    ^
SyntaxError: invalid syntax

我猜错误出现在“print”(“Hello World”)上,但我不知道为什么,如果我希望它在循环完成后运行,我不需要缩进它。任何帮助都将不胜感激。你知道吗


Tags: build终端applehelloworldon错误counter
3条回答

因为是语法错误。你知道吗

>>> while counter > 0:
...     counter -= 1
...     print()
... print("Hello World")

这就是python控制台的工作方式—您可以看到在print('hello world')之前有三个点,这表示python仍然需要indended属于while块的代码。你知道吗

您需要双击回车键才能进入正常模式。(由>;>;发出信号)。如果以后遇到类似的问题,请尝试从文件而不仅仅是控制台运行它们。你知道吗

这是由python的交互模式的一个怪癖造成的,它专门处理换行。你知道吗

当您有一个...提示符时,它的后面必须是前面复合语句的继续,而不是新语句的开头,这在非交互模式下是可以的。再次按enter键使...提示消失。你知道吗


如果失败:

echo $'while False: pass\npass' | python -i

但这是可行的:

echo $'while False: pass\npass' | python

您可以阅读基本细节in the grammar reference。交互式输入使用single_input启动状态,非交互式输入使用file_input启动状态。你知道吗

注意到“…”提示了吗?这意味着交互式口译员知道你身处困境。在执行最终打印语句之前,必须输入一个空行来终止块。你知道吗

这是一个交互运行的工件——当你把代码输入到一个文件中时,不需要空白行。你知道吗

相关问题 更多 >