為什麼在Python 2.7中自動打印括號?


Answers

這裡我們在UTF-8方面有一些有趣的副作用。

>> greek = dict( dog="σκύλος", cat="γάτα" )
>> print greek['dog'], greek['cat']
σκύλος γάτα
>> print (greek['dog'], greek['cat'])
('\xcf\x83\xce\xba\xcf\x8d\xce\xbb\xce\xbf\xcf\x82', '\xce\xb3\xce\xac\xcf\x84\xce\xb1')

最後一次打印是具有十六進製字節值的元組。

Question

在Python 2.7中,以下內容都會執行相同的操作

print("Hello, World!") # Prints "Hello, World!"

print "Hello, World!" # Prints "Hello, World!"

但以下不會

print("Hello,", "World!") # Prints the tuple: ("Hello,", "World!")

print "Hello,", "World!" # Prints the words "Hello, World!"

在Python 3.x括號中是強制性的,實質上是一個函數,但是在2.7中,兩者都會有不同的結果。 我還有什麼知道關於在Python 2.7中print




這一切都非常簡單,與向前或向後兼容性無關。

在版本3之前的所有Python版本中, print語句的一般形式是:

print expr1, expr2, ... exprn

(依次評估每個表達式,將其轉換為一個字符串並在它們之間顯示一個空格。)

但請記住,將括號放在表達式上仍然是相同的表達方式。

所以你也可以這樣寫:

print (expr1), (expr2), ... (expr3)

這與調用函數無關。