用途一:%操作符作爲轉換說明符(字符串格式化,string formatting),說明如下:
%[(name)][flags][width].[precision]typecode
- (name)爲命名
- flags可以有+,-,’ ‘或0。+表示右對齊。-表示左對齊。’ '爲一個空格,表示在正數的左側填充一個空格,從而與負數對齊。0表示使用0填充
- width表示顯示寬度
- precision表示小數點後精度
以下是類型碼:
- %s 字符串 (採用str()的顯示)
- %r 字符串 (採用repr()的顯示)
- %c 單個字符%b 二進制整數
- %d 十進制整數
- %i 十進制整數
- %o 八進制整數
- %x 十六進制整數
- %e 指數 (基底寫爲e)
- %E 指數 (基底寫爲E)
- %f 浮點數
- %F 浮點數,與上相同
- %g 指數(e)或浮點數 (根據顯示長度)
- %G 指數(E)或浮點數 (根據顯示長度)
- %% 字符"%"
舉例:
>>> print("%6.3f" % 2.3)
2.300
# 第一個"%"後面的內容爲顯示的格式說明,6爲顯示寬度,3爲小數點位數,f爲浮點數類型
# 第二個"%"後面爲顯示的內容來源,輸出結果右對齊,2.300長度爲5,故前面有一空格
>>> print("%+10x" % 10)
+a
# x爲表示16進制,顯示寬度爲10,前面有8個空格
>>>print("%-5x" % -10)
-a
# "%-5x" 負號爲左對齊,顯示寬度爲5,故-a後面有3個空格
上面的width, precision爲兩個整數。我們可以利用*,來動態代入這兩個量。比如:
>>> print("%10.*f" % (4, 1.2))
1.2000
具體的:
字符串中的%,是一個幾乎所有語言中都通用的一類字符串操作,簡單的說,這是一種將其他變量置入字符串特定位置以生成新字符串的操作,比如說:
n = "Jack"
"My name is %s" % n
說明:
這段代碼首先定義了一個名爲n的變量,內容爲Jack。然後下方的字符串中有一個%s,他的含義是“這裏將被替換成一個新的字符串”,用作替換的內容放在字符串後面的%後面,就是那個n。所以最終這個字符串會變成My name is Jack。字符串中的%後面會附帶一個字母,代表着用來替換的變量的類型,比如說%d代表着你將替換到此處的變量是一個整數,而%s代表着一個字符串。
另外,這種操作可以同時將多個變量放進字符串,只需要用括號把變量們括起來。
下面是一些例子。
>>> "www.%s.com"%"zhihu" #字符串
'www.zhihu.com'
>>> "%dkm"%1990 #整數型
'1990km'
>>> "%s %d %f"%("abc",123,3.21) #多個值
'abc 123 3.210000'
>>> print("%.0f"%1236.8) # %.0f表示小數點後數爲0個
1237
用途二:數學運算:取餘數(remainder):
>>> 7%2
1