Python字符串操作教程_切片拼接与格式化详解
技术百科
舞夢輝影
发布时间:2026-01-01
浏览: 次 Python字符串不可变,需掌握切片(s[start:end:step],左闭右开、负索引、越界安全)、拼接(少量用+,多变量用f-string,大批量用join)和格式化(推荐f-string,次选format,避免%)。
Python字符串是不可变的序列类型,掌握切片、拼接和格式化是日常编码的基础。关键在于理解索引规则、内存行为和不同格式化方式的适用场景。
字符串切片:灵活提取子串
切片语法为 s[start:end:step],左闭右开,支持负索引和步长。不指定时默认 start=0、end=长度、step=1。
- 正向切片:"hello"[1:4] → "ell"(从索引1到3)
- 负索引切片:"python"[:-2] → "pyth"(去掉末尾两个字符)
- 反向与步长:"abcdef"[::-1] → "fedcba"(反转整个字符串)
- 越界安全:"abc"[10:20] 返回空字符串,不会报错
字符串拼接:选对方法提升效率
拼接看似简单,但方式选择影响可读性与性能,尤其在循环中大量拼接时。
- 少量拼接用 + 或 +=:适合变量少、逻辑清晰的场景,如 "Name: " + name + ", Age: " + str(age)
- 多变量推荐 f-string(Python 3.6+):简洁高效,支持表达式,如 f"User {name.upper()} is {age + 1} next year"
- 大批量拼接用 str.join():比循环 += 快得多,如 " ".join(word_list),注意 join 要求元素全为字符串
- 避免在循环中频繁使用 += 拼接长字符串:因字符串不可变,每次都会生成新对象,造成 O(n²) 开销
字符串格式化:从旧到新,按需选用
Python 提供多种格式化方式,兼容性与表达力各不相同。
- % 格式化(类 C 风格):已逐渐淘汰,仅需维护旧代码时接触,如 "%s: %d" % (name, age)
-
str.format():位
置参数 "{} {}".format(a, b) 或命名参数 "{name} is {age}".format(name="Tom", age=25),支持复杂格式如 "{:.2f}".format(3.1415)
- f-string(推荐):运行时求值,支持任意表达式、函数调用甚至条件判断,如 f"{datetime.now():%Y-%m-%d} | {'OK' if ok else 'FAIL'}"
- 格式说明符通用:宽度、对齐(
左、>右、^居中)、填充字符、精度等,如 f"{x:05d}" 补零至5位
字符串操作不复杂但容易忽略细节,比如切片越界不报错、拼接性能陷阱、f-string 中大括号的转义写法(用双大括号表示单个大括号)。熟练后能写出更清晰、更高效的代码。
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Win11怎么关闭边缘滑动手势_Windows11
- Windows的便笺功能如何使用?(桌面备忘技巧)
- Windows11如何设置专注助手_Windows
- Win11任务栏怎么固定应用 Win11将软件图标
- 如何在包含多值的列中精准搜索指定演员?
- Win11怎么修改DNS服务器 Win11设置DN
- c++中如何使用auto关键字_c++11类型推导
- 如何使用Golang实现微服务事件驱动_使用消息总
- Python技术债务管理_长期维护解析【教程】
- Windows蓝屏错误0x0000002C怎么解决
- Mac上的iMovie如何剪辑视频?(新手入门教程
- php错误怎么开启_display_errors与
- Windows10蓝屏代码DPC_WATCHDOG
- php中self::能调用子类重写的方法吗_静态绑
- Win11怎么开启HDR模式_Windows 11
- Python变量绑定机制_引用模型解析【教程】
- Win11怎样安装微信开发者工具_Win11安装开
- Windows 11无法安全删除U盘提示设备正在使
- Win11怎么更改任务栏位置_修改注册表将Win1
- c++协程和线程的区别 c++异步编程模型对比【核
- Win11怎么查看激活状态_查询Windows 1
- Python对象生命周期管理_创建销毁解析【教程】
- c++的static关键字有什么用 静态变量和静态
- 如何使用Golang实现基本类型比较_Golang
- c++中如何使用虚函数实现多态_c++多态性实现原
- Win11无法拖拽文件到任务栏怎么办_Win11开
- Golang如何遍历目录文件_Golang fil
- c# 在高并发下使用反射发射(Reflection
- Win11时间怎么同步到原子钟 Win11高精度时
- Windows蓝屏错误0x00000018怎么处理
- Python字符串处理进阶_切片方法解析【指导】
- 如何使用Golang理解结构体指针方法接收者_Go
- MAC怎么一键隐藏桌面所有图标_MAC极简模式切换
- 如何使用Golang操作指针变量_Golang解引
- 手机php文件怎么变成mp4_安卓苹果打开php转
- Win10怎样安装Word样式库_Win10安装W
- c++20的std::format怎么用 比pri
- 手机php怎么转mp4_手机端php文件转mp4a
- 如何使用Golang实现错误包装与传递_Golan
- php怎么下载安装后无法解析php文件_服务器配置
- 如何使用Golang管理跨项目依赖_Golang多
- Win11怎么开启剪贴板历史记录_Windows1
- Win10系统字体模糊怎么办_Windows10高
- Mac怎么设置鼠标滚动速度_Mac鼠标设置详细参数
- 如何在 Go 中创建包含映射(map)的切片(sl
- Win11怎么查看wifi信号强度_检测Windo
- Win11局域网共享怎么设置 Win11文件夹网络
- PHP 中如何在函数内持久修改引用变量所指向的目标
- 本地php环境打开php文件直接下载_浏览器解析p
- Win11怎么关闭系统透明度_Windows11个

置参数 "{} {}".format(a, b) 或命名参数 "{name} is {age}".format(name="Tom", age=25),支持复杂格式如 "{:.2f}".format(3.1415)
QQ客服