1. 程式人生 > >Python字串格式化 (%佔位操作符)

Python字串格式化 (%佔位操作符)

在許多程式語言中都包含有格式化字串的功能,比如C和Fortran語言中的格式化輸入輸出。Python中內建有對字串進行格式化的操作 %。

模板

格式化字串時,Python使用一個字串作為模板。模板中有格式符,這些格式符為真實值預留位置,並說明真實數值應該呈現的格式。Python用一個tuple將多個值傳遞給模板,每個值對應一個格式符。

比如下面的例子:

print("I'm %s. I'm %d year old" % ('Vamei', 99))

上面的例子中,

"I'm %s. I'm %d year old" 為我們的模板。%s為第一個格式符,表示一個字串。%d為第二個格式符,表示一個整數。('Vamei', 99)的兩個元素'Vamei'和99為替換%s和%d的真實值。 
在模板和tuple之間,有一個%號分隔,它代表了格式化操作。

整個"I'm %s. I'm %d year old" % ('Vamei', 99) 實際上構成一個字串表示式。我們可以像一個正常的字串那樣,將它賦值給某個變數。比如:

a = "I'm %s. I'm %d year old" % ('Vamei', 99)
print(a)

我們還可以用詞典來傳遞真實值。如下:

print("I'm %(name)s. I'm %(age)d year old" % {'name':'Vamei', 'age':99})

可以看到,我們對兩個格式符進行了命名。命名使用()括起來。每個命名對應詞典的一個key。

格式符

格式符為真實值預留位置,並控制顯示的格式。格式符可以包含有一個型別碼,用以控制顯示的型別,如下:

%s    字串 (採用str()的顯示)

%r    字串 (採用repr()的顯示)

%c    單個字元

%b    二進位制整數

%d    十進位制整數

%i    十進位制整數

%o    八進位制整數

%x    十六進位制整數

%e    指數 (基底寫為e)

%E    指數 (基底寫為E)

%f    浮點數

%F    浮點數,與上相同

%g    指數(e)或浮點數 (根據顯示長度)

%G    指數(E)或浮點數 (根據顯示長度)

%%    字元"%"

可以用如下的方式,對格式進行進一步的控制:

%[(name)][flags][width].[precision]typecode

(name)為命名

flags可以有+,-,' '或0。+表示右對齊。-表示左對齊。' '為一個空格,表示在正數的左側填充一個空格,從而與負數對齊。0表示使用0填充。

width表示顯示寬度

precision表示小數點後精度

比如:

print("%+10x" % 10)
print("%04d" % 5)
print("%6.3f" % 2.3)

上面的width, precision為兩個整數。我們可以利用*,來動態代入這兩個量。比如:

print("%.*f" % (4, 1.2))

Python實際上用4來替換*。所以實際的模板為"%.4f"。

Python中內建的%操作符可用於格式化字串操作,控制字串的呈現格式。Python中還有其他的格式化字串的方式,但%操作符的使用是最方便的。

另外python還有一個更強大的字串處理函式  str.format()

語法

它通過{}和:來代替%。
“對映”示例

通過位置

1 2 3 4 5 6 In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.format('kzc',18) Out[2]: 'kzc,18' In [3]: '{1},{0},{1}'.format('kzc',18) Out[3]: '18,kzc,18'

字串的format函式可以接受不限個引數,位置可以不按順序,可以不用或者用多次,不過2.6不能為空{},2.7才可以。
通過關鍵字引數

1 2 In [5]: '{name},{age}'.format(age=18,name='kzc') Out[5]: 'kzc,18'

通過物件屬性

相關推薦

python字串格式化% 操作符 {}操作符 python字串格式化 %操作符 {}操作符---總結 Python字串格式化 (%佔位操作符)

python字串格式化 %操作符 {}操作符---總結 Python字串格式化 (%佔位操作符) 在許多程式語言中都包含有格式化字串的功能,比如C和Fortran語言中的格式化輸入輸出。Python中內建有對字串進行格式化的操作 %。 模板 格式化字串時,Python使用一個字串作為模板。模

Python字串格式化 (%佔位操作符)

在許多程式語言中都包含有格式化字串的功能,比如C和Fortran語言中的格式化輸入輸出。Python中內建有對字串進行格式化的操作 %。 模板 格式化字串時,Python使用一個字串作為模板。模板中有格式符,這些格式符為真實值預留位置,並說明真實數值應該呈

python字串格式化%和{}操作符

python字串格式化 %操作符 {}操作符---總結 Python字串格式化 (%佔位操作符) 在許多程式語言中都包含有格式化字串的功能,比如C和Fortran語言中的格式化輸入輸出。Python中內建有對字串進行格式化的操作 %。 模板 格式化字串時,Python使用一個字串作為

python 中的字串轉義序列、字串格式化操作符、關鍵字總結

