Python print语句输出括号和引号问题排查
问题:Python print输出带括号和引号,怎么解决?
你遇到的这个情况其实特别常见——你写的是Python 3风格的代码,但实际运行时用了Python 2环境!
问题原因
在Python 2里,print是一个语句,不是函数。当你给它加上括号的时候,它会把括号里的内容当成一个元组来处理,直接打印这个元组的字符串表示,所以就出现了你看到的带括号和引号的输出:
('Password set saved on file:', '20180531-1719__password_set.txt')
而在Python 3里,print是标准函数,必须加括号,它会自动把多个参数用空格分隔输出,也就是你预期的效果:
Password set saved on file: 20180531-1719__password_set.txt
解决方案
给你两个实用的解决办法:
- 直接用Python 3运行脚本
既然你本来想使用Python 3.6,那直接用对应版本的命令启动脚本就行,比如:
(如果是Windows环境,可能需要用python3 pmake.pypy -3 pmake.py,具体取决于你的Python环境配置) - 修改代码兼容Python 2(如果需要保留对Python 2的支持)
如果你还要让脚本在Python 2里也能正常运行,可以在脚本的最开头加上一行:
这行代码会让Python 2把from __future__ import print_functionprint当作函数来处理,你的原有代码写法就能正常输出预期格式。当然,你也可以改成Python 2的原生print语句写法:
但这种写法在Python 3里会报错,所以更推荐用print "Password set saved on file:", ps_file_namefrom __future__ import print_function来做跨版本兼容。
内容的提问来源于stack exchange,提问作者Jason 'Slingshot' Miller
相关产品推荐
相关产品推荐

