文章目录
- 单引号 / 双引号 / 三引号均可 # 单引号、双引号无区别 print(“Hello Python!”) # 输出:Hello Python! print(‘Python 入门教程’) # 输出:Python 入门教程 # 三引号支持多行字符串 print(“””这是第一行 这是第二行 这是多行字符串输出”””)
- # 输出数字 print(123) # 输出:123 print(3.14159) # 输出:3.14159 # 输出变量 name = “CSDN博主” print(name) # 输出:CSDN博主 # 输出表达式结果 a = 10 b = 20 print(a + b) # 输出:30(直接计算表达式并输出结果)
- 当print()传入多个参数时,参数之间会默认用空格分隔,无需手动添加空格。 示例: # 多字符串参数 print(“哈”, “基”, “米”) # 输出:哈 基 米(默认空格分隔) # 混合类型参数(字符串+变量+数字) name = “小明” age = 20 print(“姓名:”, name, “年龄:”, age) # 输出:姓名: 小明 年龄: 20
- 如果直接将多个字符串字面量(用引号包裹的内容)相邻写在print()中,无需使用+号,Python 会自动将它们拼接成一个字符串。 示例: # 单引号、双引号混合相邻,自动拼接 print(“123″”456″‘789’) # 输出:123456789(无分隔符,直接拼接) # 注意:变量不能直接相邻拼接,会报错! str1 = “abc” str2 = “def” # print(str1 str2) # 报错:SyntaxError(变量必须用+号或逗号连接) print(str1 + str2) # 正确:输出abcdef(用+号拼接变量)
- 用法 示例 输出结果 核心区别 多参数(逗号分隔) print("a", "b", 123) a b 123 不同类型参数可混传,默认空格分隔 字符串自动拼接 print("a""b""123") ab123 仅支持字符串字面量,无分隔符直接拼接
- str.format() 格式化方法,用 { } 作为占位符,通过 .format() 填充,支持多种参数格式。
- name = “Bob” age = 20 print(“My name is {}, and I am {} years old.”.format(name,age)) # My name is Bob, and I am 20 years old.
- 位置参数:{0} 、{1} 指定顺序 print(“My name is {1}, and I am {0} years old.”.format(20,”Bob”)) # My name is Bob, and I am 20 years old. 关键字参数:{name}、{age} 直接使用变量名 print(“My name is {name}, and I am {age} years old.”.format(name=”Charlie”, age=35)) # My name is Charlie, and I am 35 years old. 格式化数值:控制小数位数 格式语法:{数值:.nf}(n 是要保留的小数位数,f 表示浮点数格式),自动四舍五入,不足位数补 0,多余位数截断(四舍五入规则)。 print(“The value is {:.2f}”.format(3.14159)) # 保留两位小数 # 输出:The value is 3.14 print(“保留3位小数(不足补0):{:.3f}”.format(5.2)) # 输出:保留3位小数(不足补0):5.200 print(“整数转 2 位小数格式:{:.2f}”.format(10)) # 输出:整数转 2 位小数格式:10.00
- 在字符串前加 f ,直接在 {} 里插入变量,简洁高效,可读性强,是Python 3.6+的官方推荐方式。
- name = “Eve” age = 22 print(f”My name is {name}, and I am {age} years old.”) # My name is Eve, and I am 22 years old.
- height = 1.724 print(f”My height is {height:.2f} meters.”) # 保留两位小数 # My height is 1.72 meters.
- age = 22 print(f”In 5 years, I will be {age + 5} years old.”) # In 5 years, I will be 27 years old.
- name = “Jack” age = 21 print(f”{name=} {age=}”) # 输出: name=’Jack’ age=21
- print() 函数中 file 参数默认值为 sys.stdout,将内容输出到控制台,但可通过 file 参数指定文件对象,将内容直接写入文件,而不输出在控制台。 示例: # 1. 打开文件(如果不存在则创建,存在则覆盖) # w 表示写入模式(覆盖) with open(“output.txt”, “w”, encoding=”utf-8″) as f: # 输出到文件 文件对象f即为output.txt文件 print(“这是写入文件的内容”, file=f) print(“Python print()函数教程”, file=f) # 验证:读取文件内容 # r 表示只读模式 with open(“output.txt”, “r”, encoding=”utf-8″) as f: content = f.read() # 读取文件对象f的全部内容 print(content) # 控制台输出文件内容 # 这是写入文件的内容 # Python print()函数教程 说明: open(文件名, 打开模式, encoding="utf-8") 会帮我们 “打开 / 创建” 一个文件,并返回一个可操作的 “文件对象”(比如用变量f接收)。 file参数要求传入的是「文件对象」,不是单纯的文件名(比如不能写file="output.txt",会报错)。
- 在默认情况下,print()输出会先存入缓冲区,等满足条件后再批量输出(遇到换行符、缓冲区满、程序结束等),这样减少 I/O 操作次数,提升程序效率。flush=True可强制立即刷新缓冲区,无视默认触发条件,立即输出,不等待,适用于实时输出场景(如进度条、实时日志)。
- import time # 不使用flush(默认缓冲,可能一次性输出) print(“加载中”, end=””) time.sleep(2) # 暂停2秒 print(“完成”) # 2秒后一次性输出:加载中完成 实际效果: 暂停 2 秒后,才一次性显示「加载中… 完成」—— 因为 “加载中…” 被存到了缓冲区,没立刻输出,直到第二个print()触发了缓冲区刷新,才一起显示。
- import time # 使用flush=True(强制立刻输出) print(“加载中…”, end=””, flush=True) # 立刻输出“加载中…”,不缓冲 time.sleep(2) # 暂停2秒,此时“加载中…”已经显示在控制台了 print(“完成”) 实际效果: 立刻显示「加载中…」,暂停 2 秒后,在后面追加「完成」
- flush参数是布尔值(只有True和False两个值),不能写flush=1或flush="True"(会报错); 不用所有场景都加flush=True:默认缓冲是为了提升效率,只有需要 “实时输出” 时才用,否则会增加 I/O 操作,降低程序速度; flush和end常一起用:因为end=""会取消默认的换行符n(而n会触发缓冲区刷新),所以需要flush=True来强制立刻输出。 建议在终端环境中运行:直接在IDE(如PyCharm)中运行,默认情况可能与flush刷新效果一致,IDE通常会自动设置-u标志(无缓冲模式),所以默认会立即显示"加载中…",然后等待2秒后显示"完成"
目录
- 前言
- 一、print () 函数核心作用
- 二、基础用法:直接输出单个内容
- 示例 1:输出字符串
- 示例 2:输出数字、变量或表达式结果
- 三、关键特性:多参数输出与字符串自动拼接
- 1. 多参数输出:默认空格分隔
- 2. 字符串自动拼接:相邻字面量无需加号
- 两者区别总结:
- 四、自定义分隔符:sep 参数
- 五、控制结尾字符:end 参数
- 六、字符串中插入变量
- 1、格式化:str.format() 方法
- 基础用法:
- 进阶用法:
- 2、最推荐:f-string(Python 3.6+)
- 基础用法:
- 格式化数值:
- 表达式计算:
- 变量名+值输出 (调试神器)
- 七、进阶用法:file 与 flush 参数
- 1. file 参数:输出到文件(而非控制台)
- 2. flush 参数:强制刷新缓冲区
- 示例(默认):
- 示例(flush刷新):
- 注意:
- 八、总结
- 本文总结核心要点:
在 Python 编程中,print()函数是最基础、最常用的输出工具,无论是调试代码、查看变量值,还是展示程序结果,都离不开它。但很多初学者只掌握了print("Hello World")这种简单用法,却不知道它还有诸多灵活的参数和实用技巧。本文将从基础到进阶,全面拆解print()函数的用法,结合实例帮你彻底掌握!
print()函数的核心功能是将指定内容输出到控制台(默认)或其他指定位置(如文件),是 Python 中用于 “信息展示” 的核心工具。
最简洁的用法的是直接输出单个字符串、数字、变量等。
语法格式:
print(输出内容)
单引号 / 双引号 / 三引号均可
# 单引号、双引号无区别
print("Hello Python!") # 输出:Hello Python!
print('Python 入门教程') # 输出:Python 入门教程
# 三引号支持多行字符串
print("""这是第一行
这是第二行
这是多行字符串输出""")
# 输出数字
print(123) # 输出:123
print(3.14159) # 输出:3.14159
# 输出变量
name = "CSDN博主"
print(name) # 输出:CSDN博主
# 输出表达式结果
a = 10
b = 20
print(a + b) # 输出:30(直接计算表达式并输出结果)
print()函数支持同时传入多个参数(用逗号分隔),也支持相邻字符串字面量自动拼接,这是初学者容易混淆但非常实用的特性。
当print()传入多个参数时,参数之间会默认用空格分隔,无需手动添加空格。
示例:
# 多字符串参数
print("哈", "基", "米") # 输出:哈 基 米(默认空格分隔)
# 混合类型参数(字符串+变量+数字)
name = "小明"
age = 20
print("姓名:", name, "年龄:", age) # 输出:姓名: 小明 年龄: 20
如果直接将多个字符串字面量(用引号包裹的内容)相邻写在print()中,无需使用+号,Python 会自动将它们拼接成一个字符串。
示例:
# 单引号、双引号混合相邻,自动拼接
print("123""456"'789') # 输出:123456789(无分隔符,直接拼接)
# 注意:变量不能直接相邻拼接,会报错!
str1 = "abc"
str2 = "def"
# print(str1 str2) # 报错:SyntaxError(变量必须用+号或逗号连接)
print(str1 + str2) # 正确:输出abcdef(用+号拼接变量)
| 用法 | 示例 | 输出结果 | 核心区别 |
|---|---|---|---|
| 多参数(逗号分隔) | print("a", "b", 123) |
a b 123 |
不同类型参数可混传,默认空格分隔 |
| 字符串自动拼接 | print("a""b""123") |
ab123 |
仅支持字符串字面量,无分隔符直接拼接 |
默认情况下,多参数输出用空格分隔,但print()的sep参数允许我们自定义分隔符(如逗号、横线、波浪线等),sep 参数必须放在所有位置参数之后。
语法格式:
print(参数1, 参数2, 参数3, ..., sep="自定义分隔符")
示例:
# 用波浪线分隔
print("南", "北", "绿", "豆", sep="~") # 输出:南~北~绿~豆
# 用逗号+空格分隔(模拟CSV格式)
print("姓名", "年龄", "城市", sep=", ") # 输出:姓名, 年龄, 城市
# 用空字符串分隔(等同于字符串拼接,但支持多类型参数)
print("Hello", "Python", sep="") # 输出:HelloPython
# 用横线分隔
print("2025", "11", "29", sep="-") # 输出:2025-11-29
注意事项:
-
sep只能接收字符串类型的值,不能是数字(如sep=123会报错); -
sep必须放在最后一个位置参数之后(比如print(a, b, sep="~")正确,print(sep="~", a, b)报错)。
默认情况下,每个print()函数执行后都会自动换行(结尾添加n换行符),但end参数允许我们自定义结尾字符,实现 “不换行输出” 或 “自定义结尾符号”。
语法格式:
print(输出内容, end="自定义结尾字符")
示例:
# 1. 自定义结尾为冒号(替代默认换行)
print("我是", end=":")
print("奶龙") # 输出:我是:奶龙(两行输出合并为一行)
# 2. 结尾添加空格(多print输出不换行且空格分隔)
print("Python", end=" ")
print("Java", end=" ")
print("C++") # 输出:Python Java C++
# 3. 结尾添加换行符(默认行为,可显式指定)
print("第一行", end="n")
print("第二行") # 输出:
# 第一行
# 第二行
# 4. 结尾添加特殊符号
print("加载中", end="...")
print("完成") # 输出:加载中...完成
str.format() 格式化方法,用 { } 作为占位符,通过 .format() 填充,支持多种参数格式。
name = "Bob"
age = 20
print("My name is {}, and I am {} years old.".format(name,age))
# My name is Bob, and I am 20 years old.
位置参数:{0} 、{1} 指定顺序
print("My name is {1}, and I am {0} years old.".format(20,"Bob"))
# My name is Bob, and I am 20 years old.
关键字参数:{name}、{age} 直接使用变量名
print("My name is {name}, and I am {age} years old.".format(name="Charlie", age=35))
# My name is Charlie, and I am 35 years old.
格式化数值:控制小数位数
格式语法:{数值:.nf}(n 是要保留的小数位数,f 表示浮点数格式),自动四舍五入,不足位数补 0,多余位数截断(四舍五入规则)。
print("The value is {:.2f}".format(3.14159)) # 保留两位小数
# 输出:The value is 3.14
print("保留3位小数(不足补0):{:.3f}".format(5.2))
# 输出:保留3位小数(不足补0):5.200
print("整数转 2 位小数格式:{:.2f}".format(10))
# 输出:整数转 2 位小数格式:10.00
在字符串前加 f ,直接在 {} 里插入变量,简洁高效,可读性强,是Python 3.6+的官方推荐方式。
name = "Eve"
age = 22
print(f"My name is {name}, and I am {age} years old.")
# My name is Eve, and I am 22 years old.
height = 1.724
print(f"My height is {height:.2f} meters.") # 保留两位小数
# My height is 1.72 meters.
age = 22
print(f"In 5 years, I will be {age + 5} years old.")
# In 5 years, I will be 27 years old.
name = "Jack"
age = 21
print(f"{name=} {age=}") # 输出: name='Jack' age=21
除了基础的输出控制,print()还有两个实用的进阶参数:file(指定输出目标)和flush(强制刷新缓冲区)。
print() 函数中 file 参数默认值为 sys.stdout,将内容输出到控制台,但可通过 file 参数指定文件对象,将内容直接写入文件,而不输出在控制台。
示例:
# 1. 打开文件(如果不存在则创建,存在则覆盖)
# w 表示写入模式(覆盖)
with open("output.txt", "w", encoding="utf-8") as f:
# 输出到文件 文件对象f即为output.txt文件
print("这是写入文件的内容", file=f)
print("Python print()函数教程", file=f)
# 验证:读取文件内容
# r 表示只读模式
with open("output.txt", "r", encoding="utf-8") as f:
content = f.read() # 读取文件对象f的全部内容
print(content) # 控制台输出文件内容
# 这是写入文件的内容
# Python print()函数教程
说明:
-
open(文件名, 打开模式, encoding="utf-8")会帮我们 “打开 / 创建” 一个文件,并返回一个可操作的 “文件对象”(比如用变量f接收)。 -
file参数要求传入的是「文件对象」,不是单纯的文件名(比如不能写file="output.txt",会报错)。
在默认情况下,print()输出会先存入缓冲区,等满足条件后再批量输出(遇到换行符、缓冲区满、程序结束等),这样减少 I/O 操作次数,提升程序效率。flush=True可强制立即刷新缓冲区,无视默认触发条件,立即输出,不等待,适用于实时输出场景(如进度条、实时日志)。
import time
# 不使用flush(默认缓冲,可能一次性输出)
print("加载中", end="")
time.sleep(2) # 暂停2秒
print("完成") # 2秒后一次性输出:加载中完成
实际效果:
暂停 2 秒后,才一次性显示「加载中… 完成」—— 因为 “加载中…” 被存到了缓冲区,没立刻输出,直到第二个print()触发了缓冲区刷新,才一起显示。
import time
# 使用flush=True(强制立刻输出)
print("加载中...", end="", flush=True) # 立刻输出“加载中...”,不缓冲
time.sleep(2) # 暂停2秒,此时“加载中...”已经显示在控制台了
print("完成")
实际效果:
立刻显示「加载中…」,暂停 2 秒后,在后面追加「完成」
-
flush参数是布尔值(只有True和False两个值),不能写flush=1或flush="True"(会报错);
-
不用所有场景都加flush=True:默认缓冲是为了提升效率,只有需要 “实时输出” 时才用,否则会增加 I/O 操作,降低程序速度;
-
flush和end常一起用:因为end=""会取消默认的换行符n(而n会触发缓冲区刷新),所以需要flush=True来强制立刻输出。
-
建议在终端环境中运行:直接在IDE(如PyCharm)中运行,默认情况可能与flush刷新效果一致,IDE通常会自动设置-u标志(无缓冲模式),所以默认会立即显示"加载中…",然后等待2秒后显示"完成"
flush参数是布尔值(只有True和False两个值),不能写flush=1或flush="True"(会报错);
不用所有场景都加flush=True:默认缓冲是为了提升效率,只有需要 “实时输出” 时才用,否则会增加 I/O 操作,降低程序速度;
flush和end常一起用:因为end=""会取消默认的换行符n(而n会触发缓冲区刷新),所以需要flush=True来强制立刻输出。
建议在终端环境中运行:直接在IDE(如PyCharm)中运行,默认情况可能与flush刷新效果一致,IDE通常会自动设置-u标志(无缓冲模式),所以默认会立即显示"加载中…",然后等待2秒后显示"完成"
print()函数看似简单,但其灵活的参数(sep、end、file等)能满足大部分输出场景。
-
基础用法:输出字符串、数字、变量、表达式,支持多行字符串;
-
多参数输出:默认空格分隔,支持混合类型;
-
字符串自动拼接:相邻字面量无需 + 号,直接合并;
-
自定义控制:sep改分隔符,end改结尾字符;
-
字符串格式化:推荐的f-string方式,直接在{}中插入变量,简洁高效。
-
进阶用法:file输出到文件,flush强制实时刷新。
基础用法:输出字符串、数字、变量、表达式,支持多行字符串;
多参数输出:默认空格分隔,支持混合类型;
字符串自动拼接:相邻字面量无需 + 号,直接合并;
自定义控制:sep改分隔符,end改结尾字符;
字符串格式化:推荐的f-string方式,直接在{}中插入变量,简洁高效。
进阶用法:file输出到文件,flush强制实时刷新。
掌握这些用法后,你可以更灵活地使用print()函数,无论是日常调试还是程序交互展示,都能游刃有余。
到此这篇关于Python print()函数的用法举例详讲的文章就介绍到这了,更多相关Python print()函数用法内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
您可能感兴趣的文章:
- python3的print()函数的用法图文讲解
- Python中print()函数的用法详情
- python print()函数的end参数和sep参数的用法说明
- Python如何使用print()函数输出格式化字符串
- python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
- Python中print()函数使用实例详解
- python中的print()函数end=' '的使用及说明
- Python中的print() 函数和格式化操作方法