欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > python基础入门:2.3字符串高级操作

python基础入门:2.3字符串高级操作

2025/2/7 13:59:50 来源:https://blog.csdn.net/m0_60046831/article/details/145460510  浏览:    关键词:python基础入门:2.3字符串高级操作

字符串高级操作

1. 字符串格式化技巧

1.1 f-string(Python 3.6+)

基础用法

name = "Alice"
age = 25
print(f"{name}今年{age}岁")  # Alice今年25岁

高级格式控制

pi = 3.1415926
# 保留两位小数
print(f"圆周率:{pi:.2f}")       # 圆周率:3.14  
# 十六进制转换
print(f"255的十六进制:{255:#x}")  # 255的十六进制:0xff  
# 千位分隔符
print(f"{1000000:_}")          # 1_000_000

1.2 format方法

位置参数与关键字参数

# 顺序传参
print("{}的{}成绩是{}".format("小明", "数学", 95)) # 关键字参数
print("{name}的{subject}成绩是{score}".format(name="小红", subject="物理",score=88
))

格式规范

# 对齐与填充
print("{:*^20}".format("居中"))  # ********居中********
# 科学计数法
print("{:.2e}".format(0.001234)) # 1.23e-03
# 类型转换
print("{!r}".format("带引号"))    # '带引号'

格式化方式对比

特性f-stringformat
可读性
版本要求Python 3.6+Python 2.6+
表达式内运算支持不支持
局部变量访问直接访问需传参
动态格式字符串受限灵活支持

2. 切片操作与核心方法

2.1 切片操作

基本语法

text = "Python编程指南"print(text[2:5])    # tho(索引2到4)
print(text[:3])     # Pyt(从头到索引2)
print(text[6:])     # 编程指南(索引6到末尾)
print(text[-3:])    # 南(最后三个字符)
print(text[::2])    # Pto编南(步长2)

索引示意图

P
y
t
h
o
n

2.2 核心字符串方法

split与join

# 分割与重组
csv_data = "apple,banana,cherry"
fruits = csv_data.split(",")  # ['apple', 'banana', 'cherry']
new_str = "|".join(fruits)    # apple|banana|cherry# 多分隔符分割(正则表达式)
import re
text = "苹果;香蕉,橘子"
print(re.split(r"[;,\s]+", text))  # ['苹果', '香蕉', '橘子']

strip清理

user_input = "   admin@example.com  \t\n"
clean_email = user_input.strip()  # admin@example.com# 定向清理
text = "==重要通知=="
print(text.strip("="))  # 重要通知

其他实用方法

# 判断前缀/后缀
filename = "report.pdf"
print(filename.endswith(".pdf"))  # True# 替换内容
sentence = "我喜欢Java"
print(sentence.replace("Java", "Python"))  # 我喜欢Python# 查找定位
text = "寻找子串位置"
index = text.find("子串")  # 3(找不到返回-1)

3. 转义字符与原始字符串

3.1 常用转义字符

转义符说明示例
\n换行符print(“第1行\n第2行”)
\t制表符“姓名\t年龄”
\\反斜杠“C:\Users”
\'单引号‘I’m here’
\x十六进制字符“\x41” → ‘A’

3.2 原始字符串应用

禁用转义处理

# 常规字符串
path = "C:\\Users\\Documents\\file.txt"  # 需要双反斜杠# 原始字符串
path = r"C:\Users\Documents\file.txt"    # 自动处理反斜杠

正则表达式场景

import re
pattern = r"\d{3}-\d{4}"  # 匹配000-0000格式
text = "电话:123-4567"
re.findall(pattern, text)  # ['123-4567']

多行字符串处理

# 三引号保持格式
sql = r"""
SELECT * 
FROM users 
WHERE age > 18
"""

4. 常见问题与解决方案

问题1:切片越界处理

text = "Python"
print(text[2:10])   # 自动截断 → 'thon'
print(text[-10:2])  # 返回空字符串

问题2:格式化类型错误

# 错误示例
price = 99.5
print(f"价格:{price:d}")  # ValueError: Unknown format code 'd'# 正确转换
print(f"价格:{int(price)}元")  # 价格:99元

问题3:转义符意外生效

# 错误路径写法
print("新建文件夹\note")  # \n被识别为换行# 正确方案
print(r"新建文件夹\note")  # 原始字符串

5. 性能优化建议

  1. 字符串拼接
# 低效写法(每次拼接创建新对象)
result = ""
for s in ["a", "b", "c"]:result += s# 高效写法
parts = []
for s in ["a", "b", "c"]:parts.append(s)
result = "".join(parts)
  1. 预编译正则表达式
import re
pattern = re.compile(r"\d+")  # 预编译
data = "abc123def456"
pattern.findall(data)  # ['123', '456']

下节预告:我们将深入探讨Python的列表与元组操作,并通过实现一个高效的数据过滤系统来实践容器类型的高级用法。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com