1⽤%格式化:
%[flags][width][.precision]typecode
flags:對其⽅式,-左對⻬ +右對⻬(預設),0表示⽤0填充(只針對數值型),預設是⽤
空格填充
width:所佔寬度,單位是列
.precision: 精度,如果帶⼩數點,可以指定帶⼏位⼩數,指定後會四捨五⼊
typecode: d 將數值轉換為整型顯示;f 將數值轉換為浮點數顯示 s將數值轉換為字
符串顯示
#⼤家好,我叫 王尼瑪,我今年35歲了,我有5000000.69
print("⼤家好,我叫%+6s,我今年%d歲了,我有%10.2f" % ('王尼
瑪',35,5000000.687))
2⽤format格式化:
str.format() ⽅法通過字串中的花括號 {} 來識別替換字段 replacement field,
從⽽完成字串的格式化。
替換字段 由欄位名 field name 和轉換字段 conversion field 以及格式說明符
format specifier 組成,即⼀般形式為 :
欄位名分為簡單欄位名 ****** field name 和復合欄位名 compound field
name。轉換欄位和格式說明符都是可選的。
欄位名寫法有三種:
1 省略欄位名
tp1 = 「i am {}, age {}, {}」.format(「seven」, 18, 『alex』)
2 數字形式的欄位名
可以通過數字形式的簡單欄位名傳遞位置引數。
數字必須是⼤於等於 0 的整數。
帶數字的替換字段可以重複使⽤。
數字形式的簡單欄位名相當於把 format 中的所有位置引數整體當作⼀個元組,通過
欄位名中的數字進⾏取值。
即 等價於 tuple[0],所以花括號內的數字不能越界。
通過數字形式的簡單欄位名傳遞位置引數
print(『身⾼,家住。』.format(1.8, 『銅鑼灣』))
數字形式的簡單欄位名可以重複使⽤。
print(『我愛。\n她今年。\n也愛我。』.format(『阿⾹』, 17))
3 變數名
使⽤變數名形式的簡單欄位名傳遞關鍵字引數。
關鍵字引數的位置可以隨意調換。
tp2 = 「i am , age , really 」.format(name=「seven」,
age=18)
print(tp3) #i am seven, age 18, money 88888
關鍵字引數的順序可以隨意調換
print(『我⼤哥是,今年歲。』.format(age=20, name=『阿⻜』))
轉換字段 conversion field 的取值有三種,前⾯要加 ! :
s :傳遞引數之前先對引數調⽤ str()
r :傳遞引數之前先對引數調⽤ repr()
a :傳遞引數之前先對引數調⽤ ascii()
print("---".format("hello",90))
print("---".format("hello",'該死的新冠'))
格式化說明符如下圖所示:
fill: 填充字元,可選,必須只能是⼀個字元,如果指定填充字元,則必須要同時指
定對⻬⽅式
align: 對⻬⽅式 《左對⻬ >右對⻬ ^居中對⻬
sign:顯示符號,+正數顯示正號,負數顯示符號;-正數不顯示符號,負數顯示符號
#: 對於2、8、16進製制會顯示0b 0o 0x
width: 寬度
, 千分位分隔符
.precision:精度
type: s字串 d整型 f浮點數
格式化字串方法
一 最基礎方法 加號連線多個字串 eg salary input 請輸入薪資 計算出繳稅額,存入變數tax tax int salary 25 100 轉化為字串,方便下面的字串拼接 taxstr str tax 計算出稅後工資,存入變數aftertax aftertax int salary 75...
字串格式化方法
1 形式 import time now time datetime.datetime.now strftime y m d print now time s now time 輸出 now time 2020 08 26 2 formate format 功能更強大,該函式把字串當成乙個模板,通過...
字串格式化
sprintf snprintf snprintf std stringstream std strstream boost lexical cast boost format cstring format 1 sprintf 使用 sprintf 不安全,輕則破壞資料的準確性,重則程式崩潰。請看下...