python-原始字符串概念

85 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第10天,点击查看活动详情


大家好,我是芒果,一名非科班的在校大学生。对C/C++、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流

作者简介:



原始字符串(raw strings)

有的时候, 我们需要有 \n 这样的字符作为转义字符 . 但是有些时候我们又不希望进行转义, 只需要原始的 \n 作为字符串的一部分.

原始字符串中, 转义字符不生效

例子:QQ发消息时, 有一个 "表情快捷键" 的功能. 这个功能就相当于 "转义字符".

当开启了这个功能之后, 在输入框中输入 /se 就会被替换成一个表情. 比如我给同事发一个目录 /search/odin (这本来是表示linux上的一个目录)

image-20220318092315185


这种情况下, 我们需要关闭 "表情快捷键" 功能. 对于Python来说, 我们就可以使用原始字符串来解决这个问题.


  • 在字符串字面值前加上 r或者R 前缀, 表示原始字符串
print(r'hello \n world')    #hello \n world

repr函数和反引号操作符

  • 用str函数可以将一些对象转换成字符串. repr也有类似的效果.
a = 1
print(type(repr(a)))    #<class 'str'> 字符串类型print(str('hello'))     # hello
print(repr('hello'))    # 'hello'

总结一下, str转换出的字符串是给人看的. 而repr转换出的字符串, 是给Python解释器看的.

  • 意思是说, repr得出的结果, 其实是一个Python语句, 可以直接放到解释器里执行~

  • 反引号, 和repr函数等价

注意:字符串实际上是不可变的对象. 你不能修改这个字符串, 只能创建一个新的字符串. Python中单引号(')字符串和双引号(")字符串是等价的