上一期我们掌握了input输入函数,实现了程序与用户的双向交互;今天继续Python基础系列——print输出函数的格式化用法。print函数是Python最基础的输出工具,几乎所有程序都会用到它,但很多人只用过最基础的打印功能,忽略了格式化输出的技巧。
简单的print打印,只能输出零散的内容,显得杂乱无章;而格式化输出,能让我们精准控制输出的格式、排版,让结果更清晰、更规范,无论是数据展示、信息汇总,还是程序交互反馈,都能提升整体质感。掌握print格式化的核心用法,能让你的代码输出更具专业性。
📌 什么是print输出格式化?
print函数的核心作用是将内容输出到控制台,而“格式化”就是对输出的内容进行排版、规范——比如指定输出的对齐方式、保留小数位数、拼接变量与文本,让输出结果整齐、易读,避免杂乱。
举个直观的例子:同样是输出用户信息,未格式化的输出杂乱无章,格式化后的输出整齐规范,一眼就能看清核心信息,这就是格式化输出的价值。
# 未格式化输出(杂乱)name = "张三"age = 22score = 95.5print("姓名:", name, "年龄:", age, "成绩:", score)# 输出:姓名: 张三 年龄: 22 成绩: 95.5# 格式化输出(规范)print(f"姓名:{name},年龄:{age}岁,成绩:{score}分")# 输出:姓名:张三,年龄:22岁,成绩:95.5分
🔧 最常用的4种print格式化方法
print格式化有多种实现方式,以下4种最常用,覆盖日常编程90%以上的场景,从简单到复杂逐步递进,按需选择即可。
1. f-string格式化(Python3.6+,首选推荐)
这是最简洁、最直观、最常用的格式化方式,语法简单,可读性强,直接在字符串前加f,变量用{}包裹,即可实现变量与文本的无缝拼接,还能直接在{}内做简单运算。
核心语法:print(f"文本内容{变量名}文本内容")
# 基础用法:拼接变量name = "李四"age = 20print(f"大家好,我是{name},今年{age}岁。")# 输出:大家好,我是李四,今年20岁。# 进阶用法1:保留小数位数(:.nf,n是保留的小数位数)score = 92.345print(f"我的成绩是:{score:.2f}分") # 保留2位小数# 输出:我的成绩是:92.35分(自动四舍五入)# 进阶用法2:在{}内做简单运算num1 = 10num2 = 3print(f"{num1} + {num2} = {num1 + num2}")# 输出:10 + 3 = 13# 进阶用法3:指定对齐方式(<左对齐、>右对齐、^居中对齐,后面跟宽度)print(f"左对齐:{name:<10},右对齐:{age:>5},居中对齐:{score:^10.2f}")# 输出:左对齐:李四 ,右对齐: 20,居中对齐: 92.35
2. format()方法(兼容所有Python版本)
format()方法兼容性强,无需加f前缀,通过{}作为占位符,将变量传入format()中,适合Python3.6以下版本,或需要更复杂格式化的场景。
核心语法:print("文本内容{}文本内容".format(变量名1, 变量名2, ...))
# 基础用法:按顺序占位name = "王五"height = 175.5weight = 65.2print("姓名:{},身高:{}cm,体重:{}kg".format(name, height, weight))# 输出:姓名:王五,身高:175.5cm,体重:65.2kg# 进阶用法1:指定占位顺序(避免变量顺序出错)print("身高:{1}cm,姓名:{0},体重:{2}kg".format(name, height, weight))# 输出:身高:175.5cm,姓名:王五,体重:65.2kg# 进阶用法2:保留小数、指定对齐(与f-string类似)print("体重:{:.1f}kg,身高:{:>6.1f}cm".format(weight, height))# 输出:体重:65.2kg,身高: 175.5cm
3. 百分号(%)格式化
这是Python早期的格式化方式,语法相对繁琐,可读性不如前两种,现在已不推荐优先使用,但在老代码中可能会遇到,了解其基本用法即可。
核心语法:print("文本内容%格式符" % 变量名),常用格式符:%s(字符串)、%d(整数)、%f(浮点数)。
# 基础用法:对应不同类型的变量name = "赵六"age = 23score = 88.9print("姓名:%s,年龄:%d岁,成绩:%f分" % (name, age, score))# 输出:姓名:赵六,年龄:23岁,成绩:88.900000分# 进阶用法:保留小数位数print("成绩:%.1f分" % score) # 保留1位小数# 输出:成绩:88.9分
4. 多变量拼接
直接使用+号拼接文本和变量,适合变量较少、格式简单的场景,无需复杂语法,但需注意变量类型必须统一(字符串与字符串拼接)。
# 拼接字符串变量name = "孙七"hobby = "编程"print("我是" + name + ",我喜欢" + hobby + "。")# 输出:我是孙七,我喜欢编程。# 注意:不同类型变量不能直接用+拼接(需先转换类型)age = 21# print("我今年" + age + "岁") # 报错:字符串与整数不能直接拼接print("我今年" + str(age) + "岁") # 正确:将整数转为字符串再拼接# 输出:我今年21岁
✅ 格式化输出的核心技巧
保留小数位数:无论f-string还是format(),都可用:.nf(n为小数位数),自动四舍五入,适合数值展示(如成绩、体重、金额)。
指定对齐方式:用<、>、^配合宽度(如{name:<10}),适合批量输出信息(如用户列表、数据表格),让排版更整齐。
变量类型适配:f-string和format()会自动适配变量类型,无需手动转换;百分号(%)和+拼接需注意类型统一,避免报错。
换行与空格控制:在字符串中添加\n实现换行,添加空格或指定宽度,控制输出的间距,提升可读性。
# 技巧综合示例:批量输出用户信息(整齐排版)print("=== 用户信息列表 ===")users = [("张三", 22, 95.5), ("李四", 20, 88.0), ("王五", 23, 92.3)]for user in users: name, age, score = user # 居中对齐,保留1位小数,统一排版 print(f"姓名:{name:^6} | 年龄:{age:>3}岁 | 成绩:{score:^6.1f}分")# 输出效果(整齐规范)# === 用户信息列表 ===# 姓名: 张三 | 年龄: 22岁 | 成绩: 95.5 分# 姓名: 李四 | 年龄: 20岁 | 成绩: 88.0 分# 姓名: 王五 | 年龄: 23岁 | 成绩: 92.3 分
❌ 必避的4个print格式化坑
格式化输出看似简单,但在实际使用中,很容易因细节疏忽导致报错或输出格式混乱,这4个坑一定要避开。
坑1:f-string遗漏f前缀:忘记在字符串前加f,直接用{}包裹变量,会被当作普通字符串输出,无法解析变量。
坑2:format()占位符与变量数量不匹配:{}的数量与format()中传入的变量数量不一致,会直接报错。
坑3:不同类型变量直接用+拼接:字符串与整数、浮点数直接用+拼接,会报错,需先将非字符串变量转为字符串。
坑4:保留小数时格式写错:将:.2f写成.2f(遗漏冒号),会导致格式化失败,输出异常。
# 避坑示例(必看)# 坑1:f-string遗漏f前缀(错误)name = "张三"# print("我是{name}") # 输出:我是{name},无法解析变量print(f"我是{name}") # 正确:输出:我是张三# 坑2:占位符与变量数量不匹配(错误)# print("姓名:{},年龄:{}".format(name)) # 报错:缺少一个变量print("姓名:{},年龄:{}".format(name, 22)) # 正确# 坑3:不同类型直接拼接(错误)age = 22# print("我今年" + age + "岁") # 报错print("我今年" + str(age) + "岁") # 正确# 坑4:保留小数格式写错(错误)score = 95.34# print(f"成绩:{score.2f}分") # 报错print(f"成绩:{score:.2f}分") # 正确:输出:成绩:95.34分
📝 核心总结
print格式化核心:规范输出格式,让结果更清晰、更美观,适配不同展示场景;
首选方法:f-string(Python3.6+),简洁直观,支持运算和格式控制,实战最常用;
兼容方法:format(),适配所有Python版本,适合复杂格式化场景;
基础方法:百分号(%)、+拼接,了解即可,按需使用;
避坑关键:牢记f前缀、占位符与变量数量匹配、统一变量类型、正确书写格式语法。
print格式化虽然是基础技巧,但能极大提升代码输出的专业性和可读性。很多人觉得“能输出就行”,但规范的输出的不仅能让自己快速排查问题,也能让他人更易理解你的代码。
AI时代不必会写代码,但一定要看得懂代码;不用精通编程,但一定要懂编程逻辑,读懂每一处细节,才能真正用好AI、掌控代码。