我不明白%s
和%d
是如何工作的。Python字符串格式化中%s和%d有什麼區別?
回答
它們用於格式化字符串。 %s
充當字符串的佔位符,而%d
充當數字的佔位符。它們的關聯值使用%
運算符通過元組傳遞。
name = 'marcog'
number = 42
print '%s %d' % (name, number)
將打印marcog 42
。請注意,名稱是一個字符串(%s),數字是一個整數(十進制爲%d)。
有關詳細信息,請參見http://docs.python.org/library/stdtypes.html#string-formatting-operations。
在Python 3的例子是:
print('%s %d' % (name, number))
它們的格式說明。當你想把你的Python表達式的值包含到字符串中時使用它們,並強制執行特定的格式。
查看Dive into Python的相關詳細介紹。
%s用作要插入格式化字符串的字符串值的佔位符。
%d用作數字或十進制值的佔位符。
這些是佔位符:
例如:'Hi %s I have %d donuts' %('Alice', 42)
這行代碼將取代%s與愛麗絲(STR)和%d與42
輸出:'Hi Alice I have 42 donuts'
大部分時間可以用「+」來實現。爲了深入瞭解您的問題,您可能還需要檢查{}/.format()。這裏有一個例子:Python string formatting: % vs. .format
在此還看到一個谷歌的Python教程視頻@ 40' ,它有一些解釋 https://www.youtube.com/watch?v=tKTZoB2Vjuk
如果你想避免%s或%d的話..
name = 'marcog'
number = 42
print ('my name is',name,'and my age is:', number)
輸出:
my name is marcog and my name is 42
%d
和%s
是佔位符,它們作爲可替換的變量工作。例如,如果創建2個變量
variable_one = "Stackoverflow"
variable_two = 45
您可以使用變量的元組將這些變量賦值給一個字符串中的句子。
variable_3 = "I was searching for an answer in %s and found more than %d answers to my question"
注意%s
適用於字符串和數字或十進制變量%d
工作。
如果打印variable_3
它看起來像這樣
print(variable_3 % (variable_one, variable_two))
我正在尋找在StackOverflow的答案,結果發現超過45個回答我的問題。
%d
和%s
字符串格式化「命令」用於格式化字符串。 %d
用於數字,而%s
用於字符串。
有關示例:
print("%s" % "hi")
和
print("%d" % 34.6)
%d
爲十進制整數
%s
爲通用串或對象和對象的情況下,它將被轉換爲串
考慮下面的代碼
name ='giacomo'
number = 4.3
print('%s %s %d %f %g' % (name, number, number, number, number))
失認沽將
賈科莫4.3 4 4.300000 4.3
,你可以看到%d
將截斷成整數,%s
會保持格式化,%f
將打印爲浮點數並使用%g
通用號碼
明顯
print('%d' % (name))
會產生一個異常;你不能將字符串轉換爲數字
說到其中...
python3.6自帶f-strings
這使得格式化更容易!
現在,如果你的Python版本是大於3.6,你可以用這些可用的方法格式化字符串:
name = "python"
print ("i code with %s" %name) # with help of older method
print ("i code with {0}".format(name)) # with help of format
print (f"i code with {name}") # with help of f-strings
- 1. 正常字符串和'%s'格式的字符串有什麼區別?
- 2. 打印和格式化字符串文字有什麼區別?
- 3. python中的%r,%s和%d有什麼區別?
- 4. Java字符串格式:「%0」和「d%s」
- 5. %s和%c格式說明符之間有什麼區別?
- 6. 格式化時間字符串中%X和%x有什麼區別?
- 7. char * s和char * s有什麼區別?
- 8. s ++和* s ++有什麼區別嗎?
- 9. 在C#中。字符串和字符串有什麼區別?
- 10. golang中的[]字符串和...字符串有什麼區別?
- 11. 正則表達式中的\(\((。+?)\)\)和\(\(\ s *(。+?)\ s * \)\)有什麼區別?
- 12. Javascript中「s」和「e」有什麼區別
- 13. 在Perl中,s/^ \ s + //和s/s + $ //有什麼區別?
- 14. Python字符串格式化{:d} VS%d的浮點數
- 15. '%s`中的's`是什麼意思在字符串格式?
- 16. 這2個字符串格式有什麼區別?
- 17. C字符串和C++字符串有什麼區別?
- 18. 字符串和字符串有什麼區別?
- 19. COM字符串(BSTR)和.NET字符串有什麼區別?
- 20. 初始化字符串時'...'和「...」有什麼區別?
- 21. 字符串和Javascript中的字符數組有什麼區別?
- 22. R中的字符串和字符有什麼區別?
- 23. 當字符串包含「%s」而沒有轉義時,Python字符串格式化
- 24. 什麼是scanf(「%* s」)和scanf(「%* d」)格式標識符?
- 25. Clojure:[D和[Ljava.lang.Double;有什麼區別?
- 26. sudo -s和sudo有什麼區別
- 27. \ s和\ t有什麼區別?
- 28. 字符串格式化進/出用%s
- 29. 兩個字符串有什麼區別?
- 30. 字符串,CString,QString有什麼區別?
將語法是什麼樣子的python3? – binki 2014-09-09 20:34:14
print(「%s%d」%(name,number)) – icarus74 2015-01-06 07:05:03
感謝marcog ... – Daniel 2016-06-21 17:56:13