
本文讲解python中变量赋值与print函数的常见误区,重点说明为何a = print(...)会导致变量存储为none,并提供三种正确实现“根据输入条件打印预设内容”的方法。
在Python中,print() 是一个函数,它的作用是将内容输出到控制台,并返回 None(Python中所有无显式返回值的函数默认返回 None)。因此,当写下:
A = print('Hello world')这段代码会立即执行打印操作(屏幕上显示 Hello world),然后把 print() 的返回值 None 赋给变量 A。后续执行 print(A) 实际上输出的是 None,而非 'Hello world'——这显然不是我们想要的效果。
✅ 正确做法是:先将字符串内容赋值给变量,再按需调用 print():
A = "Hello world" # 存储字符串,不触发打印
test = input("What do you want to do? ") # 建议添加提示文本,提升用户体验
if test == 'print Hello':
print(A) # 此时才真正打印变量内容⚠️ 注意事项:
立即学习“Python免费学习笔记(深入)”;
- Python 3 中 print 是函数,必须使用括号:print(A) ✅,print A ❌(后者是 Python 2 语法,已废弃);
- input() 在 Python 3 中始终返回字符串类型,比较时无需类型转换;
- 避免用 print() 的返回值赋值——它没有实用数据意义。
? 进阶技巧:若希望“变量”本身具备可执行打印行为(即变量代表一个动作),可使用函数对象(如 lambda 或普通函数):
A = lambda: print("Hello world") # A 现在是一个可调用的函数
test = input("What do you want to do? ")
if test == 'print Hello':
A() # 调用函数,真正执行打印这种方式实现了“延迟执行”,赋值时不打印,调用时才打印,适用于需要封装行为的场景。
? 总结:
- A = print(...) → 错误:立即打印 + A 变成 None;
- A = "..." + print(A) → 推荐:清晰、安全、符合直觉;
- A = lambda: print(...) → 进阶:将打印逻辑封装为可复用行为。
始终牢记:赋值操作存储的是表达式的求值结果,而非表达式本身。理解这一点,就能避开大量初学者陷阱。











