pin_drop当前位置:知识文库 ❯ 图文
Python print()函数
概述
print()函数是Python中最常用的内置函数之一,用于将信息输出到控制台或其他流中。虽然使用简单,但print()函数提供了丰富的参数来控制输出格式。本节将详细介绍print()函数的各种用法,包括基本输出、多参数输出、分隔符和结束符设置、格式化输出以及输出到文件等。
基本输出
print()函数最简单的用法就是输出一个字符串或值:
代码示例
print("Hello World")
print(100)
print(3.14)
print(True)输出:
代码示例
Hello World
100
3.14
True输出变量
代码示例
name = "Alice"
age = 25
print(name)
print(age)多参数输出
print()函数可以同时输出多个值,默认用空格分隔:
代码示例
name = "Alice"
age = 25
print("姓名:", name, "年龄:", age)输出:
代码示例
姓名: Alice 年龄: 25输出不同类型
代码示例
print("整数:", 42, "浮点数:", 3.14, "布尔:", True)输出:
代码示例
整数: 42 浮点数: 3.14 布尔: Truesep参数
sep参数用于指定多个输出值之间的分隔符,默认为空格。
自定义分隔符
代码示例
print("2024", "01", "15", sep="-")
print("hello", "world", sep=" ")
print("A", "B", "C", sep="")
print("北京", "上海", "广州", sep=" → ")输出:
代码示例
2024-01-15
hello world
ABC
北京 → 上海 → 广州使用换行符作为分隔符
代码示例
print("第一行", "第二行", "第三行", sep="\n")输出:
代码示例
第一行
第二行
第三行end参数
end参数用于指定输出结束后的字符,默认为换行符\n。
不换行输出
代码示例
print("Hello", end="")
print(" World")输出:
代码示例
Hello World自定义结束符
代码示例
for i in range(5):
print(i, end=" ")
print()输出:
代码示例
0 1 2 3 4 使用特殊结束符
代码示例
print("加载中", end="...")
print("完成")
print("步骤1", end=" >> ")
print("步骤2", end=" >> ")
print("完成")输出:
代码示例
加载中...完成
步骤1 >> 步骤2 >> 完成格式化输出
Python提供了多种格式化输出的方式。
f-string(推荐)
Python 3.6+引入的格式化字符串,在字符串前加f,使用{}嵌入表达式:
代码示例
name = "Alice"
age = 25
score = 95.678
print(f"姓名: {name}, 年龄: {age}")
print(f"成绩: {score:.2f}")
print(f"10 + 20 = {10 + 20}")
print(f"{'居中':^20}")
print(f"{'左对齐':<20}")
print(f"{'右对齐':>20}")输出:
代码示例
姓名: Alice, 年龄: 25
成绩: 95.68
10 + 20 = 30
居中
左对齐
右对齐format()方法
代码示例
name = "Alice"
age = 25
print("姓名: {}, 年龄: {}".format(name, age))
print("姓名: {0}, 年龄: {1}, 重复: {0}".format(name, age))
print("姓名: {name}, 年龄: {age}".format(name="Bob", age=30))%格式化(旧式)
代码示例
name = "Alice"
age = 25
score = 95.678
print("姓名: %s, 年龄: %d" % (name, age))
print("成绩: %.2f" % score)
print("十六进制: %x" % 255)格式化对比
常用格式化符号
输出到文件
print()函数的file参数可以将输出重定向到文件。
写入文件
代码示例
with open("output.txt", "w", encoding="utf-8") as f:
print("这是第一行", file=f)
print("这是第二行", file=f)
print("这是第三行", file=f)追加到文件
代码示例
with open("output.txt", "a", encoding="utf-8") as f:
print("追加的内容", file=f)同时输出到控制台和文件
代码示例
import sys
def print_both(text, file_obj):
print(text)
print(text, file=file_obj)
with open("log.txt", "w", encoding="utf-8") as f:
print_both("程序开始运行", f)
print_both("正在处理数据...", f)
print_both("程序运行结束", f)代码示例
示例1:进度条模拟
代码示例
import time
for i in range(1, 11):
percent = i * 10
bar = "█" * i + "░" * (10 - i)
print(f"\r进度: [{bar}] {percent}%", end="")
time.sleep(0.3)
print()示例2:表格输出
代码示例
print(f"{'姓名':<10}{'语文':>6}{'数学':>6}{'英语':>6}{'平均':>8}")
print("-" * 36)
print(f"{'张三':<10}{'92':>6}{'88':>6}{'95':>6}{'91.7':>8}")
print(f"{'李四':<10}{'85':>6}{'96':>6}{'89':>6}{'90.0':>8}")
print(f"{'王五':<10}{'78':>6}{'90':>6}{'92':>6}{'86.7':>8}")示例3:格式化数字
代码示例
num = 1234567.8912
print(f"原始: {num}")
print(f"两位小数: {num:.2f}")
print(f"千分位: {num:,.2f}")
print(f"科学计数: {num:.4e}")
print(f"百分比: {0.856:.1%}")
print(f"十六进制: {255:#x}")
print(f"二进制: {255:#b}")
print(f"八进制: {255:#o}")注意事项
print默认换行:每次调用
print()默认会在末尾添加换行符,如需不换行请设置end=""。
sep和end参数:这两个参数只在使用多参数输出时才有明显效果,注意区分。
f-string性能最优:在三种格式化方式中,f-string不仅语法最简洁,性能也最好。
文件编码:输出到文件时,建议指定
encoding="utf-8"以避免中文乱码。
flush参数:
print()的flush参数默认为False,在需要实时输出(如进度条)时应设为True。
小结
本节我们学习了:
-
基本输出:使用
print()输出字符串、数字和变量 -
多参数输出:同时输出多个值,默认空格分隔
-
sep参数:自定义输出值之间的分隔符
-
end参数:自定义输出结束符,控制是否换行
-
格式化输出:f-string、format()和%三种方式
-
输出到文件:使用
file参数将输出重定向到文件
print()函数虽然简单,但掌握其全部参数和格式化技巧,能让你的输出更加灵活和专业。
练习题
练习1
使用print()函数输出以下格式的学生成绩单:
代码示例
================================
学生成绩报告
================================
姓名: 张三
语文: 92 数学: 88 英语: 95
平均分: 91.67
================================练习2
编写程序,使用print()的sep和end参数,在一行中输出1到10的数字,用|分隔,最后输出一个换行。输出效果如下:
代码示例
1|2|3|4|5|6|7|8|9|10常见问题
print()函数如何输出不换行?
设置end参数为空字符串即可,例如print("Hello", end="")。默认情况下print会在末尾添加换行符\n,将end设为空字符串就可以取消换行效果。
sep和end参数有什么区别?
sep参数控制多个输出值之间的分隔符,默认为空格;end参数控制输出结束后的字符,默认为换行符。sep作用于多个参数之间,end作用于整个输出末尾。
f-string、format()和%格式化应该选择哪种?
推荐使用f-string(Python 3.6+)。f-string语法最简洁、可读性最强,且性能最优。format()适合需要兼容旧版本Python的场景,%格式化已不推荐使用。
如何使用print()将内容输出到文件?
使用file参数将输出重定向到文件对象,例如print("内容", file=f),其中f是通过open()打开的文件对象。建议指定encoding="utf-8"以避免中文乱码。
print()的flush参数有什么作用?
flush参数默认为False,表示输出会先缓存再写入。在需要实时输出的场景(如进度条、日志)时,应设为True,这样可以立即将内容显示到控制台,而不是等待缓冲区满。
本文涉及AI创作
内容由AI创作,请仔细甄别