Python源代码文件中空行的含义

Python源代码文件中空行的含义,python,Python,如果我将从所有源文件中删除所有空行,Python程序是否具有完全相同的含义,例如,而不是: def foo(): x = 1 if True: bar() 我会: def foo(): x = 1 if True: bar() Everywhere在这里的意思是无处不在。类内定义、导入后语句等 请不要评论风格和美学。这是另一个话题。将代码直接输入解释器也是如此。这个问题是关于源代码文件的 类似的问题是关于添加空行。我可以在任意

如果我将从所有源文件中删除所有空行,Python程序是否具有完全相同的含义,例如,而不是:

def foo():
    x = 1

    if True:
        bar()
我会:

def foo():
    x = 1
    if True:
        bar()
Everywhere在这里的意思是无处不在。类内定义、导入后语句等

请不要评论风格和美学。这是另一个话题。将代码直接输入解释器也是如此。这个问题是关于源代码文件的

类似的问题是关于添加空行。我可以在任意两行代码之间添加它们而不改变语义吗


不幸的是,这里的文档不是很明确。

那就好了。Python对制表符很挑剔,但并不关心代码中是否包含空行

除了在多行字符串中,它在脚本中不会有任何区别。但是,当您将代码直接输入解释器时,解释器会使用空行来检测代码块的结束(
用于
循环、函数定义等),因此可能会出现错误

如果我在两个空行之后的第三行中声明一个无效编码,它将正常运行:



# -*- coding: foobar -*-
如果删除一行或两行空行,则会发生以下情况:

SyntaxError: encoding problem: foobar with BOM
这是因为Python只在前两行中查找编码。当然,它不一定是无效的编码。除默认编码外,有效编码也会有所不同,因为文件的解码方式也会有所不同。同样,这取决于它是否在前两行中,所以空行可能会产生不同


请参阅该页的其他部分,包括。

我想不出两行之间的空行对个人有什么影响。@Loocid在多行字符串中。@HeapOverflow啊,是的,这绝对是一个!文字字符串在所有其他语言中也有不同的规则。这个问题是关于核心语法的。@Web实习生,嗯?谢谢。请随意删除您的评论。之后我会删除我的。