python-format()函數


Python2.6開始,新增了一種格式化字符串的函數format(),它增強了字符串的格式化功能。(官方推薦)

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

format()函數可以接收不限個參數,位置可以不安順序。

 

例子(1)

 

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

 

 

例子(2) 設置參數

print('姓名:{name}, 年齡:{age}'.format(name='irving', age=12))

print('姓名:{0}, 年齡:{1}'.format(22, 'irving'))

# 通過字典設置參數
site = {'name': 'irving', 'age': 22}
print('姓名:{name}, 年齡:{age}'.format(**site))

# 通過列表索引設置參數
my_list = ['irving', 22]
print('姓名:{0[0]}, 年齡:{0[1]}'.format(my_list))

輸出結果:

姓名:irving, 年齡:12
姓名:22, 年齡:irving
姓名:irving, 年齡:22
姓名:irving, 年齡:22

 

例子(3)  傳入對象

#!/usr/bin/python
# -*- coding: UTF-8 -*-
  
class AssignValue(object):
    def __init__(self, value):
        self.value = value
my_value = AssignValue(6)
print('value 為: {0.value}'.format(my_value))  # "0" 是可選的

輸出結果:

value 為: 6

 

 

數字格式化

下表展示了 str.format() 格式化數字的多種方法:

>>> print("{:.2f}".format(3.1415926));
3.14

 

數字 格式 輸出 描述
3.1415926 {:.2f} 3.14 保留小數點后兩位
3.1415926 {:+.2f} +3.14 帶符號保留小數點后兩位
-1 {:+.2f} -1.00 帶符號保留小數點后兩位
2.71828 {:.0f} 3 不帶小數
5 {:0>2d} 05 數字補零 (填充左邊, 寬度為2)
5 {:x<4d} 5xxx 數字補x (填充右邊, 寬度為4)
10 {:x<4d} 10xx 數字補x (填充右邊, 寬度為4)
1000000 {:,} 1,000,000 以逗號分隔的數字格式
0.25 {:.2%} 25.00% 百分比格式,2代表小數點后面保留幾個0
1000000000 {:.2e} 1.00e+09 指數記法
13 {:10d}         13 右對齊 (默認, 寬度為10)
13 {:<10d} 13 左對齊 (寬度為10)
13 {:^10d}     13 中間對齊 (寬度為10)
11
'{:b}'.format(11) '{:d}'.format(11) '{:o}'.format(11) '{:x}'.format(11) '{:#x}'.format(11) '{:#X}'.format(11)
1011 11 13 b 0xb 0XB
進制

 

 

^, <, > 分別是居中、左對齊、右對齊,后面帶寬度, : 號后面帶填充的字符,只能是一個字符,不指定則默認是用空格填充。

+ 表示在正數前顯示 +,負數前顯示 -;  (空格)表示在正數前加空格

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

此外我們可以使用大括號 {} 來轉義大括號,如下實例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
  
print ("{} 對應的位置是 {{0}}".format("runoob"))

輸出結果:

runoob 對應的位置是 {0}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM