08.18 Python系列(17)——format 格式化函數

Python2.6 開始,新增了一種格式化字符串的函數 str.format()

,它增強了字符串格式化的功能。

當然,format()函數也能對數字進行格式化處理。

基本語法是通過 {}: 來代替以前的 %

format 函數可以接受不限個參數,位置可以不按順序。

1.通過位置

>>>"{} {}".format("hello", "world") # 不設置指定位置,按默認順序

'hello world'

>>> "{0} {1}".format("hello", "world") # 設置指定位置

'hello world'

>>> "{1} {0} {1}".format("hello", "world") # 設置指定位置

'world hello world'

Python系列(17)——format 格式化函數

2.通過關鍵字等方式

#通過關鍵字

print("名字:{name}, 地址 {url}".format(name="python學習", url="https://www.python.org/"))

# 通過字典設置參數

site = {"name": "python學習", "url": "https://www.python.org/"}

print("網站名:{name}, 地址 {url}".format(**site))

# 通過列表索引設置參數

my_list = ['python學習', 'https://www.python.org/']

print("網站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必須的

Python系列(17)——format 格式化函數

3.特殊符號結合使用

^, <, > 分別是居中、左對齊、右對齊,後面帶寬度,

: 號後面帶填充的字符,只能是一個字符,不指定則默認是用空格填充。

+ 表示在正數前顯示 +,負數前顯示 -

(空格)表示在正數前加空格

b、d、o、x 分別是二進制、十進制、八進制、十六進制

此外我們可以使用大括號 {}

來轉義大括號,

print('{:^14}'.format('python')) #居中對齊

print('{:>14}'.format('python')) #右對齊

print('{:<14}'.format('python')) #左對齊

print('{:*<14}'.format('python'))

print('{:&>14}'.format('python'))

Python系列(17)——format 格式化函數

精度和類型f精度常和f一起使用

print('{:.1f}'.format(4.234324525254))

print('{:.4f}'.format(4.1))

Python系列(17)——format 格式化函數

進制轉化,b o d x 分別表示二、八、十、十六進制

b、d、o、x 分別是二進制、十進制、八進制、十六進制。

print('{:b}'.format(250))

print('{:o}'.format(250))

print('{:d}'.format(250))

print('{:x}'.format(250))

Python系列(17)——format 格式化函數

千分位分隔符,這種情況只針對與數字

print('{:,}'.format(100000000))

print('{:,}'.format(235445.234235))

Python系列(17)——format 格式化函數

還有很多其他的數字的格式化用法,可參照下圖對其進行了解:

Python系列(17)——format 格式化函數

下面是網站上找的不錯的強化使用的例子,如有興趣,可以看看,增加記憶~~

舉例

>>> 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

以下是補充

簡單的說,這是一種將其他變量置入字符串特定位置以生成新字符串的操作,比如說:

>>> n = "Python"

>>> "My name is %s" % n

'My name is Python'

這段代碼首先定義了一個名為 n 的變量,內容為 Python。然後下方的字符串中有一個 %s,他的含義是“這裡將被替換成一個新的字符串”,用作替換的內容放在字符串後面的%後面,就是那個 n。所以最終這個字符串會變成 My name is Python。


老鐵們,大佬們,今天就給大家介紹到這裡啦~~有興趣的可以加關注或點贊轉發給朋友喲~【愛他(她)就讓他(她)去搬磚吧】

Python系列(17)——format 格式化函數

敬請期待~~你我一同進步!!!有任何問題皆可留言詢問~~謝各位大佬關注!!

Python系列(17)——format 格式化函數


分享到:


相關文章: