纸上得来终觉浅,绝知此事要躬行!
目录
单双引号字符串
在python字符串中,单双引号字符是可以互换的。因此,可以在一个双引号字符所包含的字符串中嵌入一个单引号字符,反之亦然。
python自动在任意的表达式中合并相邻的字符串常量,等效于“+”操作符。
用转义序列代表特殊字节
转义序列让我们能够在字符型中嵌入不容易通过键盘输入的字符。字符“\"以及后边的一个或多个字符,在最终字符串中会被一个单个字符所替代,这个字符通过转义序列定义了一个二进制值。
转义 | 意义 | 转义 | 意义 |
\newlie | 忽视(连续) | \\ | 反斜杠(\) |
\' | 单引号(') | \" | 双引号(") |
\a | 响铃 | \b | 倒退 |
\f | 换页 | \n | 换行 |
\r | 返回 | \t | 水平制表符 |
\v | 垂直制表符 | \N{id} | Unicode数据库Id |
\uhhh | Unicode16位十六进制值 | \uhhhhhhhh | Unicode32位十六进制值 |
\xhh | 十六进制值 | \ooo | 八进制值 |
\0 | Null | \other | 不转义 |
raw字符串抑制转义
如果字母r出现在字符串的第一个引号前面,表示关闭转义机制,python会将反斜杠作为常量来保持。(注意python脚本会自动在windows和UNIX的路径中使用斜杠表示字符串路径。)
三重引号编写多行字符串快
一种对编写多行文本数据来说很便捷的语法:以三重引号(单双皆可)开始,紧跟任意行数的文本,并以开始时同样的三重引号结尾。
sanchong="""xiaoming
isn't my name,
is my nicknam。"" """
print(sanchong)
sanchong
'''
xiaoming
isn't my name,
is my nickname。""
'xiaoming\nisn\'t my name,\n\nis my nickname。"" '
'''
三重引号字符串常用于文档字符串,当他出现在文件的特定地点时,被当作注释一样的字符串常量。用来调试python脚本也很便捷有效。
字符串应用
索引S[i]获取特定偏移的元素。第一个元素的偏移为0;负偏移索引表示从右计数,S[-i]=S[len(s)-i]。
分片S[i:j]提取对应的部分作为一个序列。上边界并不包含在内;默认i=0,j=len(S);
扩展分片S[i:j:k]k作为步进对分片应用进行扩展,k默认值为1.k为负数时要求i>j,否则得到空字符串" ",特别地,k=-1时可以实现字符串反转。
"咪喵是的念来过倒"[::-1]
# '倒过来念的是喵咪'
字符串转换工具
int函数将字符串转换为数字,float函数将字符串转换为浮点数,而str则可以将整数、浮点数转换为字符串。
ord函数将单个字符转换其对应的ASCII码,返回该字符在内存中对应的二进制值,chr函数执行相反的操作。
字符串方法实例
修改字符串
字符串具有不可变性,修改字符串是通过建立新字符串来实现的。replace方法可以实现字符串中一个子字符串的替代,这里执行的是”全部替换“操作,如果是针对具体位置的替换,可以结合find方法搜索使用。
"PythonPython".replace("P","p")
# 'pythonpython'
"PythonPython".replace("p","p")
# 'PythonPython' 第一个参数中的子字符串在原字符串中为发现,不做任何修改
replace每次返回一个新的字符串对象。实际上利用合并操作和replace去修改字符串具有潜在的缺陷,更好的办法是将字符串转换为列表,支持原处修改,然后再将列表变回字符串。
L=list("Python")
L[2:4]=["T","H"]
"".join(L)
# 'PyTHon'
文本解析
split方法将一个字符串分割为一个子字符串列表,以分隔符字符串为标准。分隔符默认值为空格。
str="P_y_th_on"
str.split("_")
# ['P', 'y', 'th', 'on']
清楚每行末尾的空白rstrip
大小写转换upper/lower
检测内容
格式化表达式
代码 | 意义 | 代码 | 意义 | 代码 | 意义 | 代码 | 意义 |
s | 字符串(或任何对象) | r | s,使用repr | c | 字符 | d | 十进制整数 |
i | 整数 | u | 无号整数 | o | 八进制整数 | x | 十六进制整数 |
X | x,大写打印 | e | 浮点指数 | E | e,大写打印 | f、F | 浮点十进制 |
g | 浮点e或f | G | 浮点E或F | % | 常量% |