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

ops/2025/2/7 22:08:18/

字符串高级操作

1. 字符串格式化技巧

1.1 f-string(Python 3.6+)

基础用法

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

高级格式控制

python">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方法

位置参数与关键字参数

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

格式规范

python"># 对齐与填充
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 切片操作

基本语法

python">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

python"># 分割与重组
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清理

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

其他实用方法

python"># 判断前缀/后缀
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 原始字符串应用

禁用转义处理

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

正则表达式场景

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

多行字符串处理

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

4. 常见问题与解决方案

问题1:切片越界处理

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

问题2:格式化类型错误

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

问题3:转义符意外生效

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

5. 性能优化建议

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

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


http://www.ppmy.cn/ops/156551.html

相关文章

Python——Unicode 编码 或 解码 工具(通用版)

目录 专栏导读1、代码背景2、库的安装3、核心代码4、完整代码GUI进阶版总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求…

基于微信小程序的消防隐患在线举报系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

Qt跨屏窗口的一个Bug及解决方案

如果我们希望一个窗口覆盖用户的整个桌面,此时就要考虑用户有多个屏幕的场景(此窗口要横跨多个屏幕),由于每个屏幕的分辨率和缩放比例可能是不同的,Qt底层在为此窗口设置缩放比例(DevicePixelRatio&#xf…

C++中常用的十大排序方法之4——希尔排序

成长路上不孤单😊😊😊😊😊😊 【😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于C中常用的排序方法之4——希尔排序的相…

设计模式Python版 组合模式

文章目录 前言一、组合模式二、组合模式实现方式三、组合模式示例四、组合模式在Django中的应用 前言 GOF设计模式分三大类: 创建型模式:关注对象的创建过程,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式…

React中使用箭头函数定义事件处理程序

React中使用箭头函数定义事件处理程序 为什么使用箭头函数?1. 传递动态参数2. 避免闭包问题3. 确保每个方块的事件处理程序是独立的4. 代码可读性和维护性 示例代码总结 在React开发中,处理事件是一个常见的任务。特别是当我们需要传递动态参数时&#x…

(安全防御)防火墙安全策略部署

一.网络拓扑图 二、实验要求 1、VLAN2属于办公区;VLAN3属于生产区 2、办公区PC在工作日时间(周一至周五,早八到晚六)可以正常访问OA server,其他时间不允许 3、办公区pc可以在任意时间可以访问Web server 4、生产区pc…

笔记本电脑屏幕泛白问题解决详解(AMD显卡)

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 👉点击跳转到教程 前言: 本人的电脑是AMD显卡,出现屏幕泛白。 如果没有驱动管理软件…