Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';在Python中,在for循环之前是否使用分号?_Python - Fatal编程技术网

为什么可以';在Python中,在for循环之前是否使用分号?

为什么可以';在Python中,在for循环之前是否使用分号?,python,Python,我可以使用分号连接Python中的行,例如 a=5; b=10 但是为什么我不能为你做同样的事情呢 x=['a','b']; for i,j in enumerate(x): print(i,":", j) 简短(但有效)的答案只是“因为语言的定义不允许它”。至于为什么会出现这种情况,除非你问是谁提出了这部分语法,否则很难确定,但我想这是因为可读性,这是Python1的目标之一 你为什么要写这样晦涩难懂的东西?只需将其拆分为多行: x = ['a','b'] for i,j in enume

我可以使用分号连接Python中的行,例如

a=5; b=10
但是为什么我不能为你做同样的事情呢

x=['a','b']; for i,j in enumerate(x): print(i,":", j)
简短(但有效)的答案只是“因为语言的定义不允许它”。至于为什么会出现这种情况,除非你问是谁提出了这部分语法,否则很难确定,但我想这是因为可读性,这是Python1的目标之一

你为什么要写这样晦涩难懂的东西?只需将其拆分为多行:

x = ['a','b']
for i,j in enumerate(x):
    print(i, ":", j)
我认为这种变体更为清晰



1从
导入此
:可读性很重要。

因为Python语法不允许它。见:


分号只能用于分隔简单语句(而不是像
for
这样的复合语句)。而且,真的,几乎没有理由使用它们,即使是为了这个。只需使用单独的行。Python的设计目的不是为了方便将大量代码塞进一行。

因为Python的创建者Guido van Rossum和其他开发人员实际上并不喜欢“分号和大括号”样式的代码格式

要简单了解他们对这些事情的感受,请尝试:

from __future__ import braces
Python中的语句应该由空行分隔,Python中的复合语句应该由缩进限定


的存在
和单行复合语句(例如,x中i的:print i)仅表示非常有限的。。。您不能将它们组合在一起。

Python语法不允许这样做。这是一个很好的答案,但原因是什么


我认为决策背后的逻辑如下:for循环的主体必须缩进才能被识别。因此,如果我们不允许出现一个简单的缩进,它将需要一个复杂且容易破坏的缩进

复合语句由一个或多个“子句”组成。子句由头和“套件”组成。特定复合语句的子句头都处于相同的缩进级别。每个子句头以唯一标识的关键字开头,以冒号结尾。套件是由子句控制的一组语句。套件可以是一个或多个分号分隔的简单语句,位于标题的冒号之后,与标题位于同一行,也可以是后续行上的一个或多个缩进语句

x=['a','b'];

这不能证明子句定义的正确性,因此不能用作复合语句的一部分。因此您会遇到错误。

谢谢,我正在为学生写一些笔记,篇幅很短,所以决定加入他们,正如我刚才提到的;无论如何,同时:)谢谢,这让我笑了,说得很好。我认为这可能是这个特定限制的最佳理由(不仅仅是说“GvR讨厌分号和大括号”),一个用例是在命令行中使用:
python-c'导入一些东西;对于…“
x=['a','b'];