1. 程式人生 > >format()的簡單實用 筆記

format()的簡單實用 筆記

參數 鍵值 通過 麻煩 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()的簡單實用 筆記