一、字符串拼接
1、基本介绍
-
字符串可以通过加号
+进行拼接,字符串类型无法和非字符串类型直接通过加号+进行拼接 -
可以通过 str 函数将非字符串类型转换成字符串类型之后通过加号
+进行拼接
2、演示
python
name = "jack"
age = 20
score = 90.5
print("我的名字是 " + name)
print("我的名字是 " + name + ",我今年 " + str(age) + " 岁")
print("我的名字是 " + name + ",我今年 " + str(age) + " 岁,我的成绩是 " + str(score))
# 输出结果
我的名字是 jack
我的名字是 jack,我今年 20 岁
我的名字是 jack,我今年 20 岁,我的成绩是 90.500000
二、字符串普通格式化
1、基本介绍
- 此方式比【通过加号
+进行拼接】更加方便,使用占位符来进行非字符串类型的格式化
| 占位符 | 说明 |
|---|---|
%s |
将内容转换成字符串,放入占位位置 |
%d |
将内容转换成整数,放入占位位置 |
%f |
将内容转换成浮点数,放入占位位置 |
2、演示
- 注:多个变量占位,变量要用括号
()括起来,并按照占位的顺序填入,使用逗号,分隔
python
name = "jack"
age = 20
score = 90.5
print("我的名字是 %s" % name)
print("我的名字是 %s,我今年 %d 岁" % (name, age))
print("我的名字是 %s,我今年 %d 岁,我的成绩是 %f" % (name, age, score))
# 输出结果
我的名字是 jack
我的名字是 jack,我今年 20 岁
我的名字是 jack,我今年 20 岁,我的成绩是 90.500000
二、字符串普通格式化数字精度控制
1、问题引入
- 上面案例中的
score = 90.5格式化后为90.500000,其实我们并不想要这么多位,希望对数字进行精度控制
2、基本介绍
- 使用辅助符号
m.n来控制数据的宽度和精度
| 符号 | 说明 |
|---|---|
m |
控制宽度,小数点和小数部分也加入宽度计算 当设置的宽度小于数字自身时,不生效 |
.n |
控制小数点精度,会进行小数的四舍五入 |
| 示例 | 说明 |
|---|---|
%5d |
表示将宽度设置为 5 位 例如,对数字 11 设置,结果是:【空格】【空格】【空格】11,3 个空格补足宽度 |
%7.2f |
表示将宽度设置为 7 位,将小数点精度设置为 2 位 例如,对数字 11.345 设置,结果是:【空格】【空格】11.35,2 个空格补足宽度,小数部分四舍五入为 .35 |
%.2f |
表示不限制宽度,将小数点精度设置为 2 位 例如,对数字 11.345 设置,结果是:11.35,小数部分四舍五入为 .35 |
3、演示
python
print("%5d" % 11)
# 输出结果
11
python
print("%1d" % 11)
# 输出结果
11
python
print("%7.2f" % 12.345)
# 输出结果
12.35
python
print("%0.2f" % 12.345)
# 输出结果
12.35
三、字符串快速格式化
1、基本介绍
- 此方式比【字符串普通格式化】和【通过加号
+进行拼接】更加方便,更加强大
- 快速格式化变量
python
f"{【变量】}"
- 快速格式化表达式
python
f"{【表达式】}"
2、演示
- 快速格式化变量
python
name = "tom"
age = 15
score = 90.5
print(f"我的名字是 {name},我今年 {age} 岁,我的成绩是 {score}")
# 输出结果
我的名字是 tom,我今年 15 岁,我的成绩是 90.5
- 快速格式化表达式
python
print(f"3 * 4 的结果是:{3 * 4}")
# 输出结果
3 * 4 的结果是:12
四、字符串也是数据容器
1、基本介绍
- 字符串可以通过索引来访问,这里以字符串
Hello World为例
| - | H | e | l | l | o | W | o | r | l | d | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
- 字符串不可以通过索引来修改
2、演示
- 字符串可以通过索引来访问
python
str = "Hello World"
print(str[4])
print(str[8])
输出结果
o
r
- 字符串不可以通过索引来修改
python
str = "Hello World"
str[4] = "a"
# 输出结果
TypeError: 'str' object does not support item assignment
五、字符串的遍历
1、for 循环
python
my_str = "Hello World"
for item in my_str:
print(item)
# 输出结果
H
e
l
l
o
W
o
r
l
d
2、使用索引 + while 循环
python
my_str = "Hello World"
index = 0
while index < len(my_str):
print(my_str[index])
index += 1
# 输出结果
H
e
l
l
o
W
o
r
l
d
3、使用 enumerate 函数
- 这种方式可以同时返回索引和元素
python
my_str = "Hello World"
for index, value in enumerate(my_str):
print(index, value)
# 输出结果
0 H
1 e
2 l
3 l
4 o
5
6 W
7 o
8 r
9 l
10 d
六、字符串的常用方法
1、基本介绍
| 编号 | 方法 | 说明 |
|---|---|---|
| 1 | 【字符串】.index(【指定字符串】) |
查找指定字符串的索引,找不到则报错 |
| 2 | 【字符串】.replace(【指定字符串 1】, 【指定字符串 2】) |
将字符串内的指定字符串 1,替换为指定字符串 2 不会修改原字符串,而是得到一个新的字符串 |
| 3 | 【字符串】.split(【指定字符串】) |
按照指定字符串,对字符串进行分隔 不会修改原字符串,而是得到一个新的列表 |
| 4 | 【字符串】.strip() |
移除字符串首尾的空格和换行符 不会修改原字符串,而是得到一个新的字符串 |
| - | 【字符串】.strip(【指定字符串】) |
移除首尾的指定字符串,按照指定字符串的单个字符来确定移除 不会修改原字符串,而是得到一个新的字符串 |
| 5 | 【字符串】.count(【指定字符串】) |
统计指定字符串在字符串中出现的次数 |
| 6 | 【字符串】.splitlines(【keepends】) |
按行 \r、\r\n、\n 分割,返回一个以各行作为元素的列表 keepends 默认为 False,不包含换行符,为 True 则保留换行符 |
| 7 | len(【字符串】) |
统计字符串的字符个数 |
2、演示
- index 方法
python
my_str = "Hello World"
print(my_str.index("World"))
# 输出结果
6
- replace 方法
python
my_str = "Hello World"
new_str = my_str.replace("World", "Python")
print(new_str)
# 输出结果
Hello Python
- split 方法
python
my_str = "Hello World"
str_list = my_str.split(" ")
print(str_list)
# 输出结果
['Hello', 'World']
- strip 方法
python
my_str1 = " Hello World "
new_str1 = my_str1.strip()
print(new_str1)
my_str2 = "12Hello World21"
# 传入的是 "12" 时 "1" 和 "2" 都会移除,是按照单个字符来确定移除的
new_str2 = my_str2.strip("12")
print(new_str2)
# 输出结果
Hello World
Hello World
- count 方法
python
my_str = "Hello World"
print(my_str.count("l"))
# 输出结果
l
- splitlines 方法
python
my_str = 'Hello\rWorld\n123\r\n456'
str_list = my_str.splitlines()
print(str_list)
# 输出结果
['Hello', 'World', '123', '456']
- len 方法
python
my_str = "Hello World"
print(len(my_str))
# 输出结果
11