Python中的print() 函数和格式化操作方法

 更新时间:2025年10月23日 11:43:00   作者:长街与鱼  
​print()​函数和字符串格式化是每个Python开发者必须掌握的基础技能,从简单的%​操作符到强大的f-string,Python一直在进化,让我们的编码工作变得更加愉快和高效,本文介绍Python中的print()函数和格式化操作方法,感兴趣的朋友一起看看吧

一、print() 函数基础

​print()​ 是 Python 中最基础也是最常用的输出函数,但它的功能远不止简单的文本输出。

核心语法:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

关键参数

sep 参数:定义多个输出对象之间的分隔符,默认为空格

print("a", "b", "c", sep="-")  # 输出:a-b-c
print(2024, 9, 30, sep="/")    # 输出:2024/9/30

end 参数:指定输出结束时的字符,默认为换行符

print("Hello", end="!")
print("World")  # 输出:Hello!World

objects:可以接受任意数量的输出对象,包括字符串、数字、列表等

name = "Alice"
age = 25
print("姓名:", name, "年龄:", age)  # 输出:姓名: Alice 年龄: 25

二、三大格式化输出方法

1、百分号(%)格式化:传统方法

这是 Python 最早的字符串格式化方法,虽然现在有更现代的选择,但在维护旧代码时仍然常见。

基本语法

print("格式字符串" % (变量1, 变量2, ...))

常用格式符号:

格式符号功能说明示例输出结果
%s字符串(万能匹配)​"name: %s" % "XY"​name: XY
%d十进制整数​"age: %d" % 18​age: 18
%f浮点数​"weight: %.2f" % 60.5​weight: 60.50
%x十六进制整数​"hex: %x" % 255​hex: ff

还可以加上一些字符来控制输出宽度等格式化需求(详情见下面的format方法)

print("age: %08d" % 18)    # 占8位,不足补0 → age: 00000018
print("num: %8.3f" % 18)   # 占8位,小数3位 → num:  18.000

2、 format() 方法:通用

​format()​ 方法提供了更强大、更灵活的格式化功能,是 Python 2.6 及以上版本的推荐选择。

基础用法:在字符串里需要替换的位置加上{},在字符串后加上.format()​,在format括号里加上要替换的具体值。

# 按默认顺序
print("name: {}, age: {}".format("XY", 18))
# 按位置索引,位置索引默认从0开始
print("age: {1}, name: {0}".format("XY", 18))
# 按名称匹配
print("name: {n}, age: {a}".format(n="XY", a=18))

格式化技巧:

  • 引导符“:”起手,表示要对{}​里的内容进行格式化。
  • 填充:在输出的位数不够时,用指定的符号填充,比如'*'、'-'、'='、'+'​等。
  • 对齐:对指定输出的内容进行对齐输出。
  • 宽度:指定输出的字符串宽度,即在控制台输出的长度。

注意,必须严格按照上面图片的顺序进行格式化。(不需要的格式化操作则跳过)

pi = 3.14159
# 保留2位小数
print("pi: {:.2f}".format(pi))           # pi: 3.14
# 百分比格式
print("rate: {:.1%}".format(0.85))       # rate: 85.0%
# 千分位分隔
print("money: {:,}".format(1234567))     # money: 1,234,567
# 对齐填充
print("title: {:*^20}".format("Python")) # title: *******Python********

简单例题1:

键盘输入字符串s,按要求把输出到屏幕。

格式要求,宽度为20个字符,等号字符“=”填充,居中对齐。如果输入字符串超过20位,则全部输出。
例如:键盘输入字符串s为“PYTHON”,屏幕输出 =======PYTHON=======

s = input("请输入一个字符串:")
print("{:=^20}".format(s)) #按照顺序填入需要的格式化,填充、对齐、宽度。

简单例题2:
键盘输入正整数n,按要求把输出到屏幕.

格式要求,宽度为20个字符,字符“-”填充,右对齐,带千位分隔符。如果输入正整数超过20位,则按照真实长度输出。
例如:键盘输入正整数n为1234, 屏幕输出:---------------1,234

n = eval(input("请输入正整数:")) #注意,input()得到的结果是一个字符串,需要转化成整数
print("{:->20,}".format(n)) #按照顺序填入需要的格式化,填充、对齐、宽度、千位符。

3、 f-string:最优选择

f-string(格式化字符串字面值)是 Python 3.6 引入的新特性,具有简洁的语法和优异的性能。

基本语法:在字符串前加 f 或 F,在大括号中直接嵌入变量或表达式

name = "XY"
age = 18
print(f"name: {name}, age: {age}")  # name: XY, age: 18

进阶:

# 表达式计算
print(f"1+1 = {1+1}")  # 1+1 = 2
# 进制转换
print(f"binary: {age:b}, octal: {age:o}")  # binary: 10010, octal: 22
# 数值格式化
print(f"weight: {60.5:.1f}kg")  # weight: 60.5kg
# 调用函数和方法
text = "hello"
print(f"大写: {text.upper()}")  # 大写: HELLO

三、避坑点

在学习和使用格式化输出时,常会遇到一些典型问题:

1、类型不匹配

# ❌ 错误示例
print("%d" % 3.14)  # 报错:%d 不能直接接收浮点数。%d接收整数,%f接收浮点数。
# ✅ 正确做法
print("%d" % int(3.14))  # 输出:3
print("%.0f" % 3.14)     # 输出:3

2、占位符数量不匹配

# ❌ 错误示例
"{} {}".format("a")  # 报错:占位符数量多于参数
# ✅ 正确做法
"{} {}".format("a", "b")  # 输出:a b

3、f-string 前缀遗漏

