python3.6后支持3種格式化輸出方式,其中前兩種為%-formatting及str.format ,第三種即為 f-string。
1.%-formatting
據傳該格式化方法源於C..
>>>username = input("請輸入用戶名:") >>>pwd = input("請輸入密碼:") >>>print("用戶名為:%s,密碼為:%s" %(username, pwd))
用戶名為:張三,密碼為:123456
%后字符含義:
- %s:str,字符類型,用str()方法處理對象
- %d(i):decimal,十進制數
- %x: hex, 十六進制數
- %f: float,浮點數
- %r:類似於%s類型,用rper()方法處理對象,此外用%r打印時能夠重現它所代表的對象 (拓展:Difference between __str__ and __repr__)
指定長度:
- %5d:右對齊,不足左邊補空格
- %-5d:- 代表左對齊,不足右邊默認補空格
- %05d:右對齊,不足左邊補0
浮點數:
- %f: 默認是輸出6位有效數據, 會進行四舍五入
- %.8f:指定小數點位數的輸出,保留小數點后8位
- %4.8f:4代表整個浮點數的長度,包括小數,只有當字符串的長度大於4位才起作用
2.str.format
例:格式化輸出
------------ info of XXX ------------
Name : XXX
Age : 25
job : XXXX
Hobby: XXXXX
------------------ end ----------------
2.1不帶編號
name = "XXX" age = 25 job = "XXXX" hobby = "XXXXX" print(""" ------------ info of {} ------------ Name : {} Age : {} job : {} Hobby: {} ------------------ end ------------------ """.format(name, name, age, job, hobby))
2.2帶編號
name = "XXX" age = 25 job = "XXXX" hobby = "XXXXX" print(""" ------------ info of {0} ------------ Name : {0} Age : {1} job : {2} Hobby: {3} ------------------ end ------------------ """.format(name, age, job, hobby))
2.3帶關鍵字
print(""" ------------ info of {name} ------------ Name : {name} Age : {age} job : {job} Hobby: {hobby} ------------------ end ------------------ """.format(name="XXX", age=25, job="XXXX", hobby="XXXXX"))
*2.4傳入列表(元組)
list = ["XXX", 25, "XXXX", "XXXXX"] print(""" ------------ info of {0} ------------ Name : {0} Age : {1} job : {2} Hobby: {3} ------------------ end ------------------ """.format(*list))
*2.5傳入字典
dic = {"name": "XXX", "age": 25, "job": "XXXX", "hobby": "XXXXX"} print(""" ------------ info of {name} ------------ Name : {name} Age : {age} job : {job} Hobby: {hobby} ------------------ end ------------------ """.format(**dic))
*2.6指定長度輸出
格式{:*>n}
- >:右對齊
- <:左對齊
- ^:中間對齊
- n:指定的長度
print("左對齊是:{0:*<5},\n右對齊是:{1:*>5},\n居中的是:{2:*^5}".format("左", "右", "中"))
輸出:
3.f-string(python解釋器3.6版本后可用)
>>>name = "zhangsan" >>>age = 25 >>>print(f"我的名字是{name},年齡是{age}") 我的名字是zhangsan,年齡是25