1.字串轉義序列 轉義字元 描述 \(在行尾時) 續行符 \\ 反斜槓符號 \' 單引號 \" 雙引號 \a 響鈴 \b

Python 字串-格式化-format()格式化操作符 : %

字串-格式化1.format()--方法接受位置引數和關鍵字引數,二者均傳遞到一個叫做replacement欄位。而replacement欄位在字串內由大括號 { } 表示。位置引數:name = '{0}80後,{1},{2}'.format('今晚','主持人','王自健

[基礎]-python字串格式化輸出

如果將那個定義說的通俗一些,字串格式化化,就是要先制定一個模板,在這個模板中某個或者某幾個地方留出空位來,然後在那些空位填上字串。那麼,那些空位,需要用一個符號來表示,這個符號通常被叫做佔位符(僅僅是佔據著那個位置,並不是輸出的內容)。   >>> "I li

Python字串格式化快速入門例項(自3.7官方文件)

Python字串格式化例子 Shawn python3.7 文件: https://docs.python.org/3/library/string.html#formatstrings 完整功能介紹見官方文件. 本文可用於快速查詢Python字串格

python字串格式化之format

用法:   它通過{}和:來代替傳統%方式 1、使用位置引數 要點:從以下例子可以看出位置引數不受順序約束,且可以為{},只要format裡有相對應的引數值即可,引數索引從0開,傳入位置引數列表可用*列表 >>> li = ['hoho',18] >>> 'm

購物小票——Python字串格式化練習

格式化字串一般用於一些格式化輸出,我們來看一段例子,利用列印輸出一個購物小票。是不是會讓大家想起第一次學寫程式碼,列印三角形,直角三角形等等。其實學習本就是從簡到難,循序漸進的。 #!/usr/bin/python #coding :utf-8 from string

三.Python字串格式化 % format

 Python字串格式化  %  format #8.格式化 # %格式化 # %S 字串 #s="I am %s age is %s"%("tom","18") # %d 整數 #s="my age is %d"%(18)

python 字串格式化

python 可以通過string.format() 函式產生一個格式化的字串。string中含的 { 和 } 內部的東西是格式。大括號外面的字元原樣進入format返回的字串裡,而大括號的語法是這樣:{format內的引數位置:位寬及補足辦法\} 例子1 :     st

python 字串格式化—format

Python2.6 開始,新增了一種格式化字串的函式 str.format()。使用起來簡單方便,不會遇到使用%時候格式的選擇問題。 按照引數預設順序 >>> "yesday is {

Python字串格式化和集合

#!/usr/bin/env python # -*- coding:utf-8 -*- #format字串格式化 tpl = "i am {name}, age {age}, really {name}".format(name="seven", age=18) prin

python字串格式化中的百分號的轉義字元是雙寫百分號

舉兩個例子: 1. 要執行的shell命令列是 ./ffmpeg -r 30 -f image2 -i ./input/320/%d.jpg -vcodec libx264 ./output/320.h264 這裡的ffmpeg命令列字串中有個%s.h264需要用後面的r

python字串格式化方法 format函式的使用

python從2.6開始支援format,新的更加容易讀懂的字串格式化方法, 從原來的% 模式變成新的可讀性更強的 花括號宣告{}、用於渲染前的引數引用宣告, 花括號裡可以用數字代表引用引數的序號, 或者 變數名直接引用。 從format引數引入的變數名 、 冒號:、 字元位數宣告、

Python - 字串格式化詳解(%、format)

Python在字串格式化的兩種方式 % format   %,關於整數的輸出 %o:oct 八進位制 %d:dec 十進位制 %x:hex 十六進位制 print("整數:%d,%d,%d" % (1, 22.22, 33)) print("整數不足5位,左邊補空格 %5d " %

一文秒懂!Python字串格式化之format方法詳解

format是字串內嵌的一個方法,用於格式化字串。以大括號`{}`來標明被替換的字串,一定程度上與`%`目的一致。但在某些方面更加的方便 ## 1、基本用法 **1、按照{}的順序依次匹配括號中的值** ```python s = "{} is a {}".format('Tom', 'Boy')

Python %操作符 字串格式化

%操作符(字串格式化,string formatting),說明如下: %[(name)][flags][width].[precision]typecode (name)為命名 flags可以有+,-,' '或0。+表示右對齊。-表示左對齊

python的2種字串格式化輸出

 字串格式化程式碼(typecode)     法一: %格式使用下面的格式 %[(name)] [flags] [width][.precision] typecode (name)輸出字典的value使用,這裡的name是字典的key(實際指定時,必須有外面的

第4章:介紹python物件型別/4.1 python的核心資料型別/4.2 字串/4.2.4 字串格式化字串編輯HTML或者XML語法、使用正則表示式

字串格式化 %s 方式格式化: >>> "%s,abc,%s" %('123','456') '123,abc,456' {數字}方式格式化: >>> "{0},abc,{1}".format('123','456') '123,a