以r或R开头的字符串表示原始的(非转义的)字符串,表明是字符串中的字符都是普通字符,其他相对特殊的字符,其中可能包含转义字符,即那些,反斜杠加上对应的字母,表示的一些特殊含义的字符,如“\n”表示换行,“\t”表示tab(制表符)。如果加上前缀r,u"\n",就是只是表示这是2个字符(一个反斜杠和一个字母n),就没有换行的含义了,u"\t"同理。
以r开头的字符串,常用于正则表达式,正则表达式需要正确匹配出内容,所以需要原始字符串的形式。Python的正则表达式模块是re模块。
以u或U开头的字符串表示Unicode字符串
Unicode是书写国际文本的标准写法。Python2.x版本默认编码是ASCII编码,ASCII编码出现很久了(应该说很古老了),一些非英语文本字符都未被包含,所以这就导致python在处理这些非ASCII编码字符时,会报UnicodeDecodeError: 'ascii' codec can't decode...如果程序中需要使用非ASCII编码字符时,需要在字符串前加前缀u,如u"你好,世界"
python3中默认编码已经是Unicode编码,但是建议在使用非英语文本字符串时,仍然加上u前缀。
以b开头的表示是bytes字节符,将文本字符转换为字节字符。常见于文件的输入输出时,比如写入日志文件,或打开日志文件,这些一般是字节字符。
以f开头的字符串,表示字符串中{}里的内容是python解释器可以执行的表达式或变量,python去尝试去解析字符串中被{}包括的内容,和PHP会尝试去解析""(双引号)里的变量(或表达式)类似。如
index = 1
str = f'索引是{index}'
print(str)
输出将会是:“索引是1”。