Python中%是什麼意思?如何使用?
小白,剛剛自學Python,但這個語言的%號讓我很疑惑不知什麼意思,教材的前期教的代碼幾乎都有這個符號!
&>&>&> 』This int, %5d, was placed in a field of width 5』 % (7)』This int, 7, was placed in a field of width 5』這個就不清楚%在這段程序中起什麼作用,最主要的,不知如何使用它了!
%是個運算符。
對於整數,是取余運算。
對於字元串,是c風格的字元串格式化運算。來源於c語言中經典%d
看上去你問的是字元串中的%,這是一個幾乎所有語言中都通用的一類字元串操作,所以如果你的教材默認了你有其他編程語言基礎的話,可能就不會詳細介紹了。
簡單的說,這是一種將其他變數置入字元串特定位置以生成新字元串的操作,比如說:n = "Aki"
"My name is %s" % n
這段代碼首先定義了一個名為n的變數,內容為Aki。然後下方的字元串中有一個%s,他的含義是「這裡將被替換成一個新的字元串」,用作替換的內容放在字元串後面的%後面,就是那個n。所以最終這個字元串會變成My name is Aki。
字元串中的%後面會附帶一個字母,代表著用來替換的變數的類型,比如說%d代表著你將替換到此處的變數是一個整數,而%s代表著一個字元串。詳細細節可在這裡看到。https://docs.python.org/2/library/stdtypes.html#string-formatting-operations另外,這種操作可以同時將多個變數放進字元串,只需要用括弧把變數們括起來。
下面是一些例子。&>&>&> "www.%s.com"%"zhihu"#字元串
www.zhihu.com
&>&>&> "%dkm"%1990#整數型
1990km
&>&>&> "%s %d %f"%("abc",123,3.21)#多個值
abc 123 3.210000
String Formatting Operations
問的是%操作符(字元串格式化,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個空格
&>&>&>pi=3.1415
&>&>&>print ("pi的值是%s"%pi)
pi的值是3.1415
&>&>&>print ("pi的值是%.8f"%pi)
pi的值是3.14150000
上面的width, precision為兩個整數。我們可以利用*,來動態代入這兩個量。比如:
&>&>&> print("%10.*f" % (4, 1.2))
1.2000
---------其他補充----------
%的另一種用法是數學運算:取餘數(remainder)
&>&>&> 7%2
1
有 代碼例子會更好說明用途
數值運算 1 % 3 是指模運算
字元串操作 abc %s % abc %s類似佔位符 這行代碼的結果可以試一下 看看 就知道是什麼意思了
推薦閱讀:
※Python - lru_cache和singledispatch裝飾器
※python把一個unicode字元串寫入文件為什麼會報錯?
※Python · 裝飾器(Decorator)及其應用
※如何在本地搞一個小程序的伺服器之我沒有vps我也很絕望呀
※Matplotlib的大新聞
TAG:Python |