python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python print() 函数

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

作者:长街与鱼

​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)变量赋值:

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

第一部分:{score}​

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

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

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

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

六、结语

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

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

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

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

您可能感兴趣的文章:
阅读全文