python中的十大%占位符對應的格式化的使用方法

字符串格式化裡的符號很多,本文詳細的介紹一下,以便隨時查找。

%s :字符串的格式化,也是最常用的
%d :格式化整數,也比較常用
%c :格式化字符及ASCII碼
%u :格式化無符號整型
%f :格式化浮點數,可以指定小數後面的精度
%e :使用科學計數法格式化浮點數
%o :格式化無符號八進制數
%x :格式化無符號十六進制數
%p :十六進制數格式化變量地址
%g :%e和%f的簡寫

演示一下各個占位符格式化使用時的效果

'''格式化字符串'''
var_s = '%s' % '我是一個字符串'
print(var_s)

'''格式化整數'''
var_d = '%d' % 10
print(var_d)

'''格式化字符'''
var_c = '%c' % "w"
print(var_c)

# 格式化字符,這裡必須是一個字符不能是字符串,否則就會出現下面的錯誤。

var_c = '%c' % "water"
print(var_c)

# var_c = '%c' % "water"
# TypeError: %c requires int or char

'''格式化無符號整型'''
var_u = '%u' % 123
print(var_u)

'''格式化浮點數'''
var_f = '%.2f' % 2.3
print(var_f)

'''科學計數法格式化浮點數'''
var_e = '%e' % 2.3333333
print(var_e)

'''格式化無符號八進制數'''
var_o = '%o' % 100
print(var_o)  # 得到的結果是144
# 可以使用int函數將得到的八進制再轉換成十進制結果是100,和我們的預想是一樣的。
print(int('144',8))

'''格式化無符號十六進制數'''
var_x = '%x' % 100
print(var_x)  # 得到的結果是64
print(int('64',16))  # 同理,再轉換回來結果是100

'''十六進制格式化變量地址'''
var_p = '%p' % '144'
print(var_p)
# ValueError: unsupported format character 'p' (0x70) at index 1
# 執行%p的格式化時發現是不支持的,頭一回用竟然不支持。

'''%e與%f的縮寫'''
var_g = '%.3g' % 2.12
print(var_g)

指定占位符寬度

>>> print ("Name : %10s, Age : %9d, Height: %8.2f"%("tom", 37, 2.29))
Name :   tom, Age :        37, Height :     2.29

格式比較難看, 下面我們來做一下對齊 

指定占位符寬度 – 左對齊

>>> print ("Name : %-10s, Age : %-9d, Height : %-8.2f"%("tom", 37, 2.29))
Name : tom  , Age : 37       , Height : 2.29    

備註:格式化可選標志符, 可選參數
+       右對齊;正數前加正好,負數前加負號;
-       左對齊;正數前無符號,負數前加負號;
空格     右對齊;正數前加空格,負數前加負號;
0       右對齊;正數前無符號,負數前加負號;用0填充空白處

如: -10s, 表示10個字符串位置, 左對齊,後面用空格填充

指定占位符 – 用0當占位符

>>> print ("Name : %-10s, Age : %09d, Height : %08.2f"%("tom", 37, 2.29))
Name : tom  , Age : 000000037, Height : 00002.29

總結

占位符的使用非常常見, 也非常實用, 它可以很好的幫助我們解決一些字符串格式化的問題, 變換出多種用法, 一些常用的占位符大傢可以記住, 以便提升編程效率。

到此這篇關於python中的十大%占位符對應的格式化的使用方法的文章就介紹到這瞭,更多相關python 占位符格式化內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: