python3.10官方文档学习记录二__字符串

本文档详细介绍了Python3.10中的字符串操作,包括不同形式的表示、字符串的转义、原始字符串的使用、三引号字符串、字符串拼接与重复、索引与切片、字符串的不可变性,以及字符串的其他相关特性。

一、字符串

1.1 字符串有多种表现形式

用单引号( ‘……’ )或双引号( “……” )标注的 结果相同 ,反斜杠 \ 用于转义。

1. >>> 'spam eggs' # ​单引号 
2. 'spam eggs' 
3. >>> 'doesn\'t' # 使用“”转义单引号
4. "doesn't" 
5. >>> "doesn't" # 改用双引号
6. "doesn't" 
7. >>> '"Yes," they said.' 
8. '"Yes," they said.' 
9. >>> "\"Yes,\" they said." 
10. '"Yes," they said.' 
11. >>> '"Isn\'t," they said.' 
12. '"Isn\'t," they said.'

1.2交互式解释器会为输出的字符串加注引号

交互式解释器会为输出的字符串加注引号,特殊字符使用反斜杠转义。虽然,有时输出的字符串看起来与输入的字符 串不一样(外加的引号可能会改变),但两个字符串是相同的。如果字符串中有单引号而没有双引号,该字符串外将 加注双引号,反之,则加注单引号。
print() 函数输出的内容更简洁易读,它会省略两边的引号,并输出转义后的 特殊字符:

1. >>> '"Isn\'t," they said.' 
2. '"Isn\'t," they said.' 
3. >>> print('"Isn\'t," they said.') 
4. "Isn't," they said. 
5. >>> s = 'First line.\nSecond line.' # \n表示换行符
6. >>> s # 如果不使用print(),\n将包含在输出中
7. 'First line.\nSecond line.'
8. >>> print(s) # 使用print(),\n生成一个新行
9. First line. 
10. Second line.

1.3 使用原始字符串

如果不希望前置 \ 的字符转义成特殊字符,可以使用 原始字符串,在引号前添加 r 即可(在写文件目录时,不想使用反斜杠,可用此方法):

1. >>> print('C:\some\name') # 此处\n表示换行符!
2. C:\some 
3. ame 
4. >>> print(r'C:\some\name') # 注意前面的r
5. C:\some\name

1.4 三引号

字符串可以实现跨行连续输入。实现方式是用三引号: “”“…”“” 或 ‘’‘…’‘’ ,字符串行尾会自动加上回车换行,如果不需要回车换行,在行尾添加 \ 即可。示例如下:

1. print("""\ 
2. Usage: thingy [OPTIONS] 
3. 	-h 		Display this usage message 
4. 	-H 		hostname Hostname to connect to
5. 	""")

输出如下(注意,第一行没有换行)

1. Usage: thingy [OPTIONS] 
2. 	-h 		Display this usage message 
3. 	-H 		hostname Hostname to connect to

1.5 字符串的 + 和 *

字符串可以用 + 合并(粘到一起),也可以用 * 重复:

1. >>> # 3 times 'un', followed by 'ium' 
2. >>> 3 * 'un' + 'ium' 
3. 'unununium'

相邻的两个或多个字符串(引号标注的字符)不用任何符号连接,也会自动合并:

1. >>> 'Py' 'thon' 
2. 'Python'

拆分长字符串时,这个功能特别实用:

1. >>> text = ('Put several strings within parentheses ' 
2. ... 		'to have them joined together.') 
3. >>> text 
4. 'Put several strings within parentheses to have them joined together.'

注意,这项功能只能用于两个显示的字符串,不能用于变量或表达式,合并多个变量,或合并变量与显示字符串,要用 + :

 >>> prefix = 'Py'
 >>> prefix + 'thon' 
 'Python'

1.6 索引(下标访问)

字符串支持索引 (下标访问),第一个字符的索引是 0。
单字符没有专用的类型,就是长度为一的字符串:

1. >>> word = 'Python' 
2. >>> word[0] 	# 位置0中的字符
3. 'P' 
4. >>> word[5] 	# 位置5中的字符
5. 'n'

索引还支持负数,用负数索引时,从右边开始计数(注意,-0 和 0 一样,因此,负数索引从 -1 开始。):

1. >>> word[-1] # 最后一个字符
2. 'n' 
3. >>> word[-2] # 倒数第二个字符 
4. 'o' 
5. >>> word[-6] 
6. 'P'

切片索引的默认值,省略开始索引时,默认值为 0,省略结束索引时,默认为到字符串的结尾:

1. >>> word[:2]	 	# 从开头到位置2的字符(不包括2)
2. 'Py' 
3. >>> word[4:] 	# 从位置4(包括)到结尾的字符
4. 'on' 
5. >>> word[-2:] 	# 从倒数第二个(包括)到结尾的字符 
6. 'on'

注意,输出结果包含切片开始,但不包含切片结束。因此, s[:i] + s[i:] 总是等于 s :

1. >>> word[:2] + word[2:] 
2. 'Python' 
3. >>> word[:4] + word[4:] 
4. 'Python'

对于使用非负索引的切片,如果两个索引都不越界,切片长度就是起止索引之差。例如, word[1:3] 的长度是
索引越界会报错:

1. >>> word[42]  #这个变量中的字符串是python,只有6位长度 
2. Traceback (most recent call last): 
3. File "<stdin>", line 1, in <module> 
4. IndexError: string index out of range

但是,切片会自动处理越界索引:

1. >>> word[4:42] 
2. 'on' 
3. >>> word[42:] 
4. ''

1.7 字符串不可修改

Python 字符串不能修改,是 immutable 的。因此,为字符串中某个索引位置赋值会报错,要生成不同的字符串,应新建一个字符串:

1. >>> 'J' + word[1:] 
2. 'Jython' 
3. >>> word[:2] + 'py' 
4. 'Pypy'

内置函数 len() 返回字符串的长度:

1. >>> s = 'supercalifragilisticexpialidocious' 
2. >>> len(s) 
3. 34

1.8 其它

字符串是序列类型 ,支持序列类型的各种操作。
具体见文本序列类型 —- str

字符串的方法
字符串支持很多变形与查找方法。

格式字符串语法
详见使用 str.format() 格式化字符串。
printf 风格的字符串格式化
详见用 % 运算符格式化字符串的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值