
本文详解python中print()函数的返回值特性,纠正将print()调用结果赋值给变量的常见误区,并提供三种正确实现方式:字符串存储、函数封装及lambda表达式,帮助开发者准确控制输出时机。
在Python中,print()是一个执行型函数——它负责向控制台输出内容,但自身不返回可复用的值,而是始终返回None。这是初学者极易混淆的关键点。例如以下代码:
A = print('Hello world')
print(type(A)) # 输出:
print(repr(A)) # 输出: None 这段代码会立即打印 Hello world,同时将 None 赋值给变量 A。因此后续 if test == 'print Hello': print(A) 实际输出的是 None,而非预期的 "Hello world"。
✅ 正确做法一:用变量存储字符串(推荐)
若目标是“根据输入条件决定是否显示某段文本”,应将文本内容本身(字符串)赋值给变量:
A = "Hello world" # 存储字符串,不触发打印
test = input("What do you want to do? ")
if test == "print Hello":
print(A) # 此时才真正执行打印✅ 正确做法二:用函数封装打印逻辑
若需延迟执行打印动作(例如多次调用或作为回调),可将print()封装为普通函数:
def print_hello():
print("Hello world")
A = print_hello # 注意:无括号!只赋值函数对象,不调用
test = input("What do you want to do? ")
if test == "print Hello":
A() # 显式调用,此时才打印✅ 正确做法三:使用lambda创建匿名函数(简洁场景适用)
适用于逻辑简单、只需一行定义的情况:
A = lambda: print("Hello world") # 定义但不执行
test = input("What do you want to do? ")
if test == "print Hello":
A() # 调用触发打印⚠️ 重要注意事项:
- Python 3 中 print() 是函数,必须加括号(如 print(A)),写成 print A 会报 SyntaxError;
- Python 2 已于2020年正式停止维护,强烈建议使用 Python 3;
- 变量名 A 缺乏语义,生产代码中请使用见名知义的名称(如 welcome_message 或 print_hello_func);
- 若需支持更多命令(如 'print Bye'),建议改用字典映射或 match-case(Python 3.10+)提升可维护性。
掌握 print() 的副作用本质与返回值行为,是写出可预测、易调试Python代码的基础一步。
立即学习“Python免费学习笔记(深入)”;











