%方法:
%[(name)][flags][width][.precision]typecode
· (name):可選,用于選擇指定的key
· flags:可選,可供選擇的值有:
· +:右對齊,正數前加正号,負數前加負号
· -:左對齊,正數前無符号,負數前加負号
· 空格:右對齊,正數前加空格,負數前加負号
· 0: 右對齊,正數前無符号,負數前加負号,用0填充空白處
· width:可選,表示占有寬度
· .precision:可選,表示小數點後保留的位數
· typecode:必選
· s:擷取傳入對象的__str__方法的傳回值,并将其格式化到指定的位置
· r:擷取傳入對象的__repr__方法的傳回值,并将其格式化到指定位置
· c:整數:将數字轉換成其unicode對應的值,10進制範圍為0≤i≤1114111(py2.7隻支援0~255);字元:将字元添加到指定位置
· o:将整數轉換成八進制,并将其格式化到指定位置
· x:将整數、浮點數轉換成十六進制,并将其格式化到指定位置
· d:将整數、浮點轉換成十進制,并将其格式化到指定位置
· e:将整數、浮點數轉換成科學記數法,并将其格式化到指定位置
· E:将整數、浮點數轉換成科學記數法,并将其格式化到指定位置
· f:将整數、浮點數轉換成浮點數,并将其格式化到指定位置
· F:将整數、浮點數轉換成浮點數,并将其格式化到指定位置
· g:自動調整将整數、浮點數轉換成浮點數或科學記數法(超過6位用科學記數法)
· G:自動調整将整數、浮點數轉換成浮點數或可續記數法(超過6位用科學記數法)
· %:當字元串中存在格式化标志時,需要用%表示(轉義)一個百分号(Python中百分号不是自動将整數轉換成二進制而方式)
一些奇怪條件
填充的内容就是不能是元組
執行個體
a='output a number:%10.3f'%2.2333
print(a)
a='output a number:%-10.3f'%2.2333
print(a)
a='output a number:%010.3f'%2.2333
print(a)
a='output a str:%s'%'guess what'
print(a)
輸出:
output a number: 2.233
output a number:2.233
output a number:000002.233
output a str:guess what
format方法
①預設操作:
print('{}正在看着{}'.format('桶','頭罩'))
print('{}正在看着{}'.format('桶',''))
print('{}正在看着{}'.format('桶'))
輸出結果:
桶正在看着頭罩
桶正在看着
Traceback (most recent call last):
File "C:\Users\ASUS\Desktop\hey.py", line 3, in
print('{}正在看着{}'.format('桶'))
IndexError: Replacement index 1 out of range for positional args tuple
#出錯惹!↑要兩個空都有東西,沒有也得意思意思填上
注意:此間的參數是按順序進行替換的,順序一定要對
②位置參數
執行個體:
print('{0}正在看着{1}'.format('桶','頭罩'))
print('{1}正在看着{0}'.format('桶','頭罩'))
輸出結果:
桶正在看着頭罩
頭罩正在看着桶
③關鍵字參數
執行個體:
print('{a}正在看着{b}'.format(a='桶',b='頭罩'))
print('{a}正在看着{b}'.format(b='頭罩',a='桶'))
#參數之間位置交換是可以的,反正已經指向了确定的參數
輸出結果:
桶正在看着頭罩
桶正在看着頭罩
注意:位置方法和關鍵字方法可以混用,但關鍵字一定不能擾亂位置的順序(即位置在前,關鍵字在後)
print('{a}正在看着{0}的{b}'.format('戰損',a='桶',b='頭罩'))
print('{a}正在看着{0}的{b}'.format(a='桶','戰損',b='頭罩'))
輸出
桶正在看着戰損的頭罩
#第二行報錯
④清單替換
執行個體
a=['戰損','桶','頭罩']
print('{ls[1]}正在看着{ls[0]}的{ls[2]}'.format(ls=a))
輸出結果:
桶正在看着戰損的頭罩
存疑:為什麼需要ls=a????
解釋:a是别名,需要把它和真名等同起來??
填充
1、冒号做為指令的開始,後面跟不同的指令,具體順序如下:填充符号、對齊方式(> 右對齊,< 左對齊,^ 居中對齊)、寬度、進制
print('{:*>5}'.format(233))
print('{:0>5}'.format('hey'))
**233
00hey
2、進制輸出 b、d、o、x分别是二進制、十進制、八進制、十六進制。
print('{:*<8b}'.format(10))
1010****
3、浮點型的精度
print('{:.2f}'.format(3.1415))
3.14
原文連結:https://blog.csdn.net/GreatRedRabbit/article/details/105289289