format()的簡單實用 筆記
阿新 • • 發佈:2018-11-20
參數 鍵值 通過 麻煩 def 發現 var 例子 miss
# 關於format和format_map的使用
# 如果要使用輸出的字符串對其不僅僅是可以使用format,還可以使用ljust/rjust/center來處理,輸出當然也可以是使用%來進行操作,但是format()屬於Python3的特性,所以在這裏專門介紹format,其他的暫不打算做筆記
# 使用format進行簡單輸出 print(format(‘123‘)) # 可以直接使用print(‘123‘),這裏是指為了演示,輸出"123"
# 將輸出的字符串規定大小20,也叫填充
print(format(‘123‘, ‘>20‘)) # 內容向右靠其,相當於rjust, 輸出“ 123”print(format(‘123‘, ‘<20‘)) # 內容向右靠其,相當於ljust,輸出“123 ” print(format(‘123‘, ‘^20‘)) # 內容向右靠其,相當於ljust,輸出“ 123 ” # 註意:上面例子的format()的‘>20‘/‘<20‘/‘^20‘默認輸出的是字符串,及等價於‘>20s‘/‘<20s‘/‘^20s‘
# 如果想輸入float類型怎麽辦?,當然是使用“.nf”
print(format(123.147, ‘>10.2f‘)) # 字符串大小為10,輸出的為float類型,取兩位小數(會四舍五入),輸出“ 123.15”
# 如果想填充一些其他字符呢?那在填充前面添加填充內容
print(format(‘123‘, ‘=>20‘)) # 在內容的最左邊填充“=”,輸出“=================123”,其它同理
# 換種方式?可以
# 輸入字符串
s = ‘something: {}‘ print(s.format(‘123‘)) # 輸出“something: 123”字符串
# 輸出float類型
s = ‘float: {:.2f}‘ print(s.format(12.2222)) # 輸出“float: 12.22”
# 那該怎麽通過鍵值來輸入呢?看下面
s = ‘my name is {name}, age = {age}‘ print(s.format(name=‘namejr‘, age=22)) # 輸出“my name is namejr, age = 22”
# 覺得上面的輸入有點麻煩?使用vars()能夠找到變量域中的屬性進行替換
name = ‘namejr‘ age = 22 print(s.format_map(vars())) # 輸出“my name is namejr, age = 22”
# 難道vars()就這點功能?當然不是,我也是只發現冰山一角,下面也是使用方法:
class use_vars(object): def __init__(self, name, age): self.name = name self.age = age vars_info = use_vars(‘namejr‘, 22) print(s.format_map(vars(vars_info))) # 輸出“my name is namejr, age = 22”
# 難道format和format_map就這麽完美? 也不是吧,比如參數缺省就挺慘的,直接拋出錯誤。不過可以使用__missing__解決
class check_vars(dict): # 註意:定義為含有__missing__方法的dict對象 def __missing__(self, key): return ‘{ ‘+ key+‘ is not defined }‘ s = ‘name is {name1}, age = {age1}‘ name1 = ‘namejr‘ print(s.format_map(check_vars(vars()))) # 輸出"name is namejr, age = { age1 is not defined }"
format()的簡單實用 筆記