news 2026/10/8 6:08:06

Python 字符串拼接与格式化最全教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 字符串拼接与格式化最全教程

本文整理 Python 四种主流字符串拼接/格式化方法:+ 加号拼接、f-string 格式化、% 占位符格式化、format() 格式化,包含完整语法、案例、细节注意点。
重点: format() 格式化 中关键字命名占位

一、+ 加号拼接(基础拼接)

核心规则

  • 直接使用+连接多个字符串
  • 重点:只能拼接字符串类型,数字、浮点数等非字符串类型,必须用str()强制转换

实战代码

name="小李"age=20# 非字符串变量通过 str() 转换后拼接print("姓名:"+name+",年龄:"+str(age))

运行结果

姓名:小李,年龄:20


二、f-string 格式化(推荐、最简)

核心规则

  • 语法:f"字符串{变量/表达式}"
  • 支持直接嵌入变量、运算表达式、格式控制
  • 无需手动类型转换,可读性最强,Python3.6+ 推荐使用

实战代码

name="小李"age=20height=1.73# 支持变量、表达式运算、小数精度控制print(f"姓名:{name},年龄:{age-1},身高:{height:.2f}")

运行结果

姓名:小李,年龄:19,身高: 1.73


三、% 占位符格式化(传统写法)

通过不同占位符匹配对应数据类型,严格校验类型,类型不匹配会直接报错。

1、%s 字符串占位符

适配字符串类型数据

title='大白菜'print('蔬菜%s'%title)

输出:蔬菜大白菜

2、%d 整数占位符

  • 仅支持数字类型,传字符串直接报错
  • 传入浮点数会自动舍弃小数,只保留整数位
total=7print('总价%d元'%total)

输出:总价7元

3、%f 浮点数占位符

  • 仅支持数字类型,传字符串直接报错
  • 传入整数会自动补0展示为浮点数
  • 进阶格式:%m.nf—— 总宽度m位(包含小数点),保留n位小数
price=19.99# 总宽度5位,保留2位小数print('价格为%5.2f'%price)

输出:价格为19.99


四、format() 格式化(通用、功能强大)

str.format()是进阶字符串格式化工具,以{}为占位符,替代繁琐的 % 写法,可读性更高、支持参数复用、适配多场景,是项目常用写法。

写法1:无编号按位置传参(顺序匹配)

{}不写数字,参数按传入顺序依次填充

text="姓名:{},年龄:{}"res=text.format("张三",24)print(res)

输出:姓名:张三,年龄:24

写法2:数字编号占位(参数复用、调整顺序)

通过数字编号指定参数位置,支持同一个参数多次复用

text="{0}今年{1}岁,{0}从事开发工作"res=text.format("小李",26)print(res)

输出:小李今年26岁,小李从事开发工作

写法3:关键字命名占位(最常用、可读性强)

通过参数名精准匹配,无需关注顺序,适合参数较多的场景

text="公司:{company},行业:{industry}"res=text.format(company="阿里云",industry="人工智能")print(res)

输出:公司:阿里云,行业:人工智能

写法4:传入字典批量填充

通过**解包字典,批量匹配占位符,高效填充多组数据

info={"title":"分析师报告","content":"AI行业持续增长"}text="文档类型:{title},内容:{content}"res=text.format(**info)print(res)

输出:文档类型:分析师报告,内容:AI行业持续增长

写法5:对象属性填充

支持直接访问对象属性填充到字符串中,适配面向对象场景

classDoc:def__init__(self):self.type="公司公告"self.msg="完成AI企业并购"d=Doc()res="文件:{doc.type},详情:{doc.msg}".format(doc=d)print(res)

输出:文件:公司公告,详情:完成AI企业并购


五、四种方法优缺点总结

方法优点缺点适用场景
+ 加号拼接简单直观,新手易上手需手动类型转换,多变量拼接繁琐少量简单字符串拼接
f-string语法简洁、无需转义、支持运算格式化、可读性拉满仅 Python3.6+ 支持日常开发、绝大多数场景(首选)
% 占位符语法经典、兼容老旧代码类型校验严格、可读性差、不支持参数复用维护老旧项目
format()功能全面、支持多传参方式、兼容性好语法比f-string稍繁琐多参数、动态填充、兼容低版本Python
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 6:05:35

JSP记账管理系统毕业设计:从环境搭建到答辩避坑全攻略

简介:一份以JSP为核心技术栈的记账管理系统毕业设计完整资料包,面向计算机相关专业、正在准备Java方向毕业设计或课程设计的学生。压缩包内包含项目报告、答辩PPT、完整源代码、数据库脚本及部署视频,覆盖需求分析、系统设计、编码实现、论文…

作者头像 李华
网站建设 2026/10/8 6:04:07

How to Monitor and Tune Open and Cached Cursors in Oracle with TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/8 6:04:07

书霸AI问卷设计:让研究从填表开始

很多人第一次做问卷时,常见的思路是先打开表单工具,再凭经验罗列问题。写到最后才发现:题目看似完整,却没有真正对应研究目标;选项设置不够严谨,后续也难以统计分析。回头复盘会发现,问卷质量从…

作者头像 李华