我在教自己的Python,看不到這兩個例子之間的巨大差異,除了字符串格式提供的額外格式選項(例如%r)。Python 2.7:%字符串格式與調用變量外的字符串?
name = "Bob"
print "Hi, my name is %s." % name
print "Hi, my name is", name
是否有任何理由,一般爲什麼你更喜歡一個在另一個? 我意識到.format()是現在這樣做的首選方式,但這只是爲了更好地理解Python如何操作。
我在教自己的Python,看不到這兩個例子之間的巨大差異,除了字符串格式提供的額外格式選項(例如%r)。Python 2.7:%字符串格式與調用變量外的字符串?
name = "Bob"
print "Hi, my name is %s." % name
print "Hi, my name is", name
是否有任何理由,一般爲什麼你更喜歡一個在另一個? 我意識到.format()是現在這樣做的首選方式,但這只是爲了更好地理解Python如何操作。
兩個(其沒有其他人似乎是描述)之間的主要區別是這樣的:
print "Hi, my name is %s." % name
這裏,新的字符串被從兩個字符串構成(字符串文字和值爲name
)。插值(%
運算符)是一種您可以在任何地方使用的操作,例如,在變量賦值或函數調用中,而不僅僅是在print
語句中。然後打印這個新鑄造的字符串(然後丟棄,因爲它沒有給出名稱)。
print "Hi, my name is", name
在這裏,兩個字符串是簡單地一個接一個地打印出來的,其間有一個空格。 print
聲明正在做所有的工作。沒有字符串操作被執行並且沒有新的字符串被創建。
它是節目選擇:
1)使用%澄清類型的代碼讀取器,但是對於所使用的每個附加的變量,程序員將需要花費時間修改在兩個地方
2)使用,含蓄%因此讀者將不得不回頭瞭解他的類型。但它很快,如果代碼直觀寫入刪除了大量的維修burdon
所以是的,這是維護保持平衡,維護,可讀性和便利性的選擇。
區別在於逗號是打印語句的一部分,而不是字符串。試圖在別處使用它,例如將一個字符串綁定到一個名字,不會做你想要的。
逗號','運算符在輸出文本中隱式添加空格,但可以使用'%'運算符控制此行爲。 – ZdaR
我複製粘貼你的代碼和兩個輸出是相同的。 –