在Python中,
之间的区别是什么
print("Hello "+"There")
和
print("Hello","There")
结果似乎相同,但我想它们在不同的环境中使用,请你指点一下吗?
您的问候,Ehsan
答案 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