1. 字符串的使用
1.1 字符串的定义
方式一: 单引号
方式二: 双引号
方式三: 三引号 (支持换行)
1
2
|
s3 = '''This is a multiline\nstring'''
s4 = """This is also\na multiline string"""
|
方式四: 使用 str()
创建空字符串
注意:
- 单引号和双引号之间没有区别
- 三引号支持换行
- 字符串中含有引号时要用另一种引号包裹
1
2
|
s6 = "He said: 'Hi'"
s7 = 'She replied: "Hello"'
|
1.2 字符串的切片与索引
正向和反向索引
1
2
3
|
s = 'abcdefg'
char3 = s[2] # 'c'
last_char = s[-1] # 'g'
|
切片操作
1
2
3
4
|
s = 'ni hao python'
res1 = s[3:6] # 'hao'
res2 = s[-3:-1] # 'ho'
res3 = s[::4] # 'nht'
|
切片语法:
1
2
3
4
|
s[start:end] # 包含 start, 不包含 end
s[:end] # 从开头到 end
s[start:] # 从 start 到末
s[start:end:step] # 每 step 步变化
|
切片要点:
- 切片包含起始值,不包含结束值
- 不写 start 表示从开头
- 不写 end 表示到末
1.3 字符串的拼接
用 +
1
2
3
|
name = 'Tom'
age = 20
res = 'Name: ' + name + ', Age: ' + str(age)
|
用 join()
1
|
res = ''.join(['Name: ', name, ', Age: ', str(age)])
|
join()
只能拼接字符串类型,非字符串需先转换
1.4 字符串格式化
f-表达式
1
2
3
4
5
|
name = 'Alice'
age = 30
height = 165.567
res = f'姓名: {name}, 年龄: {age}, 身高: {height:.1f} cm'
|
1
2
3
4
5
|
name = 'Bob'
age = 25
height = 175.234
res = 'Name: {}, Age: {}, Height: {:.2f} cm'.format(name, age, height)
|
常用格式化
格式 |
效果 |
描述 |
{:.2f} |
5.11 |
保留小数两位 |
{:<10} |
左对齐 |
左对齐 (宽度 10) |
{:>10} |
右对齐 |
右对齐 |
{:^10} |
居中对齐 |
中心对齐 |
1.5 特殊字符
\n - 换行
1
2
|
text = "第一行\n第二行"
print(text)
|
\t - 制表符
1
2
|
text = "Name\tAge\tCity\nTom\t18\tNY"
print(text)
|
r’’ - 原始字符串
1
2
|
raw = r'C:\\path\\to\\file'
print(raw)
|
1.6 常用字符串方法
方法 |
描述 |
join |
字符串拼接 |
find |
查找字符串位置 |
count |
计数字符串次数 |
replace |
替换字符 |
split |
分割字符串 |
format |
格式化输出 |
strip |
去除首尾空格 |
upper |
转大写 |
lower |
转小写 |
1.7 练习题
练习 1: 创建不同形式字符串
1
2
3
4
5
6
|
s1 = 'abc'
s2 = "def"
s3 = '''ghi\njkl'''
s4 = """123\n456"""
s5 = str()
print(s1, s2, s3, s4, f'empty: "{s5}"')
|
练习 2: 切片
1
2
3
4
5
|
text = "Python programming is fun"
print(text[2:6]) # 'thon'
print(text[4:]) # 'on programming is fun'
print(text[:4]) # 'Pyth'
print(text[-3:]) # 'fun'
|
练习 3: 拼接
1
2
3
4
5
6
7
8
|
part1 = "Hello"
part2 = "World"
part3 = "!"
res1 = part1 + " " + part2 + part3
res2 = " ".join([part1, part2, part3])
print(res1)
print(res2)
|
练习 4: 格式化
1
2
3
4
5
6
7
8
|
name = "Alice"
age = 30
city = "New York"
info1 = f"Name: {name}, Age: {age}, City: {city}"
info2 = "Name: {}, Age: {}, City: {}".format(name, age, city)
print(info1)
print(info2)
|
练习 5: 字符串操作
1
2
3
4
5
6
7
|
data = " Python is great! Python is fun! "
print(data.find("great"))
print(data.count("Python"))
print(data.replace("Python", "Java"))
print(data.split(" "))
print(data.strip().upper())
print(data.strip().lower())
|