>> my_string 'why\\does\\it\\happen?' 为-6ren">
gpt4 book ai didi

python - 为什么反斜杠出现两次?

转载 作者:太空宇宙 更新时间:2023-11-03 21:36:51 31 4
gpt4 key购买 nike

当我创建包含反斜杠的字符串时,它们会重复:

>>> my_string = "why\does\it\happen?"
>>> my_string
'why\\does\\it\\happen?'

为什么?

最佳答案

您所看到的是由 __repr__() 创建的 my_string表示方法。如果打印它,您可以看到实际上有单个反斜杠,就像您想要的那样:

>>> print(my_string)
why\does\it\happen?

下面的字符串包含三个个字符,而不是四个:

>>> 'a\\b'
'a\\b'
>>> len('a\\b')
3

您可以使用 repr() 获取字符串(或任何其他对象)的标准表示形式内置函数:

>>> print(repr(my_string))
'why\\does\\it\\happen?'

Python 将字符串中的反斜杠表示为 \\,因为反斜杠是转义字符 - 例如,\n 表示换行符,而 \t 代表一个选项卡。

这有时会给你带来麻烦:

>>> print("this\text\is\not\what\it\seems")
this ext\is
ot\what\it\seems

因此,需要有一种方法来告诉 Python 您确实想要两个字符 \n 而不是换行符,并且可以通过转义反斜杠本身,与另一个反斜杠:

>>> print("this\\text\is\what\you\\need")
this\text\is\what\you\need

当Python返回字符串的表示形式时,它会安全地转义所有反斜杠(即使它们不会成为转义序列的一部分),这就是您所看到的。但是,字符串本身仅包含单个反斜杠。

有关 Python 字符串文字的更多信息可以在以下位置找到:String and Bytes literals在 Python 文档中。

关于python - 为什么反斜杠出现两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53194816/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com