Gri*_*han 10 python string rawstring
我的Python版本是:
~$ python --version
Python 2.6.6
Run Code Online (Sandbox Code Playgroud)
我尝试在Python中使用(我想要显示所有内容):
1: \用作转义序列
>>> str('Let\'s Python')
"Let's Python"
Run Code Online (Sandbox Code Playgroud)
2: \用作转义序列
>>> 'Let\'s Python'
"Let's Python"
Run Code Online (Sandbox Code Playgroud)
3:str()打印为值而不是类型
>>> print 'Let\'s Python'
Let's Python
Run Code Online (Sandbox Code Playgroud)
4:它的Python是一个原始字符串
>>> repr('Let\'s Python')
'"Let\'s Python"'
Run Code Online (Sandbox Code Playgroud)
[ 问题 ]
5:Python原始字符串
>>> print r'Let\'s Python'
Let\'s Python
Run Code Online (Sandbox Code Playgroud)
6:这个,我不明白以下几点:
>>> r'Let\'s Python'
"Let\\'s Python"
>>> r'\\'
'\\\\'
Run Code Online (Sandbox Code Playgroud)
为什么\\?为什么输出5和6不同?
r 并且repr()一样不一样?
另请说明内部表示,string 并且raw strings相同或不同.
Mar*_*ers 13
您将原始字符串文字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'
Run Code Online (Sandbox Code Playgroud)
当不使用r''原始字符串文字时,我不得不将斜杠加倍以转义它,否则它将被解释为换行符.在使用r''语法时我没有必要逃避它,因为它根本不解释转义代码\n.的输出,所得到的Python字符串值,是完全一样的:
>>> r'String with \n escape ignored' == 'String with \\n escape ignored'
True
Run Code Online (Sandbox Code Playgroud)
口译员正在用repr()这些价值回馈给我们; 生成python值的表示形式:
>>> print 'String'
String
>>> print repr('String')
'String'
>>> 'String'
'String'
>>> repr('String')
"'String'"
Run Code Online (Sandbox Code Playgroud)
注意repr()结果如何包含引号.当我们呼应只是repr()一个字符串,结果是自己一个字符串,所以它有2套引号.其他"引号标注的结果的开始和结束repr(),并包含内是蟒蛇串的字符串表示String.
生成 python字符串r''的语法也是如此,是一种生成表示python值的字符串的方法.也适用于其他python值:repr()repr()
>>> print repr(1)
1
>>> repr(1)
'1'
Run Code Online (Sandbox Code Playgroud)
该1整数被表示为一个字符串'1'(字符1在字符串).