我可以使用分号在Python中加入行,例如
a=5; b=10
Run Code Online (Sandbox Code Playgroud)
但为什么我不能这样做
x=['a','b']; for i,j in enumerate(x): print(i,":", j)
Run Code Online (Sandbox Code Playgroud)
Bre*_*arn 17
因为Python语法不允许它.查看文档:
stmt_list ::= simple_stmt (";" simple_stmt)* [";"]
Run Code Online (Sandbox Code Playgroud)
分号只能用于分隔简单语句(不是复合语句for
).而且,实际上,即使这样,也几乎没有理由使用它们.只需使用单独的行.Python不是为了方便将大量代码插入一行而设计的.
ars*_*jii 13
简短(但有效)的答案只是"因为语言语法没有被定义为允许它".至于为什么会出现这种情况,除非你问谁想出那部分语法,否则很难确定,但我认为这是由于可读性,这是Python 1的目标之一.
你为什么要写一些像这样模糊不清的东西?只需将其分成多行:
x = ['a','b']
for i,j in enumerate(x):
print(i, ":", j)
Run Code Online (Sandbox Code Playgroud)
我认为这种变体更加清晰.
1来自import this
:可读性计数.
因为 Python 的创建者 Guido van Rossum 和其他开发人员实际上并不喜欢“分号和大括号”的代码格式样式。
要简要了解他们对这些事情的感受,请尝试:
from __future__ import braces
Run Code Online (Sandbox Code Playgroud)
Python 中的语句应该由空行分隔,Python 中的复合语句应该由缩进界定。
;
和单行复合语句(例如)的存在for i in x: print i
意味着只有非常有限的让步......并且您不能将它们组合起来。