2 基本操作
2.1 访问
访问单个字符
s = 'Python'# 访问第一个字符 Pprint(s[0])
访问范围内字符
s = 'Python'# 访问 ytprint(s[1:3])# 访问 Pytprint(s[:3])# 访问 honprint(s[3:])
2.2 单个字符编码
Python 使用了 ord()
函数返回单个字符的编码,chr()
函数把编码转成相应字符。如下所示:
s = 'A'print(ord(s))print(chr(65))
输出结果:
65A
3 转义符
之前我们说过可以通过反斜杠 \
将一行语句分多行显示,其实就是 \
来转义字符,一些常见的转义字符如下表所示:
转义字符 | 描述 |
---|---|
\ |
在行尾使用时,用作续行符 |
\b | 退格(Backspace) |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
4 运算符
之前我们已经介绍了大部分运算符,下面再来详细看一下字符串运算符。如下表所示:
运算符 | 描述 |
---|---|
+ | 连接符 |
* | 重复输出 |
[] | 通过索引获取字符串中字符 |
[ : ] | 获取字符串中的一部分 |
in | 字符串中是否包含指定字符 |
not in | 字符串中是否不包含指定字符 |
r/R | 字符串原样输出 |
使用示例如下所示:
s1 = 'Hello's2 = 'Python'print('s1 + s2 -->', s1 + s2)print('s1 * 2 -->', s1 * 2)print('s1[0] -->', s1[0])print('s1[0:2] -->',s1[0:2])print('"H" in s1 -->','H' in s1)print('"H" not in s1 -->','H' not in s1)print('\\r -->', R'\r')
输出结果:
s1 + s2 --> HelloPythons1 * 2 --> HelloHellos1[0] --> Hs1[0:2] --> He"H" in s1 --> True"H" not in s1 --> False\r --> \r
5 格式化
当我们需要输出的内容中含有变量时,比如:Hello xxx
,xxx
为变量,此时便需要一种格式化字符串的方式,Python 使用 %
格式化字符串,常用占位符如下表所示:
占位符 | 描述 |
---|---|
%s | 格式化字符串 |
%d | 格式化整数 |
%f | 格式化浮点数 |
以字符串为例,如下所示:
print('Hello %s' % 'Python')
输出结果:
Hello Python
我们也可以使用字符串的 format()
方法进行格式化,先看下示例:
print('{0} {1}'.format('Hello', 'Python'))
这种方式是用传入的参数依次替换字符串内的占位符{0}、{1} ...
2 基本使用
2.1 索引
序列索引支持非负数和负数,索引为非负数,从 0
开始,如下所示:
索引为负数由右向左计数,从 -1
开始,如图所示:
下面通过一个示例作进一步了解,以字符串为例,如下所示:
str = 'Python'print('str[0] str[-6] =', str[0], str[-6])print('str[5] str[-1] =', str[5], str[-1])
输出结果:
str[0] str[-6] = P Pstr[5] str[-1] = n n
从结果来看,我们使用非负数索引与负数索引得到的结果一致。
2.2 切片
切片操作可以访问一定范围内的元素,语法如下所示:
sname[start : end : step]
-
sname:表示序列的名称;
-
start:开始索引位置(包括该位置),默认为 0;
-
end:表示切片的结束索引位置(不包括该位置),默认为序列的长度;
-
step:步长。
以字符串为例,如下所示:
str = 'Python'print(str[:3])print(str[3:])print(str[:])
输出结果:
PythonPython
2.3 相加
Python 支持类型相同的序列使用 +
作相加操作,该操作不会去除重复的元素。以字符串为例,如下所示:
str1 = 'Python'str2 = 'Python'print('str1 + str2 --> ',str1 + str2)
输出结果:
str1 + str2 --> PythonPython
2.4 相乘
Python 中,使用数字 n 乘以一个序列会生成新的序列,内容为原来序列被重复 n 次的结果。以字符串为例,如下所示:
str = 'Python'print('2 * str --> ',2 * str)
输出结果:
2 * str --> PythonPython
2.5 元素是否在序列中
Python 使用 in
关键字检查某元素是否为序列的成员,语法如下:
val in seq
-
val:要检查的元素;
-
seq:指定的序列。
通过一个例子作进一步了解,以字符串为例,如下所示:
str = 'Python'print('on'in str)
输出结果:
True
2.6 内置函数
函数 | 描述 |
---|---|
len() | 计算序列的长度 |
max() | 找出序列中的最大元素 |
min() | 找出序列中的最小元素 |
list() | 将序列转换为列表 |
str() | 将序列转换为字符串 |
sum() | 计算元素的和 |
sorted() | 对元素进行排序 |
enumerate() | 将序列组合为一个索引序列,多用在 for 循环中 |
简单举几个例子,如下所示:
str = 'dbcae'print('len -->', len(str))print('max -->', max(str))print('sorted -->', sorted(str))
输出结果:
len --> 5max --> esorted --> ['a', 'b', 'c', 'd', 'e']