python 字符串的方法总结

本文详细介绍Python中字符串的各种操作方法,包括大小写转换、格式化、查找、替换等实用技巧,帮助程序员提高编码效率。
test = 'bbC!dEA'
test1 = '{name}+{age}'
test2 = '{0}+{1}'
test3 = 'user\temail\tpass\nwang\t123@qq.com\t123\nwang\t123@qq.com\t123'

# 首字母大写,其余小写
v1 = test.capitalize()
print(v1)
# 结果: Bbc!dea

# 所有字母变小写(功能更强大)
v2 = test.casefold()
print(v2)
# 结果: bbc!dea

# 所有字母变小写
v3 = test.lower()
print(v3)
# 结果: bbc!dea

# param1:设置长度,并居中; param2:用 * 补充
# param1 必传,param2 可不传
v4 = test.center(13, '*')
print(v4)
# 结果: ***bbC!dEA***

# 在字符串中寻找子序列的出现次数
# param1:子序列; param2:起始下标;param3:结束下标(包头不包尾)
# param1 必传,param2 可不传,param3 可不传
v5 = test.count('A', 0, 1)
print(v5)
# 结果: 0

# 是否以子序列结尾
# param1:子序列; param2:起始下标;param3:结束下标(包头不包尾)
# param1 必传,param2 可不传,param3 可不传
v6 = test.endswith('A', 0, 1)
print(v6)
# 结果: False

# 返回子序列第一次出现的位置,没有匹配返回-1
# param1:子序列; param2:起始下标;param3:结束下标(包头不包尾)
# param1 必传,param2 可不传,param3 可不传
v7 = test.find('A', 0, 6)
print(v7)
# 结果: -1

# 返回子序列第一次出现的位置,没有匹配报错
# param1:子序列; param2:起始下标;param3:结束下标(包头不包尾)
# param1 必传,param2 可不传,param3 可不传
v8 = test.index('b', 0, 6)
print(v8)
# 结果: 0

# 将一个字符串中的占位符替换为指定值
v8 = test1.format(name='eaphy', age=10)
v9 = test2.format('eaphy', 10)
print(v8)
# 结果: eaphy+10
print(v9)
# 结果: eaphy+10

# 判断字符串是否只有数字和字母
v10 = test.isalnum()
print(v10)
# 结果: False

# 以20长度分割,有制表符 \t ,则\t 后面以空格补齐20长度
"""
假设 test = 'user\temail\tpass\nwang\t123@qq.com\t123\nwang\t123@qq.com\t123'
        v = test.expandtabs(3)
那么以3个长度为单位分割字符,第1段字符是use,第2段就是 r\t(各个段之间是没有任何改变的,不会加空格)
第2段已经有1个r占了1位,所以 \t 以2个空格补齐3位,前两段就变成 ‘user  ’
第3段字符是ema,第4段就是 il\t
第4段已经有il占了2位,所以 \t 以1个空格补齐3位,34段就变成 ‘email ’
前4段合起来就是 ‘user  email ’
之后依此类推
"""
v11 = test3.expandtabs(20)
print(v11)

# 结果:
# user                email               pass
# wang                123@qq.com          123
# wang                123@qq.com          123

 

### Python 字符串方法总结与使用指南 #### 一、基本概念 Python 中的字符串是一种不可变的数据类型,用于存储和处理文本信息。它们支持多种内置方法来进行高效的字符串操作[^1]。 --- #### 二、常见字符串方法及其功能 以下是 Python 字符串的一些核心方法1. **查找与定位** - `str.find(sub[, start[, end]])`:返回子字符串第一次出现的位置;如果未找到,则返回 `-1`。 - `str.rfind(sub[, start[, end]])`:返回子字符串最后一次出现的位置;如果未找到,则返回 `-1`。 - `str.index(sub[, start[, end]])`:类似于 `find()` 方法,但如果找不到则会抛出异常。 - `str.rindex(sub[, start[, end]])`:类似于 `rfind()` 方法,但如果找不到则会抛出异常[^2]。 2. **大小写转换** - `str.lower()`:将字符串中的所有大写字母转换为小写。 - `str.upper()`:将字符串中的所有小写字母转换为大写。 - `str.capitalize()`:将字符串的第一个字符转换为大写,其余部分转换为小写。 - `str.title()`:将字符串中的每个单词首字母大写。 3. **分割与连接** - `str.split(sep=None, maxsplit=-1)`:按照指定分隔符拆分字符串并返回列表。 - `str.join(iterable)`:将序列中的元素以指定的字符连接成一个新的字符串。 4. **替换与修改** - `str.replace(old, new[, count])`:将字符串中的某些子字符串替换为新的子字符串。 - `str.strip([chars])`:移除字符串两端的空白字符或其他指定字符。 - `str.lstrip([chars])` 和 `str.rstrip([chars])`:分别移除左侧或右侧的空白字符。 5. **判断类方法** - `str.startswith(prefix[, start[, end]])`:检查字符串是否以指定前缀开头。 - `str.endswith(suffix[, start[, end]])`:检查字符串是否以指定后缀结尾。 - `str.isalpha()`:检查字符串是否只包含字母。 - `str.isdigit()`:检查字符串是否只包含数字。 - `str.isalnum()`:检查字符串是否只包含字母和数字。 6. **格式化** - 使用 `%` 进行简单格式化:适用于较老版本的 Python[^4]。 ```python name = "Alice" age = 25 message = "Name: %s, Age: %d" % (name, age) print(message) # 输出: Name: Alice, Age: 25 ``` - 使用 `str.format()` 或者 f-string 实现更现代的格式化方式[^3]: ```python name = "Bob" age = 30 message_format = "Name: {}, Age: {}".format(name, age) message_f_string = f"Name: {name}, Age: {age}" ``` 7. **其他实用方法** - `str.count(sub[, start[, end]])`:统计子字符串在原字符串中出现的次数。 - `str.encode(encoding='utf-8', errors='strict')`:将字符串编码为字节对象。 - `str.decode(encoding='utf-8', errors='strict')`:解码字节对象为字符串(注意此方法仅限于字节对象)。 --- #### 三、字符串到 JSON 转换 当需要将字符串转化为 JSON 数据结构时,可以借助 Python 的标准库 `json` 模块完成这一过程[^5]: ```python import json data_str = '{"key": "value"}' try: data_json = json.loads(data_str) print(data_json["key"]) # 输出: value except json.JSONDecodeError as e: print(f"JSON 解析错误: {e}") ``` --- #### 四、注意事项 1. 字符串是不可变的对象,因此任何对其的操作都会生成新字符串而非修改原始字符串2. 对于复杂的正则表达式匹配任务,建议引入 `re` 模块扩展能力。 3. 在涉及大量字符串拼接的情况下,推荐使用 `''.join(list_of_strings)` 来代替连续的加号 (`+`) 操作,从而提高效率。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值