字符串
1 简介
在之前的文章中我们已经提到了,字符串是 Python 的一种数据类型,它可以通过单引号 '
、双引号 "
、三引号 '''
或 """
来定义,本节我们来详细介绍一下。
2 基本操作
- 访问单个字符
s = 'Python'
# 访问第一个字符 P
print(s[0])
- 访问范围内字符
s = 'Python'
# 访问 Py
print(s[0:2])
# 访问前3个 Pyt
print(s[:3])
# 访问最后3个 hon
print(s[3:])
# 访问最后一个字符 n
print(s[-1])
- 单个字符编码
Python 使用了 ord()
函数返回单个字符的编码,chr()
函数把编码转成相应字符。如下所示:
s = 'A'
print(ord(s))
print(chr(65))
输出结果:
65
A
3 转义符
Python 中的字符串还支持转义字符。所谓转义字符是指使用反斜杠\
对一些特殊字符进行转义。
之前我们说过可以通过反斜杠 \
将一行语句分多行显示,其实就是 \
来转义字符
转义字符 | 说明 |
---|---|
" | 双引号 |
’ | 单引号 |
\ | 在行尾使用时,用作续行符 |
\n | 换行符 |
\0 | 空 |
\t | 水平制表符,用于横向跳到下一制表位 |
\f | 换页符 |
\v | 纵向制表符 |
\r | 回车 |
\0dd | 八进制数,dd 代表字符,如 \012 代表换行 |
\xhh | 十六进制数,hh 代表字符,如 \x0a 代表换行 |
4 运算符
之前我们已经介绍了大部分运算符,下面再来详细看一下字符串运算符。如下表所示:
运算符 | 描述 |
---|---|
+ | 连接符 |
* | 重复输出 |
[] | 通过索引获取字符串中字符 |
[ : ] | 获取字符串中的一部分,左闭右开 |
in | 字符串中是否包含指定字符 |
not in | 字符串中是否不包含指定字符 |
r或R | 字符串原样输出,写在字符串前 |
f或F | 格式化字符串,写在字符串前 |
使用示例如下所示:
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('"He" in s1 -->','He' in s1)
print('"H" not in s1 -->','H' not in s1)
print('\\r -->', R'\r')
print(f'Hello, {s2}')
输出结果:
s1 + s2 --> HelloPython
s1 * 2 --> HelloHello
s1[0] --> H
s1[0:2] --> He
"He" in s1 --> True
"H" not in s1 --> False
\r --> \r
Hello, Python
5 格式化
当我们需要输出的内容中含有变量时,比如:Hello xxx
,xxx
为变量,此时便需要一种格式化字符串的方式
-
% 占位符
使用
%
格式化字符串,常用占位符如下表所示:占位符 描述 %s 格式化字符串 %d 格式化整数 %f 格式化浮点数
以字符串为例,如下所示:
print('Hello %s' % 'Python')
print('%d' % 10.1)
输出结果:
Hello Python
10
-
format() 方法
字符串的
format()
方法进行格式化,是用传入的参数依次替换字符串内的占位符{0}、{1} …
先看下示例:
print('{} {}'.format('Hello', 'Python'))
print('{0} {1}'.format('Hello', 'Python'))
print('{1} {0}'.format('Hello', 'Python'))
输出结果:
Hello Python
Hello Python
Python Hello
-
f或F 运算符
在 Python 中,字符串前面的
f
或F
表示格式化字符串(f-string)。格式化字符串可以在字符串中嵌入表达式,表达式的值将被插入到字符串中。
name = "Alice"
age = 20
print(f"{name} is {age} years old.")
输出结果
Alice is 20 years old