# ❌ 错误示例
name = "Alice"
print("name: {name}")  # 输出:name: {name}(没有变量替换)
# ✅ 正确做法
print(f"name: {name}")  # 输出:name: Alice

4、转义大括号

当需要输出字面的大括号时:{{}}​,输出的是{}

print(f"{{name: {name}}}")  # 输出:{name: Alice}

四、方法选择

方法优势劣势适用场景
百分号格式化兼容旧版本功能有限,易出错维护旧代码
format() 方法功能全面,兼容性好语法相对繁琐考试,跨版本项目
f-string简洁高效,支持表达式仅支持 Python 3.6+新项目首选,日常开发
  1. 新项目:选择 f-string,它的简洁性和性能都是最佳的。
  2. 维护旧代码:根据原有代码风格选择相应方法。
  3. 兼容性要求高:使用 format() 方法,它在 Python 2.6+ 和 3.x 中都有良好支持。

五、实用技巧

1. 调试:快速查看变量

# 在变量名前后显示值,便于调试
value = 42
print(f"{value = }")  # 输出:value = 42

2. 多行字符串格式化

name = "Bob"
age = 30
message = f"""
个人信息:
姓名:{name}
年龄:{age}
"""
print(message)

3. 条件表达式在 f-string 中的应用

score = 85
print(f"成绩:{score},{'及格' if score >= 60 else '不及格'}")

(1)变量赋值:

  • 创建一个名为 score​ 的变量
  • 将整数值 85​ 赋给该变量
  • 此时内存中 score​ 的值为 85

(2)f-string 解析,分为两个部分:

第一部分:{score}​

  • 识别到花括号 {}​
  • 查找变量 score​ 的值
  • 将 score​ 的值 85​ 转换为字符串并插入到相应位置{}​

第二部分:{'及格' if score >= 60 else '不及格'}​

  • 这是一个​条件表达式​(三元运算符)
  • 语法格式:值1 if 条件 else 值2​

(3)条件表达式的执行:

  • 条件:score >= 60​ → 85 >= 60​ → True​
  • 选择结果:由于条件为 True​,选择 if​ 前面的值 '及格'​
  • 忽略:else​ 后面的 '不及格'​ 不会被使用

(4)所有的{}​都替换成功,输出到控制台。

print("成绩:85,及格")  #成绩:85,及格

六、结语

​print()​ 函数和字符串格式化是每个 Python 开发者必须掌握的基础技能。从简单的 %​ 操作符到强大的 f-string,Python 一直在进化,让我们的编码工作变得更加愉快和高效。

无论你选择哪种方法,最重要的是保持一致性。在同一个项目中尽量使用同一种格式化风格,这样代码会更易读、更易维护。

你现在更喜欢用哪种格式化方法呢?在实际项目中遇到过什么有趣的格式化场景?欢迎在评论区分享你的经验!

到此这篇关于Python中的print() 函数和格式化操作的文章就介绍到这了,更多相关Python print() 函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python和Perl绘制中国北京跑步地图的方法

    Python和Perl绘制中国北京跑步地图的方法

    当你在一个城市,穿越大街小巷,跑步跑了几千公里之后,一个显而易见的想法是,我到底和之前比快了多少,跑量有何变化,如果能把在这个城市的所有路线全部画出来,会是怎样的景象呢,接下来通过本文给大家介绍Python和Perl绘制中国北京跑步地图的方法,需要的朋友参考下
    2016-03-03
  • Python环境下RAR压缩文件的操作全流程

    Python环境下RAR压缩文件的操作全流程

    在数据密集型应用场景中,RAR格式因其高压缩比、分卷支持及加密功能,成为企业级数据存储与传输的常用格式,本文基于Python生态中的rarfile库,系统阐述RAR文件的全流程操作技术,需要的朋友可以参考下
    2025-11-11
  • 详解python字符串相关str

    详解python字符串相关str

    这篇文章主要为大家介绍了python字符串相关str,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • 浅谈python的dataframe与series的创建方法

    浅谈python的dataframe与series的创建方法

    今天小编就为大家分享一篇浅谈python的dataframe与series的创建方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python Django框架设计模式详解

    Python Django框架设计模式详解

    Django是一个开源的Web应用框架,由Python写成。采用MVC的软件设计模式,主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don’t Repeat Yoursef)
    2021-11-11
  • Python实现在PyPI上发布自定义软件包的方法详解

    Python实现在PyPI上发布自定义软件包的方法详解

    在Python中我们经常使用pip来安装第三方Python软件包,其实我们每个人都可以免费地将自己写的Python包发布到PyPI上。本文我们就将详细介绍如何发布测试包,需要的可以参考一下
    2022-06-06
  • python远控代码的教程详解

    python远控代码的教程详解

    大家远控还在用软件吗,其实几行代码轻松搞定,这篇文章小编就来和大家介绍一下如何使用Python实现远程控制代码,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-12-12
  • 安装pytorch报错torch.cuda.is_available()=false问题的解决过程

    安装pytorch报错torch.cuda.is_available()=false问题的解决过程

    最近想用pytorch,因此装了pytorch,但是碰到了问题,下面这篇文章主要给大家介绍了关于安装pytorch报错torch.cuda.is_available()=false问题的解决过程,需要的朋友可以参考下
    2022-05-05
  • Python3中Sanic中间件的使用

    Python3中Sanic中间件的使用

    Sanic框架中的中间件是一种强大的工具,本文就来介绍Python3中Sanic中间件的使用,具有一定的参考价值,感兴趣的可以了解一下
    2025-01-01
  • python实现维吉尼亚加密法

    python实现维吉尼亚加密法

    这篇文章主要为大家详细介绍了python实现维吉尼亚加密法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03

最新评论