2018年12月7日 字串格式化2 format與函式1
阿新 • • 發佈:2018-12-07
tp7="i am \033[44;1m %(name)-25.6s\033[0m"%{"name":"sxj2343333"} print(tp7) #-為左對齊,\033[44;1m \033[0m 為選取44色號的顏色
tp1="I am {},age{},{}" tp2=tp1.format("sxj",18,"abc") print (tp2) tp3="I am {1},age{1},{1}" tp4=tp3.format("sxj",18,"abc") print(tp4)
2、Format方式
[[fill]align][sign][#][0][width][,][.precision][type]
- fill 【可選】空白處填充的字元
- align 【可選】對齊方式(需配合width使用)
- <,內容左對齊
- >,內容右對齊(預設)
- =,內容右對齊,將符號放置在填充字元的左側,且只對數字型別有效。 即使:符號+填充物+數字
- ^,內容居中
- sign 【可選】有無符號數字
- +,正號加正,負號加負;
- -,正號不變,負號加負;
- 空格 ,正號空格,負號加負;
- +,正號加正,負號加負;
- # 【可選】對於二進位制、八進位制、十六進位制,如果加上#,會顯示 0b/0o/0x,否則不顯示
- , 【可選】為數字新增分隔符,如:1,000,000
- width 【可選】格式化位所佔寬度
- .precision 【可選】小數位保留精度
- type 【可選】格式化型別
- 傳入” 字串型別 “的引數
- s,格式化字串型別資料
- 空白,未指定型別,則預設是None,同s
- 傳入“ 整數型別 ”的引數
- b,將10進位制整數自動轉換成2進製表示然後格式化
- c,將10進位制整數自動轉換為其對應的unicode字元
- d,十進位制整數
- o,將10進位制整數自動轉換成8進製表示然後格式化;
- x,將10進位制整數自動轉換成16進製表示然後格式化(小寫x)
- X,將10進位制整數自動轉換成16進製表示然後格式化(大寫X)
- 傳入“ 浮點型或小數型別 ”的引數
- e, 轉換為科學計數法(小寫e)表示,然後格式化;
- E, 轉換為科學計數法(大寫E)表示,然後格式化;
- f , 轉換為浮點型(預設小數點後保留6位)表示,然後格式化;
- F, 轉換為浮點型(預設小數點後保留6位)表示,然後格式化;
- g, 自動在e和f中切換
- G, 自動在E和F中切換
- %,顯示百分比(預設顯示小數點後6位)
-
tp1="I am {},age{},{}" tp2=tp1.format("sxj",18,"abc") print (tp2) tp3="I am {1},age{1},{1}" tp4=tp3.format("sxj",18,"abc") print(tp4) tp5="I am {name},age{age},{love}" tp6=tp5.format(** {"name":"sxj","age":18,"love":"mm"}) print ("注意傳遞字典需要**加持",tp6) tp5="I am {name},age{age},{love}" tp7=tp5.format(name="sxj",age=111,love="mm") print(tp7) tp5="I am {:s},age{:d},{:.3f}"#用法同%一樣 tp8=tp5.format("sxj",18,44.5225222) print(tp8) tp5="I am {:s},age{:d},{:.3f}" tp9=tp5.format(*["sxj9",11111,22.33433]) print("注意傳遞list用*加持",tp9) tp5="I am {name:s},age{age:d},{love:.3f}" #:s:d:f定義不同型別 tp10=tp5.format(name="abc",age=232,love=89.9545) print(tp10) tpx="numbers:{:b},{:o},{:d},{:x},{:X},{:%}" tp11=tpx.format(12,16,3,40,40,0.33444) print(tp11)
print("函式定義") def test(x): " sxj "#函式定義描述 強烈建議 x+=1 return print(x) #返回列印值 或者直接返回x test(5) def test2(): "abc" for i in range(5): i+=1 print (i) return# 可以不寫返回值 test2() print("過程定義:沒有return") print("return 也可以返回多個值") def test3(): msg="test3" print(msg) return 1,2,3,4,[2,4,5,4],True# 以元祖的形式返回多個值 t3=test3() print (test3()) # 返回值=0 則返回 none # 返回值=1 返回object # 返回值 > 1 則返回tuple
def test(x,y,z): print(x) print(y) print(z) test(y=2,x=1,z=4) # 關鍵字引數位置無需固定,但不能少 #如果混用,位置引數必須在關鍵字引數左邊 test(4,2,z=5) def handle(x,type="sxj"):#設定type為預設引數 print(x) print(type) handle("hello")#預設引數可以不寫 handle("abc","傳遞預設引數")
# 非固定引數組: ** 字典 *列表/元祖? def test(x,*args): print (x) print (args) test(1,2,3,4,5) #輸出2,3,4,5 組成的元祖 ,args為預留後續的可擴充套件 test(1,*['x','y','z']) #前面加*表示遍歷整個列表 test(1,['x','y','z']) #如果沒有*則表示列表作為一個整體 def test2(x,**kwargs): print(x) print(kwargs) test2(1,y=2,z=3) #傳遞生成的是字典 def test3(x,*args,**kwargs):#代表能接受任何形式的引數 print(x) print(args) print(kwargs) print() test3(1,*[2,3,4],**{"a":2,"b":4,"c":4}) print() test3(1,[4,5,6],a=4,b=4,c=1)