0
在Python什麼是什麼是在Python
print("Hello "+"There")
和
print("Hello","There")
結果之間的差異這兩個代碼段之間的區別,
似乎是相同的,但我想他們是在不同的環境中使用,你能請照亮我嗎?
您好,Ehsan
在Python什麼是什麼是在Python
print("Hello "+"There")
和
print("Hello","There")
結果之間的差異這兩個代碼段之間的區別,
似乎是相同的,但我想他們是在不同的環境中使用,你能請照亮我嗎?
您好,Ehsan
同樣的結果,調用打印函數的方式稍有不同。
第一個計算一個新字符串,它是兩個字符串的串聯,然後用單個參數結果調用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