登录
首页 >  文章 >  python教程

Python字符串切片拼接与格式化技巧

时间:2026-02-09 11:09:31 101浏览 收藏

最近发现不少小伙伴都对文章很感兴趣,所以今天继续给大家介绍文章相关的知识,本文《Python字符串切片拼接格式化详解》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

Python字符串不可变,需掌握切片(s[start:end:step],左闭右开、负索引、越界安全)、拼接(少量用+,多变量用f-string,大批量用join)和格式化(推荐f-string,次选format,避免%)。

Python字符串操作教程_切片拼接与格式化详解

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 中大括号的转义写法(用双大括号表示单个大括号)。熟练后能写出更清晰、更高效的代码。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

前往漫画官网入口并下载 ➜
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>