Python格式化字符串
阿新 • • 發佈:2018-05-22
yesterday cti day IT blank objects print AC erl 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 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. 數值的格式化
(1) %f 格式符選項對應一個十進制浮點數,不指定精度時打印 6 位小數。
(2) 使用包含“.2”精度修正符的 %f 格式符選項將只打印 2 位小數。
(3) 您甚至可以混合使用各種修正符。添加 + 修正符用於在數值之前顯示一個正號或負號。註意“.2”精度修正符仍舊在它原來的位置,用於只打印 2 位小數。
歡迎閱讀上海python培訓
《【上海python培訓】在Python中一切皆對象》
《【上海python培訓】笨辦法學習Python系列之Python註釋和#號》
《Python函數聲明以及與其他編程語言數據類型的比較》
《【上海python培訓】Python是什麽樣的?我適合學Python嗎?》
Python格式化字符串