Python 3.9.6环境下print()使用sep、end参数报语法错误求助
print() 传入sep/end参数触发语法错误排查
你写的两段代码本身是完全符合Python 3语法规范的,在标准Python 3环境下运行不会报错:
- 测试sep参数的代码:
print("John","Sam","Michael",sep="-") # 预期正确输出:John-Sam-Michael
- 测试end参数的代码:
print("John","Sam","Michael",end="-") # 预期正确输出:John-Sam-Michael- (输出结束后不自动换行)
报错核心原因
你当前实际执行代码的解释器是Python 2,而非你安装的Python 3.9.6。
Python 2中print是内置语句而非函数,你写的print(xxx, sep="-")会被解释器识别为「尝试打印一个元组对象」,而元组内不支持sep="-"这类关键字参数赋值写法,因此会直接抛出语法错误。
排查&修复步骤
- 先确认当前运行环境的实际版本:在你运行报错代码的同一个终端/IDE交互窗口执行以下代码,查看输出的版本号:
import sys print(sys.version)
如果输出版本号为2.x开头,即可确认是Python版本环境错配问题。
- 终端运行脚本时:不要使用
python 你的脚本文件名.py的调用方式,替换为python3 你的脚本文件名.py。多数类Unix系统(macOS、Linux)默认将python命令指向Python 2,python3命令才指向安装的Python 3版本。 - IDE(VS Code、PyCharm等)中运行时:检查项目配置中选中的Python解释器路径,手动切换到你本地安装的Python 3.9.6对应的可执行文件,不要选择系统自带的Python 2路径。
- 临时兼容方案(不推荐长期使用):如果必须在Python 2环境运行相关代码,可在脚本第一行添加
from __future__ import print_function,导入Python 3风格的print函数支持。由于Python 2已停止官方维护多年,还是建议优先切换到Python 3环境运行代码。
内容的提问来源于stack exchange,提问作者Geetu Sethi
相关产品推荐
相关产品推荐

