首页 > 开发 > Python > 正文

Python中的原生字符串:r字符的作用

2023-04-26 12:04:40
字体:
来源:转载
供稿:网友

Python中的转义字符可以帮助我们在字符串处理中提供特殊的需求,如换行、使用制表键、使用特殊符号等。但有时,我们需要把字符串的内容原样输出来,这时就需要特殊的处理方式了。

在Python字符串前使用字符 'r'‘R’ 可以实现这个需求,如:

str = r'Python/nJava'

像这种在字符串前端使用了 'r''R' 的字符串叫原生字符串。

原生字符串中的每个字符都表示它本身的含义

如果读者对于Python中的转义字符不是很了解的话,可以看一下本站中的《Python中的转义字符》这篇文章。

Python中的原生字符串

下面使用几个例子来说明一下具体使用方法:

>>> s1="Python/nJava"  # 不使用原生字符串
>>> print(s1)
Python
Java

>>> s1  #直接输出,不使用print()函数
'Python/nJava'
>>> s2 = r"Python/Java"
>>> print(s2# 使用print()函数输出
Python/nJava
>>> s2  # 不使用print()函数直接输出
'Python//nJava'
>>> s3 = R'I Love Python.'  # 没有使用转义字符的字符串
>>> print(s3)
I Love Python

从上面的例子可以看出,在没有使用 'r''R' 的字符串使用print()函数输出时,其会按照转义字符的转义进行输出,如果使用了 'r''R' ,则处于引号中的内容就会原样被输出。

在上面的例子中,我们也注意到在 Python 控制台中直接使用变量进行输出原生字符串时,Python 给 '/' 又添加了一个'/',实际上表示对 '/'的一个转义,告诉用户,这里有一个 '/',而不是换行符'/n'。

在实际使用原生字符串时,我们要注意合理处理字符串中的内容,否则可能与你想表达的含义不同,如下面的例子:

>>> str1 = "Python /ada"  # 不使用原生字符串会输出与我们预期不同的内容
>>> print(str1)
Python da
>>> str1 = r"Python /ada" # 使用后,输出结果达到预期
>>> print(str1)
Python /ada
>>> str1 = 'y/x'  #出报错
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 1-2: truncated /xXX escape
>>> str1 = r'y/x' #没有问题
>>> str2 = '/' # 字符串就是个 / ,但报错
SyntaxError: EOL while scanning string literal
>>> str2 = r'/' # 没有问题
>>> str3 = '//' # 想输出两个/,然不是
>>> print(str3)
/
>>> str3 = r'//'  # 这样才能达到预期
>>> print(str3)
//

本文(完)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表