python-3.x \的用途是什么,因为它们不影响代码的功能?[duplicate]

km0tfn4u  于 2022-12-20  发布在  Python
关注(0)|答案(2)|浏览(112)
    • 此问题在此处已有答案**:

What does a backslash by itself ('') mean in Python? [duplicate](5个答案)
18小时前关门了。
我有一个大学作业,从给定的模板创建一个零和十字/tictactoe游戏,这下面是它的一部分:

board = [['1','2','3'],\
         ['4','5','6'],\
         ['7','8','9']]

不管这些反斜杠是否存在,它都不会影响代码的功能,因为列表给出了相同的打印输出,并且以相同的方式运行,所以我只是好奇它们的用途是什么?

b5buobof

b5buobof1#

反斜杠转义下一个字符,因为下一个字符是换行符,python解析器会把换行符当作不存在一样工作,但是换行符在这里是完全无害的,所以在这里做它会分散注意力,也没有意义。
另一种情况是字符串串联

foo = "bar"\
      "baz"

如果没有反斜杠,这将是两行代码--在这种情况下会导致缩进错误。

foo = "bar"    "baz"

并且Python在编译期间将它们连接成单个字符串。

虽然字符串常量中有很多转义序列,但这是它们之外唯一允许的转义。它被称为“行继续符”(或显式行连接),因为它抑制了python lexer中正常的行终止规则。
此外,还有隐式线连接:
圆括号、方括号或大括号中的表达式可以拆分到多个物理行上,而无需使用反斜杠。
由于您的列表定义已经遵循隐式行连接规则,因此无需添加显式规则。

wvmv3b1j

wvmv3b1j2#

其目的是一致性:当平衡分隔符不可用时,它们允许您连接物理行,并且在任何地方使用它们比仅在没有其他选项时才允许使用它们要简单。

相关问题