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; ?>
】
相关推荐
- 如何在Golang中使用闭包_封装变量与函数作用域
- Go语言中CookieJar的持久化机制解析:内存
- Windows10如何更改开机密码_Win10登录
- php本地部署后数据库连接报错_1045acces
- c++如何连接Redis c++ hiredis库
- Win11如何更改任务栏颜色 Win11自定义任务
- PHP主流架构如何做单元测试_工具与流程【详解】
- Golang如何避免指针逃逸_Golang逃逸分析
- Python邮件系统自动化教程_批量发送解析与模板
- Win11怎么更改电脑名称_Windows 11修
- LINUX如何删除用户和用户组_Linux use
- Win11怎么关闭通知消息_屏蔽Windows 1
- 如何使用Golang管理模块版本_Golanggo
- c++怎么使用std::unique实现去重_c+
- 跨文件调用类方法怎么用_php作用域操作符与自动加
- php485函数怎么捕获异常_php485错误处理
- c++中如何使用std::variant_c++1
- 如何使用Golang搭建Web开发环境_快速启动H
- windows如何测试网速_windows系统网络
- c++怎么使用类型萃取type_traits_c+
- mac怎么分屏_MAC双屏显示与分屏操作技巧【指南
- Windows怎样拦截QQ浏览器广告_Window
- Windows任务计划服务异常原因_任务调度失败的
- Win10怎么设置开机密码_Windows10账户
- Win11怎么卸载Photos应用_Win11卸载
- c++ try_emplace用法_c++ map
- 如何在 Go 中创建包含 map 的 slice(
- 如何在Golang中使用container/hea
- Python多进程教程_multiprocessi
- 如何在Golang中定义接口_抽象方法和多态实现
- 使用类变量定义字符串常量时如何实现类型安全的 Li
- Win11如何卸载OneDrive_Win11卸载
- Windows10电脑怎么设置虚拟光驱_Win10
- c++如何实现多态性_c++ 虚函数表原理与动态绑
- Win11怎样安装剪映专业版_Win11安装剪映教
- Windows10任务栏图标变成白色文件_Win1
- php订单日志怎么记录物流_php记录订单物流变更
- Win11怎么退出微软账户_切换Win11为本地账
- Win11怎么设置鼠标宏_Win11鼠标按键自定义
- C++中的constexpr和const有什么区别
- c++ stringstream用法详解_c++字
- Windows10如何更改日期格式_Win10区域
- 如何在Golang中使用replace替换模块_指
- Windows的便笺功能如何使用?(桌面备忘技巧)
- Win11怎么激活Windows10_Win11激
- 如何优化Golang内存分配与GC调度_Golan
- php接口返回数据乱码怎么办_php接口调试编码问
- Win11怎么关闭透明效果_Windows11辅助
- 如何使用Golang实现负载均衡_分发请求到多个服
- Windows怎样关闭开始菜单广告_Windows

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