天天看點

Python格式化輸出(format)格式化輸出(format)

格式化輸出(format)

1.基本用法

"hello {}".format("python") # 引用一個參數       傳字元串
# 輸出:hello python

"hello {}".format()                        # 傳數字
# 輸出:hello 1024

"hello {}".format([, , , ])                # 傳清單
# 輸出:hello [1, 2, 3, 4]

"hello {}".format((, , , ))                # 傳元組
# 輸出:hello (1, 2, 3, 4)

"hello {}".format({"name": "chenkia", "age": })    # 傳字典
# 輸出:hello {'name': 'chenkia', 'age': 18}

"hello {}".format({"name", "chenkai", "name", "akai"})    # 傳集合
# 輸出:hello {'chenkai', 'akai', 'name'}
           

Python3.6版本之後的新寫法

str = python

print(f"hello {str}" )  # 引用一個變量 

輸出:hello python
           

其它參數選項

字元串的參數使用{NUM}進行表示,0, 表示第一個參數,1, 表示第二個參數, 以後順次遞加;

使用”:”, 指定代表元素需要的操作, 如”:.3”小數點三位, “:8”占8個字元空間等;

還可以添加特定的字母, 如:

‘b’ - 二進制. 将數字以2為基數進行輸出.

‘c’ - 字元. 在列印之前将整數轉換成對應的Unicode字元串.

‘d’ - 十進制整數. 将數字以10為基數進行輸出.

‘o’ - 八進制. 将數字以8為基數進行輸出.

‘x’ - 十六進制. 将數字以16為基數進行輸出, 9以上的位數用小寫字母.

‘e’ - 幂符号. 用科學計數法列印數字, 用’e’表示幂.

‘g’ - 一般格式. 将數值以fixed-point格式輸出. 當數值特别大的時候, 用幂形式列印.

‘n’ - 數字. 當值為整數時和’d’相同, 值為浮點數時和’g’相同. 不同的是它會根據區域設定插入數字分隔符.

‘%’ - 百分數. 将數值乘以100然後以fixed-point(‘f’)格式列印, 值後面會有一個百分号.

2.傳入多個參數

"My name is {name}, I am {age} years old".format(name="chenkai", age=) # 别名替換

"My name is {0}, I am {1} years old".format("chenkai", )

"My name is {name}, I am {age} years old".format_map({"name": "chenkai", "age": })

# 輸出:"My name is chenkai, I am 18 years old"
           

3.進制轉換

"{0} in HEX is {0:#x}".format()

# 輸出:"16 in HEX is 0x10"
           
"{0} is OCT is {0:#o}".format()

# 輸出:"16 is OCT is 0o20"
           

4.對齊字元串

"{:>5}".format()        # 設定寬度為5,右對齊(.rjust()方法)

"{:>5}".format()      

"{:>5}".format()

"{:>5}".format()

# 輸出下面的結果

"    1"

"   10"

"  100"

" 1000"
           
'{:_<10}'.format('test') # 左對齊(.ljust()方法),并且指定"_"填充空白部分

# 輸出 'test______'
           
'{:_^10}'.format('test') # 居中對齊(.center()方法),并且指定"_"填充兩側

# 輸出 '___test___'

# 用%格式化字元串不支援居中對齊
           

5.截斷字元串

"{:.5}".format("Hello Python") # 截取前5個字元

# 輸出:"Hello"
           

6.通路對象屬性

class Pig(object):

    def __init__(self, name, age, weight):

        self.name = name

        self.age = age 

        self.weight =weight

    def __repr__(self):

        return "Pig name={0}, age={1}".format(self.name, self.age)

pig = Pig("warrior", , )

print("{0} is {1} years old, {2} kilograms".format(pig.name, pig.age, pig.weight))

# 輸出:"warrior is 26 years old, 100 kilograms"
           

7.時間格式化

from datetime import datetime

'{:%Y-%m-%d %H:%M}'.format(datetime(, , , , ))

# 輸出 '2018-05-19 21:00'
           

8.傳入指定參數

"{:{char}{align}{width}}".format("test", char="_", align="^", width="10")

# 輸出 "___test___"
           
from datetime import datetime

dt = datetime(, , , , )

"{:{dfmt} {tfmt}}".format(dt, dfmt="%Y-%m-%d", tfmt="%H:%M")

# 輸出 "2018-05-24 21:00"
           

繼續閱讀