1. 简介
Python 字符串类型用于存储字符串变量,字符串一般使用单引号 ‘
或者双引号 “
来表示。如:
s1 = 'hello, world'
s2 = "hello, world"
s3 = '''hello, world'''
s4 = """hello, world"""
print(s1) # 4种方式等效, 多行字符串会用到三引号的情况
print(s2)
print(s3)
print(s4)
- 注意, 单引号字符串中只能使用双引号作为引号, 而不能使用单引号, 否则python会将第二个单引号当成字符串的结束, 从而报错, 反之亦然。
- 如果一定要用, 则需使用转义字符
\
2. 字符串变量的运算
符号 | 作用 | 举例 |
+ | 字符串拼接 |
|
+= | 复合赋值, y += “a” 相当于 y = y + “a” |
|
* | 生成重复的字符串 |
|
*= | 复合赋值, y*=2 相当于y = y * 2 |
|
3. 字符串变量的比较
字符串比较, 比较的是ASCII码
简单举例如下:
In [12]: "A" == 'A'
Out[12]: True
In [13]: 'A' < 'B'
Out[13]: True
In [14]: "ABC" > "ABB" # 从左往右,分别比较,直到第一个不相同的,完成比较
Out[14]: True
In [16]: "ADC" < "ABC"
Out[16]: False
In [17]: "AD" > "ABC"
Out[17]: True
In [19]: "AB" > "ABC" # 空值的ASCII码最小
Out[19]: False
In [20]: "ABCD" != "DCBA"
Out[20]: True
4. 字符串的索引和切片
- 索引
- 定义: 简单地说就是对字符串的单个元素进行取值。
- 语法: 字符串[整数表达式]
- 说明:
- Python序列都可以用索引(Index)来访问序列中的对象
- Python序列正向的索引从0开始,第二个索引为1,最后一个索引为len(s)-1
- 索引从-1开始,-1代表最后一个,-2代表倒数第二个,以此类推,第一个是-len(s)
- 举例
In [25]: s = "So beatiful a girl."
In [26]: s[0]
Out[26]: 'S'
In [27]: s[-1]
Out[27]: '.'
- 切片
- 定义: 简单地说就是对字符串的多个元素进行取值。
- 语法:
字符串[(开始索引b):(结束索引e)(:(步长s))][整数表达式]
注意: 小括号内的可以省略 - 说明:
- 开始索引是切片开始切下的位置,0代表第一个元素,-1代表最后一个元素
- 结束索引是切片的终止索引(但不包含终止索引)
- 步长是切片每次获取完当前索引后移动的方向(±)和偏移量(数值)
1)没有步长,相当于取值完成后向后移动一个索引的位置(默认为1)
2)当步长为正整数时,取正向切片:
步长默认值为1,开始索引默认值为0,结束索引的默认值为len(s)
3)当步长为负整数时,取反向切片:
反向切片时,默认的起始位置为最后一个元素,默认终止位置为第一个元素的前一个位置
- 举例
In [31]: s
Out[31]: 'So beatiful a girl.'
In [32]: s[:]
Out[32]: 'So beatiful a girl.'
In [33]: s[:2]
Out[33]: 'So'
In [34]: s[-2:-4]
Out[34]: ''
In [35]: s[-2:-4:-1]
Out[35]: 'lr'
In [36]: s[-5:-1]
Out[36]: 'girl'
In [37]: s[-1:-5]
Out[37]: ''
In [38]: s[-1:-5:-1]
Out[38]: '.lri'
In [39]: s[-2:-6:-1]
Out[39]: 'lrig'
5. 与字符串相关的一些方法
方法 | 功能 |
len(s) | 返回序列的长度 |
max(s) | 返回序列的最大值元素, 字符串比较ASCII码 |
min(s) | 返回序列的最小值元素 |
str(x ) | 字符串的创建函数, 将对象 x 转换为字符串 |
repr(x ) | 将对象 x 转换为表达式字符串 |
eval(str ) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
chr(x ) | 将一个整数转换为一个字符 |
unichr(x ) | 将一个整数转换为Unicode字符 |
ord(x ) | 将一个字符转换为它的整数值 |
hex(x ) | 将一个整数转换为一个十六进制字符串 |
oct(x ) | 将一个整数转换为一个八进制字符串 |
6. 字符串常用方法
查看方法:
In [50]: s = "hello"
In [51]: dir(s)
常用方法 | 用途 |
S.split(sep=None, maxsplit=-1) | 用于字符串分割 |
S.strip([chars]) | 去掉字符串两边空格 |
S.join(iterable) | 组合序列中的字符串 |
S.lower() | 字符串转为小写字母 |
S.index(sub[, start[, end]]) | 查找字符的索引 |
S.replace(old, new[, count]) | 替换字符串中的元素 |