gpt4 book ai didi

python - 在 Python 原始字符串的上下文中

转载 作者:太空狗 更新时间:2023-10-29 18:28:07 25 4
gpt4 key购买 nike

我的 Python 版本是:

~$ python --version  
Python 2.6.6

我尝试在 Python 中进行以下操作(我想显示所有内容):

1: \ 用作转义序列

>>> str('Let\'s Python')       
"Let's Python"

2: \ 用作转义序列

>>> 'Let\'s Python'             
"Let's Python"

3: str() 并打印为值而不是类型

>>> print 'Let\'s Python'       
Let's Python

4:它的 Python 是一个原始字符串

>>> repr('Let\'s Python')      
'"Let\'s Python"'

[问题]

5: Python 原始字符串

>>> print r'Let\'s Python'    
Let\'s Python

6:这个,我不明白以下内容:

>>> r'Let\'s Python'            
"Let\\'s Python"

>>> r'\\'
'\\\\'

为什么是 \\ ?为什么56的输出不一样?
rrepr() 相同不相同?
另外请解释一下 stringraw strings 的内部表示是相同还是不同。

最佳答案

您将原始字符串文字 r'' 与字符串表示混淆了。有一个很大的不同。 repr()r'' 不是同一件事。

r'' 原始字符串文字生成的字符串与普通字符串文字一样,但处理转义码的方式不同。产生的结果仍然是一个 python 字符串。您可以使用原始字符串文字或普通字符串文字生成相同的字符串:

>>> r'String with \n escape ignored'
'String with \\n escape ignored'
>>> 'String with \\n escape ignored'
'String with \\n escape ignored'

当不使用 r'' 原始字符串文字时,我必须将斜杠加倍以将其转义,否则它将被解释为换行符。我在使用 r'' 语法时不必转义它,因为它根本不解释诸如 \n 之类的转义码。 输出,即生成的 python 字符串 value,完全相同:

>>> r'String with \n escape ignored' == 'String with \\n escape ignored'
True

解释器正在使用 repr() 将这些值回显给我们;生成 python 值的表示:

>>> print 'String'
String
>>> print repr('String')
'String'
>>> 'String'
'String'
>>> repr('String')
"'String'"

注意 repr() 结果如何包含引号。当我们仅回显字符串的 repr() 时,结果本身 是一个字符串,因此它有两组 引号。其他 " 引号标记 repr() 结果的开始和结束,并包含在 within 中,这是 python 字符串的字符串表示字符串

所以 r'' 是一种产生 python 字符串的语法,repr() 是一种产生表示 python 值的字符串的方法. repr() 也适用于其他 python 值:

>>> print repr(1)
1
>>> repr(1)
'1'

1 整数表示为字符串'1'(字符串中的字符1)。

关于python - 在 Python 原始字符串的上下文中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13669682/

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