Python 常见的字符串方法有哪些?
在学习字符串时,我们已经知道:
- 可以使用索引获取字符
- 可以使用切片提取字符串的一部分
- 字符串属于不可变对象(Immutable)
但是,在实际开发中,我们更常使用**字符串方法(String Methods)**来处理文本。
例如:
- 把所有字母转换成大写
- 删除字符串前后的空格
- 替换某个单词
- 判断字符串是否以某个内容开头
- 统计某个字符出现了多少次
这些都可以通过字符串方法轻松完成。
什么是方法(Method)?
方法(Method) 可以理解为:
对象自带的功能。
字符串对象拥有许多可以直接调用的功能,这些功能就叫做字符串方法。
方法的调用格式为:
对象.方法名()
例如:
my_str = "hello"
print(my_str.upper())
这里:
upper()
就是字符串的方法。
可以理解为:
字符串
│
▼
调用自己的方法
│
▼
返回新的结果
字符串方法会修改原字符串吗?
绝大多数字符串方法都不会修改原字符串。
例如:
my_str = "hello"
new_str = my_str.upper()
print(my_str)
print(new_str)
输出:
hello
HELLO
可以看到:
my_str没有发生变化upper()返回了一个新的字符串
这是因为字符串是不可变对象。
upper() —— 全部转换为大写
作用:
将所有字母转换为大写。
例如:
my_str = "hello world"
print(my_str.upper())
输出:
HELLO WORLD
常用于:
- 用户输入统一转换
- 忽略大小写比较
- 显示标题
lower() —— 全部转换为小写
作用:
将所有字母转换为小写。
例如:
my_str = "Hello World"
print(my_str.lower())
输出:
hello world
经常与 upper() 配合使用。
strip() —— 删除首尾字符
作用:
删除字符串开头和结尾的空白字符。
例如:
my_str = " hello world "
print(my_str.strip())
输出:
hello world
默认删除:
- 空格
- 制表符(
\t) - 换行符(
\n)
也可以删除指定字符,例如:
text = "***Python***"
print(text.strip("*"))
输出:
Python
注意:
strip()只会删除开头和结尾的字符,不会删除中间的字符。
replace() —— 替换字符串
作用:
把指定内容替换成新的内容。
语法:
字符串.replace(旧内容, 新内容)
例如:
my_str = "hello world"
print(my_str.replace("hello", "hi"))
输出:
hi world
如果原字符串中有多个匹配内容,
默认会全部替换。
split() —— 拆分字符串
作用:
按照指定分隔符,把字符串拆分成列表(List)。
例如:
my_str = "hello world"
print(my_str.split())
输出:
['hello', 'world']
默认按照空格拆分。
也可以指定分隔符:
text = "apple,banana,orange"
print(text.split(","))
输出:
['apple', 'banana', 'orange']
join() —— 拼接字符串
作用:
将多个字符串按照指定分隔符连接成一个新的字符串。
语法:
"分隔符".join(可迭代对象)
例如:
words = ["hello", "world"]
print(" ".join(words))
输出:
hello world
如果使用:
"-".join(words)
输出:
hello-world
可以理解为:
使用指定的字符,把列表中的每个元素连接起来。
startswith() —— 判断开头
作用:
判断字符串是否以指定内容开头。
返回:
TrueFalse
例如:
my_str = "hello world"
print(my_str.startswith("hello"))
输出:
True
如果判断:
print(my_str.startswith("world"))
输出:
False
endswith() —— 判断结尾
作用:
判断字符串是否以指定内容结尾。
例如:
my_str = "hello world"
print(my_str.endswith("world"))
输出:
True
如果:
print(my_str.endswith("hello"))
输出:
False
find() —— 查找位置
作用:
返回指定字符串第一次出现的位置(索引)。
例如:
my_str = "hello world"
print(my_str.find("world"))
输出:
6
因为:
world
从索引:
6
开始。
如果没有找到:
print(my_str.find("Python"))
输出:
-1
这是 find() 的特点:
找不到不会报错,而是返回
-1。
count() —— 统计出现次数
作用:
统计某个字符或字符串出现了多少次。
例如:
my_str = "hello world"
print(my_str.count("o"))
输出:
2
因为:
字母:
o
出现了两次。
capitalize() —— 首字母大写
作用:
将字符串第一个字符转换为大写,其余字符转换为小写。
例如:
my_str = "hello world"
print(my_str.capitalize())
输出:
Hello world
注意:
只有第一个字母会变成大写。
title() —— 每个单词首字母大写
作用:
将每个单词的首字母转换为大写。
例如:
my_str = "hello world"
print(my_str.title())
输出:
Hello World
适用于:
- 标题
- 姓名
- 文章标题
isupper() —— 是否全部大写
作用:
判断字符串中的字母是否全部为大写。
例如:
my_str = "HELLO"
print(my_str.isupper())
输出:
True
如果:
my_str = "Hello"
输出:
False
islower() —— 是否全部小写
作用:
判断字符串中的字母是否全部为小写。
例如:
my_str = "hello"
print(my_str.islower())
输出:
True
如果:
my_str = "Hello"
输出:
False
常用字符串方法速查表
| 方法 | 作用 | 返回值类型 |
|---|---|---|
upper() |
全部转换为大写 | str |
lower() |
全部转换为小写 | str |
strip() |
删除首尾空白或指定字符 | str |
replace(old, new) |
替换指定内容 | str |
split() |
拆分字符串 | list |
"分隔符".join() |
拼接多个字符串 | str |
startswith() |
判断是否以指定内容开头 | bool |
endswith() |
判断是否以指定内容结尾 | bool |
find() |
查找第一次出现的位置,找不到返回 -1 |
int |
count() |
统计出现次数 | int |
capitalize() |
首字母大写,其余小写 | str |
title() |
每个单词首字母大写 | str |
isupper() |
是否全部大写 | bool |
islower() |
是否全部小写 | bool |
常见错误
❌ 认为方法会修改原字符串
错误理解:
text = "hello"
text.upper()
print(text)
很多人认为输出:
HELLO
实际上输出:
hello
因为:
upper() 返回的是一个新的字符串。
正确写法:
text = text.upper()
❌ 对 split() 的结果理解错误
例如:
text = "hello world"
result = text.split()
此时:
result
已经不是字符串,而是:
list
即列表类型。
学习小结
| 知识点 | 说明 |
|---|---|
| 方法(Method) | 对象自带的功能,通过 对象.方法() 调用。 |
| 不可变性 | 大多数字符串方法不会修改原字符串,而是返回新的字符串。 |
| 大小写转换 | upper()、lower()、capitalize()、title()。 |
| 文本处理 | strip() 删除首尾字符,replace() 替换内容。 |
| 拆分与拼接 | split() 将字符串拆分为列表,join() 将多个字符串连接成一个字符串。 |
| 查找与判断 | find() 查找位置,count() 统计次数,startswith()、endswith()、isupper()、islower() 用于判断字符串特征。 |
总结
- 字符串方法(String Methods)是字符串对象提供的一系列内置功能,可以帮助我们方便地处理文本。
- 调用方法时使用
字符串.方法名()的形式,大多数方法都会返回一个新的字符串,而不会修改原字符串。 - 常用方法包括大小写转换、删除空白、替换文本、拆分与拼接字符串,以及查找和判断字符串内容等。
- 熟练掌握这些字符串方法,可以大大提高文本处理效率,也是后续学习文件操作、数据清洗和 Web 开发的重要基础。