Python

时间:2016-11-20 03:39:55

标签: python-3.x printing

在Python中,

之间的区别是什么
print("Hello "+"There")

print("Hello","There")

结果似乎相同,但我想它们在不同的环境中使用,请你指点一下吗?

您的问候,Ehsan

1 个答案:

答案 0 :(得分:0)

同样的结果,调用打印功能的方式略有不同。

第一个计算一个新字符串,它是两个字符串的串联,然后使用单个参数结果调用print。

第二个打印第一个参数,打印默认分隔符(空格),然后打印第二个参数。可以覆盖分隔符:

>>> print("Hello","There",sep='+')
Hello+There

您也可以看到反汇编的差异。请注意,Python字节代码编译器发现两个常量的串联是一个常量,并且只生成了最终常量的字节代码。

>>> import dis
>>> dis.dis(lambda: print("Hello "+"There"))
  1           0 LOAD_GLOBAL              0 (print)
              3 LOAD_CONST               3 ('Hello There')
              6 CALL_FUNCTION            1 (1 positional, 0 keyword pair)
              9 RETURN_VALUE
>>> dis.dis(lambda: print("Hello","There"))
  1           0 LOAD_GLOBAL              0 (print)
              3 LOAD_CONST               1 ('Hello')
              6 LOAD_CONST               2 ('There')
              9 CALL_FUNCTION            2 (2 positional, 0 keyword pair)
             12 RETURN_VALUE