一、语句与函数的区别
比较点 | 语句(Statement) | 函数(Function) |
定义 | 执行某个动作的指令 | 接受输入,执行逻辑,返回值 |
是否返回值 | 通常没有返回值 | 通常有返回值(即使是 None) |
是否可嵌套 | 不能作为表达式使用 | 可以嵌套在表达式中 |
二、print() 是函数的依据
在 Python 3 中,print 是内置函数
Python 3.x 中,print 明确被设计为一个函数,定义在内置模块中:
print("Hello, world") # 函数调用形式
你可以像操作其他函数一样使用它:
print("a", "b", sep="-") # a-b
还可以传递关键字参数,比如:
- sep:分隔符
- end:末尾换行符
- file:输出流(如输出到文件)
- flush:是否立即刷新缓冲区
例如:
print("hello", end="") # 不换行
可作为表达式使用(Python 3)
因为是函数,print() 可以嵌套在表达式中(尽管这样做没有实际意义):
x = print("hi") # 输出 hi,同时 x 得到 None
print(x) # None
三、与 Python 2 的区别
在 Python 2 中,print 是语句,不是函数:
print "Hello, world" # 不用括号
如果你尝试 x = print "hi" 会报错。
不过,在 Python 2.6 开始,可以通过引入未来模块让 print 表现为函数:
from __future__ import print_function
print("Hello") # 使用函数形式
四、总结
特性 | Python 2 | Python 3 |
print 是 | 语句 | 函数 |
是否带括号 | 否 | 是 |
是否可赋值/嵌套使用 | 否 | 是 |
是否支持关键字参数 | 否 | 是 |
五、实践建议
- 在 Python 3 中始终将 print() 当作函数使用。
- 不要尝试像语句那样省略括号(会报错)。
- 如果你维护的是旧版 Python 2 代码,注意 print 的差异。