【问题标题】:Difference between print string with parenthesis and without [duplicate]带括号和不带括号的打印字符串之间的区别[重复]
【发布时间】:2019-01-31 21:28:35
【问题描述】:

在 Python 2.7(交互模式)中,两者:

print("Hey Joe")

和:

print "Hey Joe"

给出输出:

"Hey Joe"

有什么区别?什么时候用前者,什么时候用后者?

谢谢

【问题讨论】:

  • print "Hey Joe" 在 python3 中会引发语法错误。你在 python2 上吗?
  • 没有区别。一个带括号的字符串仍然只是一个字符串。
  • 使用from __future__ import print_function,然后它只是一个函数(与parens一起使用),就像在Python 3中一样。但是你到底为什么还在2?
  • Python 3 于 2008 年发布,2 的最终生命周期是 2020 年 1 月 1 日——即十一个月后。
  • 一个叫打印语句,另一个叫打印函数。 Python 3 引入了打印功能,因为打印确实是一个功能:)

标签: python python-2.7


【解决方案1】:

有什么区别?

一般print 'something'称为打印语句,print("something")称为打印函数。打印功能已通过Python 3 引入。除了查看基本用法之外,您不会注意到任何区别。不过,你可以找到更多here

什么时候用前者,什么时候用后者?

如果你想让你的代码同时兼容 Python 2.7 和 Python 3 而不是你应该使用 print 函数,使用 Python 2 和 Python 3 导入它是安全的,它只对 Python 2 有影响。

from __future__ import print_function

【讨论】:

  • 在 Python 2 上,除非您使用from __future__ import print_function 显式关闭打印语句,否则print("something") 仍在使用打印语句。这不是打印功能,当print(1, 2) 打印一个元组而print(1, file=whatever) 解析失败时,您可以很容易地看到。
  • 你的意思是如果你想在 Python 2 上使用 print 函数总是导入它?
  • 从技术上讲,它是一个禁用打印语句的编译器指令,而不是实际导入打印函数 - 打印函数始终存在,但由于语句的存在而无法访问。不过,是的,请使用from __future__ import print_function
  • @user2357112 tnx 进行解释。我不知道它的内部是如何运作的。
猜你喜欢
  • 2011-11-27
  • 2012-05-05
  • 2023-03-19
  • 2021-06-29
  • 2017-08-16
  • 1970-01-01
  • 2018-09-28
相关资源
最近更新 更多