第6章 字符串
6.1 字符串的表示方式
使用单引号或双引号括起来的内容,称为字符串类型数据(str),可以使用以下4种方式定义。
- ① 单引号(’’),其中可以包含双引号。
- ② 双引号(””),其中可以包含单引号。
- ③ 三单引号(’’’ ’’’ ),其中可以包含单引号和双引号,可以跨行。
- ④ 三双引号(””” ””” ),其中可以包含单引号和双引号,可以跨行。
ps:python中存在许多转义字符可以通过\反斜杠或r取消转义
- ① print(r“hello\n world”)
- ② print(“hello\n world”)
6.2 格式化字符串
使用字符串的format()方法,它不仅可以实现字符串的拼接,还可以格式化字符串。
想将表达式的计算结果插入字符串中,则需要用到占位符。对于占位符,使用一对大括号({})表示。
在占位符中可以有参数序号,序号从0开始。序号0被format()方法中的第1个参数替换;序号1被format()方法中的第2个参数替换,以此类推
# 默认占位符
'{}'.format(num);
# 参数序号占位符
'{0}{1}'.format(num1,num2)
# 参数名占位符
'{p1}{p2}{p3}'.format(p1=i,p2=j,p3=k)
格式化控制符
语法格式:{参数序号:格式控制符}或{参数名:格式控制符}
| 格式控制符 | 说明 |
|---|---|
| s | 字符串 |
| d | 十进制整数 |
| f、F | 十进制浮点数 |
| g、G | 十进制整数或浮点数 |
| e、E | 科学计数法表示浮点数 |
| o | 八进制整数 |
| x、X | 十六进制整数 |
当使用format方法格式化字符串的时候,需要在“{}”中首先输入“:”。
“:”称为格式引导符。“:”之后分别可以设置<填充字符> <对齐方式> <宽度>。
| 设置项 | 可选值 |
|---|---|
| <填充字符> | “*”,“=”,“-”等,但只能是一个字符,默认为空格。 |
| <对齐方式> | ^(居中), <(左对齐), >(右对齐)。 |
| <宽度> | 一个整数,指格式化后整个字符串的字符个数。 |
6.3 字符串的索引与切片
Python中字符串也提供区间访问方式,采用[头下标:尾下标]的方式,这种访问方式称为“切片”。
切片访问格式:s[头下标:尾下标:步长]
- ① 字符串s中取索引值从头下标到尾下标(不包含尾下标)的子字符串。
- ② 切片方式中,若头下标缺省,表示从开始取子串;
- ③ 若尾下标缺省,表示取到最后一个字符;
- ④ 若头下标和尾下标均缺省,则取整个字符串。
- ⑤ 当步长值大于0的时候,表示从左向右取字符;当步长值小于0的时候,表示从右向左取字符。
- ⑥ 步长的绝对值减1,表示每次所取字符间隔多少个字符。
字符串内置的字符串处理函数
| 函数 | 描述 |
|---|---|
| len(x) | 返回字符串x的长度 |
| str(x) | 将任意类型x所转换为字符串类型 |
| chr(x) | 返回Unicode编码为x的字符 |
| ord(x) | 返回字符x的Unicode编码值 |
| hex(x) | 将整数x转换为十六进制数,并返回其小写字符串形式 |
| oct(x) | 将整数x转换为八进制数,并返回其小写字符串形式 |
ps:字符串对象是不可变的,所以字符串对象提供的涉及字符串“修改”的方法都是返回修改之后的新字符串,并不对原字符串做任何修改。
| 描述 | |
|---|---|
| 字符串查找类方法 | |
| find() | 第一次出现指定字符串的位置,如果不存在则返回-1 |
| rfind() | 最后一次出现指定字符串的位置,如果不存在则返回-1 |
| index() | 第一次出现指定字符串的位置,如果不存在则报错 |
| rindex() | 最后一次出现指定字符串的位置,如果不存在则报错 |
| count() | 指定字符串出现了几次,如果不存在则返回0。 |
| 字符串分割类方法 | |
| split() | 基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。 |
| join() | 将列表中多个字符串进行连接,并在相邻两个字符串之间插入指定字符,返回新字符串。 |
| 大小写转换 | |
| lower() | 产生新的字符串,所有字符全转成小写 |
| upper() | 产生新的字符串,所有字符全转成大写 |
| capitalize() | 产生新的字符串,首字母大写 |
| title() | 产生新的字符串,每个单词都首字母大写 |
| swapcase() | 产生新的字符串,所有字母大小写转换 |
| 字符串替换 | |
| replace(old,target) | 替换字符串中指定字符或子字符串,该方法不修改原字符串,而是返回一个新字符串。 |
| 字符串排版方法 | center()、ljust()、rjust()、zfill() |
| 判断字符串类型方法 | isupper()、islower()、isdigit()、isalnum()、isalpha() |
| 删除字符串两端指定字符 | strip()、rstrip()、lstrip() |
| 指定字符串开头或结尾 | startswith()、endswith() |