2016-11-20 73 views
0

在Python什麼是什麼是在Python

print("Hello "+"There") 

print("Hello","There") 

結果之間的差異這兩個代碼段之間的區別,

似乎是相同的,但我想他們是在不同的環境中使用,你能請照亮我嗎?

您好,Ehsan

回答

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