Python 支持格式化字元串的輸出 。儘管這樣可能會用到非常複雜的表達式,但最基本的用法是將一個值插入到一個有字元串格式符 %s 的字元串中。上海python培訓-上海尚學堂編輯寫作。人工智慧時代,Python先行! Python vs. C: 格式化 字元串 在 Python 中,字元串格式化使 ...
Python 支持格式化字元串的輸出 。儘管這樣可能會用到非常複雜的表達式,但最基本的用法是將一個值插入到一個有字元串格式符 %s 的字元串中。上海python培訓-上海尚學堂編輯寫作。
人工智慧時代,Python先行!
Python vs. C: 格式化 字元串 在 Python 中,字元串格式化使用與 C 中 sprintf 函數一樣的語法。(大家還記得C語言中sprintf嗎?不記得可以問百度)
Example 1. 字元串的格式化 >>> k = "uid" >>> v = "sa" >>> "%s=%s" % (k, v) (1) 'uid=sa'
(1) 整個表達式的值為一個字元串。第一個 %s 被變數 k 的值替換;第二個 %s被 v 的值替換。字元串中的所有其它字元 (在這個例子中,是等號) 按原樣列印輸出。
註意 (k, v) 是一個 tuple。我說過它們對某些東西有用。您可能一直在想,做了這麼多工作只不過是為了做簡單的字元串連接。您想的不錯,只不過字元串格式化不只是連接。它甚至不僅僅是格式化。它也是 強制類型轉換。
Example 2. 字元串格式化與字元串連接的比較
>>> uid = "sa" >>> pwd = "secret" >>> print pwd + " is not a good password for " + uid (1) secret is not a good password for sa >>> print "%s is not a good password for %s" % (pwd, uid) (2) secret is not a good password for sa >>> userCount = 6 >>> print "Users connected: %d" % (userCount, ) (3) (4) Users connected: 6 >>> print "Users connected: " + userCount (5) Traceback (innermost last): File "<interactive input>", line 1, in ? TypeError: cannot concatenate 'str' and 'int' objects
(1) + 是字元串連接操作符。
(2) 在這個簡單例子中,字元串格式化實現與連接一樣的結果。
(3) (userCount, ) 是一個只包含一個元素的 tuple。是的,語法有一點奇怪,但是使用它的理由就是:顯示地指出它是一個 tuple,而不是其他。實際上,當定義一個 list、tuple 或 dictionary 時,您可以總是在最後一個元素後面跟上一個逗號,但是當定義一個只包含一個元素的 tuple 時逗號是必須的。如果省略逗號,Python 不會知道 (userCount) 究竟是一個只包含一個元素的tuple 還是變數 userCount 的值。
(4) 字元串格式化通過將 %s 替換成 %d 即可處理整數。
(5) 試圖將一個字元串同一個非字元串連接會引發一個異常。與字元串格式化不同,字元串連接只能在被連接的每一個都是字元串時起作用。如同 printf 在 C 中的作用,Python 中的字元串格式化是一把瑞士軍刀。它有豐富的選項,不同的格式化格式符和可選的修正符可用於不同的數據類型。
Example 3. 數值的格式化 >>> print "Today's stock price: %f" % 50.4625 (1) 50.462500 >>> print "Today's stock price: %.2f" % 50.4625 (2) 50.46 >>> print "Change since yesterday: %+.2f" % 1.5 (3) +1.50
(1) %f 格式符選項對應一個十進位浮點數,不指定精度時列印 6 位小數。
(2) 使用包含“.2”精度修正符的 %f 格式符選項將只列印 2 位小數。
(3) 您甚至可以混合使用各種修正符。添加 + 修正符用於在數值之前顯示一個正號或負號。註意“.2”精度修正符仍舊在它原來的位置,用於只列印 2 位小數。
歡迎閱讀上海python培訓文章,獲取更多內容推薦
《【上海python培訓】笨辦法學習Python系列之Python註釋和#號》
《【上海python培訓】Python是什麼樣的?我適合學Python嗎?》