Python入门问题:print语句间逗号为何无法抑制换行输出?
根本原因
这是 Python 2 和 Python 3 中 print 语法差异导致的:
- 你参考的《Python Programming》中的规则适用于 Python 2:Python 2 中
print是独立语句,在语句末尾追加逗号即可抑制输出末尾的默认换行符,让多个print语句的输出拼接在同一行。 - 你当前运行代码的环境是 Python 3:Python 3 中
print被重构为内置函数,你写的print ("Mom the food was good:"),里的逗号不属于print函数的调用参数,仅属于表达式层面的多余符号,实际执行逻辑是:先调用print函数输出内容(默认末尾加换行),再生成一个值为(None,)的元组(不会产生任何输出效果),完全不会抑制换行。
适配 Python 3 的修复写法
如果要实现预期的单行输出,可选两种方案:
- 显式指定
print函数的end参数,把默认的换行符替换为空字符串:
print("Mom the food was good:", end="") print("Yummy" * 3)
- 将两个输出内容作为参数传入同一个
print函数,指定分隔符为空字符串:
print("Mom the food was good:", "Yummy" * 3, sep="")
两种写法的输出均为 Mom the food was good:YummyYummyYummy,符合预期。
内容的提问来源于stack exchange,提问作者Sree Rao
相关产品推荐
相关产品推荐

