1 #方法1: 2 s1 = "i am {0},age {1}".format('alex',19) 3 print('s1 -->',s1) 4 5 6 #方法2: 7 s2 = "i am {0},age {1}".format(*['alex',19]) 8 print('s2 -->',s2) 9 10 顯示結果: 11 s1 --> i am alex,age 19 12 s2 --> i am alex,age 19
1 #方法1: 2 s3 = "i am {name},age {age}".format(name='alex',age=19) 3 print('s3 -->',s3) 4 5 6 #方法2: 7 dic={'name':'alex','age':19} 8 s4 = "i am {name},age {age}".format(**dic) 9 print('s4 -->',s4) 10 11 顯示結果: 12 s3 --> i am alex,age 19 13 s4 --> i am alex,age 19
1 (name):可選,用於選擇指定的key 2 flags: 可選,可供選擇的值有: 3 +: 右對齊;正數前加正好,負數前加負號; 4 -: 左對齊;正數前無符號,負數前加負號; 5 空格: 右對齊;正數前加空格,負數前加負號; 6 0: 右對齊;正數前無符號,負數前加負號;用0填充空白處 7 width: 可選,佔有寬度 8 .precision:可選,小數點後保留的位數 9 typecode:必選 10 s,獲取傳入對象的__str__方法的返回值,並將其格式化到指定位置 11 r,獲取傳入對象的__repr__方法的返回值,並將其格式化到指定位置 12 c,整數:將數字轉換成其unicode對應的值,10進制範圍爲 0 <= i <= 1114111(py27則只支持0-255);字符:將字符添加到指定位置 13 o,將整數轉換成 八 進製表示,並將其格式化到指定位置 14 x,將整數轉換成十六進制表示,並將其格式化到指定位置 15 d,將整數、浮點數轉換成 十 進製表示,並將其格式化到指定位置 16 e,將整數、浮點數轉換成科學計數法,並將其格式化到指定位置(小寫e) 17 E,將整數、浮點數轉換成科學計數法,並將其格式化到指定位置(大寫E) 18 f, 將整數、浮點數轉換成浮點數表示,並將其格式化到指定位置(默認保留小數點後6位) 19 F,同上 20 g,自動調整將整數、浮點數轉換成 浮點型或科學計數法表示(超過6位數用科學計數法),並將其格式化到指定位置(若是是科學計數則是e;) 21 G,自動調整將整數、浮點數轉換成 浮點型或科學計數法表示(超過6位數用科學計數法),並將其格式化到指定位置(若是是科學計數則是E;) 22 %,當字符串中存在格式化標誌時,須要用 %%表示一個百分號 23 24 注:Python中百分號格式化是不存在自動將整數轉換成二進制表示的方式
2、經常使用的格式化操做:html
1 #字符串: 2 tpl = "i am %s" % "alex" 3 print('tpl--->',tpl) 4 5 #字符串 + 數字 6 tpl1 = "i am %s age %d" % ("alex", 18) 7 print('tpl1--->',tpl1) 8 9 #別名 + {} 方式 10 tpl2 = "i am %(name)s age %(age)d" % {"name": "alex", "age": 18} 11 print('tpl2--->',tpl2) 12 13 #浮點 + 提取指定位數 14 tpl3 = "percent %.2f" % 99.97623 15 print('tpl3--->',tpl3) 16 17 #別名 + 浮點 + 提取指定位數 18 tpl4 = "i am %(pp).2f" % {"pp": 123.425556, } 19 print('tpl4--->',tpl4) 20 21 #顯示"%"號 + 別名 + 浮點 + 提取指定位數 22 tpl5 = "i am %(pp).2f %%" % {"pp": 123.425556, } 23 print('tpl5--->',tpl5) 24 25 26 顯示結果: 27 tpl---> i am alex 28 tpl1---> i am alex age 18 29 tpl2---> i am alex age 18 30 tpl3---> percent 99.98 31 tpl4---> i am 123.43 32 tpl5---> i am 123.43 %
3、其餘練習:python
1 1、佔位符格式化: 2 s = "講課老師%s,年齡%d,聽課學生%s" %('alex',32,'dy') 3 print(s) 4 5 #輸出結果: 6 講課老師alex,年齡32,聽課學生dy 7 8 9 二、佔位符別名格式化:(name:可用 "{ }" 進行傳值) 10 s = "講課老師: %(teacher)s,年齡: %(age)d,聽課學生: %(students)s" %{'teacher':'alex','age':32,'students':'dy'} 11 print(s) 12 13 #輸出結果: 14 講課老師: alex,年齡: 32,聽課學生: dy 15 16 17 3、左右對齊方式:【flags:須要結合寬度(width)一塊兒使用】 18 s = "講課老師: %(teacher)+10s,年齡: %(age)d,聽課學生: %(students)s" %{'teacher':'alex','age':32,'students':'dy'} 19 print(s) 20 21 #輸出結果 22 講課老師: alex,年齡: 32 ,聽課學生: dy 23 24 25 26 4、正負數的值: 27 s = "講課老師: %(teacher)-10s,年齡: %(age)+10d,聽課學生: %(students)+10s,年齡:%(age1)-10d" %{'teacher':'alex','age':+32,'students':'dy','age1':-30} 28 print(s) 29 30 #輸出結果: 31 講課老師: alex ,年齡: +32,聽課學生: dy,年齡:-30 32 33 34 35 5、浮點: 36 s = "講課老師: %(teacher)-10s,年齡: %(age)+10d,聽課學生: %(students)+10s,年齡:%(age1)-10d,%(p)f" \ 37 %{'teacher':'alex','age':+32,'students':'dy','age1':-30,"p":1.234567} 38 print(s) 39 40 #顯示結果: 41 講課老師: alex ,年齡: +32,聽課學生: dy,年齡:-30 ,1.234567 42 43 44 45 六、浮點保留"N"爲小數: 46 s = "講課老師: %(teacher)-10s,年齡: %(age)+10d,聽課學生: %(students)+10s,年齡:%(age1)-10d,%(p).2f" \ 47 %{'teacher':'alex','age':+32,'students':'dy','age1':-30,"p":1.234567} 48 49 print(s) 50 51 #x顯示結果: 52 講課老師: alex ,年齡: +32,聽課學生: dy,年齡:-30 ,1.23
1 [[fill]align][sign][#][0][width][,][.precision][type] 2 3 4 fill :【可選】在空白處填充的字符(只能填充一個字符) 5 align:【可選】對齊方式(需配合width使用) 6 <,內容左對齊 7 >,內容右對齊(默認) 8 =,內容右對齊,將符號放置在填充字符的左側,且只對數字類型有效。 即便:符號+填充物+數字 9 ^,內容居中 10 sign:【可選】有無符號數字 11 +,正號加正,負號加負; 12 -,正號不變,負號加負; 13 空格 ,正號空格,負號加負; 14 # :【可選】對於二進制、八進制、十六進制,若是加上#,會顯示 0b/0o/0x,不然不顯示 15 , :【可選】爲數字添加分隔符,如:1,000,000 16 width:【可選】格式化位所佔寬度 17 .precision:【可選】小數位保留精度 18 type :【可選】格式化類型 19 傳入」 字符串類型 「的參數 20 s,格式化字符串類型數據 21 空白,未指定類型,則默認是None,同s 22 傳入「 整數類型 」的參數 23 b,將10進制整數自動轉換成2進製表示而後格式化 24 c,將10進制整數自動轉換爲其對應的unicode字符 25 d,十進制整數 26 o,將10進制整數自動轉換成8進製表示而後格式化; 27 x,將10進制整數自動轉換成16進製表示而後格式化(小寫x) 28 X,將10進制整數自動轉換成16進製表示而後格式化(大寫X) 29 傳入「 浮點型或小數類型 」的參數 30 e, 轉換爲科學計數法(小寫e)表示,而後格式化; 31 E, 轉換爲科學計數法(大寫E)表示,而後格式化; 32 f , 轉換爲浮點型(默認小數點後保留6位)表示,而後格式化; 33 F, 轉換爲浮點型(默認小數點後保留6位)表示,而後格式化; 34 g, 自動在e和f中切換 35 G, 自動在E和F中切換 36 %,顯示百分比(默認顯示小數點後6位)
3、傳參:ide
1 tpl = "i am {}, age {}, {}".format("seven", 18, 'alex') 2 print('tpl--->',tpl) 3 4 #*+列表+位置傳值:(若是傳值列表,必需要加上 " * ",若是不加*,則會把整個列表當初一個元素) 5 tpl1 = "i am {}, age {}, {}".format(*["seven", 18, 'alex']) 6 print('tpl1--->',tpl1) 7 8 9 #索引的方式傳值: 10 tpl2 = "i am {0}, age {1}, really {0}".format("seven", 18) 11 print('tpl2--->',tpl2) 12 13 14 #索引+列表+(*args)傳值: 15 tpl3 = "i am {0}, age {1}, really {0}".format(*["seven", 18]) 16 print('tpl3--->',tpl3) 17 18 19 #別名傳值: 20 tpl4 = "i am {name}, age {age}, really {name}".format(name="seven", age=18) 21 print('tpl4--->',tpl4) 22 23 24 #別名+(**kwargs)傳值: 25 tpl5 = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18}) 26 print('tpl5--->',tpl5) 27 28 29 #索引+索引【下標】的傳值: 30 tpl6 = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33]) 31 print('tpl6--->',tpl6) 32 33 34 #指定類型傳值:字符串、數字、小數點 35 tpl7 = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1) 36 print('tpl7--->',tpl7) 37 38 39 #指定類型+順序+(*args)傳值: 40 tpl8 = "i am {:s}, age {:d}".format(*["seven", 18]) 41 print('tpl8--->',tpl8) 42 43 44 #別名+指定類型傳值: 45 tpl9 = "i am {name:s}, age {age:d}".format(name="seven", age=18) 46 print('tpl9--->',tpl9) 47 48 49 #別名+指定類型+(**kwargs)傳值: 50 tpl10 = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18}) 51 print('tpl10--->',tpl10) 52 53 54 #2 8 10 16進制+百分號傳值 55 tpl11 = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2) 56 print('tpl11--->',tpl11) 57 58 59 tpl12 = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2) 60 print('tpl12--->',tpl12) 61 62 63 #索引+2 8 10 16+百分號傳值: 64 tpl13 = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15) 65 print('tpl13--->',tpl13) 66 67 68 #別名+2 8 10 16 +百分號傳值: 69 tpl14 = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15) 70 print('tpl14--->',tpl14) 71 72 73 輸出結果: 74 tpl---> i am seven, age 18, alex 75 tpl1---> i am seven, age 18, alex 76 tpl2---> i am seven, age 18, really seven 77 tpl3---> i am seven, age 18, really seven 78 tpl4---> i am seven, age 18, really seven 79 tpl5---> i am seven, age 18, really seven 80 tpl6---> i am 1, age 2, really 3 81 tpl7---> i am seven, age 18, money 88888.100000 82 tpl8---> i am seven, age 18 83 tpl9---> i am seven, age 18 84 tpl10---> i am seven, age 18 85 tpl11---> numbers: 1111,17,15,f,F, 1587.623000% 86 tpl12---> numbers: 1111,17,15,f,F, 1587.623000% 87 tpl13---> numbers: 1111,17,15,f,F, 1500.000000% 88 tpl14---> numbers: 1111,17,15,f,F, 1500.000000%
https://docs.python.org/3/library/string.htmlspa