我對Python很陌生,想知道是否有人可以在引用字符串時解釋字符串格式中的所有不同字母。恩!我已經看到%s以及其他字母,如%f我認爲。我只是想,如果有人能解釋所有不同的字母是什麼意思,以及是否有其他的我錯過了。Python中的所有字符串格式是什麼?
回答
Here's有關Python中字符串格式的綜合指南。本教程涵蓋了Python的2.7,3.2,3.3,3.4和3.5版本,即幾乎所有版本。
您指的是Python的字符串格式化操作,百分比(%
)標誌。您可能知道,您可以使用此運算符將不同的值或名稱插入到字符串中。您所看到的字母,例如您提到的%s
或%f
是運營商的類型轉換器。他們讓你指定你插入什麼類型的值或名稱。該%s
表示是字符串值和%f
代表浮點數
例如,假設你想要寫的確認用於登錄到AA網站,用用戶名印以確認它們是用戶登錄到正確的帳戶。
你可以做這樣的事情:
>>> username = 'Samus'
# login code...
# upon successful login...
>>> print("You have successfully logged in as %s." % (username))
You have successfully logged in as Samus.
如果你試圖用%d
,它代表一個十進制整數同樣的例子,而不是%s
,它會失敗,並TypeError
,爲您指定的值作爲數字插入,但您提供了一個字符串('Samus')。這意味着必須正確地指定在每一個傳遞值
這裏是共同轉換器的短列表:
1%S - 串轉換經由STR()之前的格式化
2.%d - 符號十進制整數
3.%× - 十六進制整數(小寫字母)
4.%E - 指數表示法(用小寫的 'e')
5.%的F - 浮點實數
(對於完整列表和更多選項,請參閱this page)
最後,我應該注意,這是我的理解,現在Python中這種字符串格式化/插入操作的首選方法是使用.format()
方法。
這是非常相似,但不類型轉換運算符%
。相反,如果要在字符串中插入值,則需要放置一個大括號({}
)。
使用上面示例的.format()
方法如下將工作:
>>> username = 'Samus'
# login code...
# upon successful login...
>>> print("You have successfully logged in as {}.".format(username))
You have successfully logged in as Samus.
否類型轉換需要的。如果你通過int
而不是username
,它仍然可以正常工作。
您還可以更好地控制插入值的順序,如下所示。
>>> best_friend = 'Chozo'
>>> worst_enemy = 'Ridley'
# The `0` and `1` represent the index in the `.format()` list which to insert from.
>>> print("I love {0} and hate {1}!".format(best_friend, worst_enemy))
I love Chozo and hate Ridley!
# Reversing the indices in the brackets changes our output without
# having to reorganize the `.format()` list itself, which is convenient.
>>> print("I love {1} and hate {0}!".format(best_friend, worst_enemy))
I love Ridley and hate Chozo!
如果您使用索引值是超出範圍的.format()
列表您提供,如"I love {9} ...
,你會得到熟悉的IndexError: tuple index out of range
,因爲.format()
名單隻有兩個條目,在指數0
和1
。最後,您還可以在大括號內實際使用變量(對象)名稱,以便爲您提供對顯示值順序的特定控制,而不管它們在列表中的順序或索引範圍。例如:
>>> rid = 'Ridley'
>>> cho = 'Chozo'
>>> print("{r} is first, {c} is second!".format(r=rid, c=cho))
Ridley is first, Chozo is second!
# flip them inside the `.format()` assignment, flips output:
>>> print("{r} is first, {c} is second!".format(r=cho, c=rid))
Chozo is first, Ridley is second!
這可以讓您在處理很多值時儘可能的明確。如果您未能爲變量/對象賦值,您將得到一個NameError
或KeyError
,具體取決於您遺漏的部分(對象名稱或插入變量名稱)。
由於您剛剛接觸Python,所以聰明的做法就是使用.format()
方法繼續前進。
- 1. python字符串格式中的冒號是什麼意思?
- 2. 在Python中字符串格式化的好處是什麼?
- 3. 此字符串的格式是什麼?
- 4. 的Python:不是所有的字符串格式化
- 5. 這是什麼字符串格式?
- 6. Python字符串格式化中%s和%d有什麼區別?
- 7. 什麼是字符串在WPF中的字符格式?
- 8. 模式屬性中模式字符串的格式是什麼?
- 9. AIF transfomrmations有效的UTCDateTime類型字符串格式是什麼?
- 10. 的Python:不是字符串格式化
- 11. Python中的%c字符格式是做什麼用的?
- 12. Python:從格式字符串提取所有佔位符
- 13. 在Python格式字符串中,!r表示什麼?
- 14. 什麼是REST API中日期的首選字符串格式
- 15. C中的字符串格式%80 [^,]是什麼意思?
- 16. '%s`中的's`是什麼意思在字符串格式?
- 17. __unicode__的Python字符串格式字符?
- 18. 的Python 2.7:爲什麼字符串格式雙__領域
- 19. Python中的字符串模板:什麼是合法字符?
- 20. Reporting Services [SSRS]表達式的有效樣式格式字符串是什麼?
- 21. Python字符串格式化
- 22. Python字符串格式化
- 23. Python 2.7字符串格式
- 24. Python列表中的格式字符串
- 25. Python中的字符串格式
- 26. 正常字符串和'%s'格式的字符串有什麼區別?
- 27. 這個字符串的合適的NSDateFormatter格式是什麼?
- 28. 什麼%[^ \ n]的意思是在scanf()的格式字符串
- 29. 這個奇怪的格式字符串「{[[[]}」是做什麼的?
- 30. 爲什麼是字符串(格式:「...‘’...‘)不顯示所述第二’...」的說法
閱讀關於它在這裏:https://www.tutorialspoint.com/python/python_strings.htm – Sam
也檢查出https://pyformat.info/,有關新舊方式的很好的信息(但遺憾地錯過了最新的Python 3.6 f-字符串)。 –