格式化輸出
方式一:(%s)
我們經常會輸出類似'親愛的xxx你好!你xx月的話費是xx,余額是xx'之類的字符串‘,而xxx的內容都是根據變量變化的,所以,需要一種簡便的格式化字符串的方式。
在Python中,%運算符就是用來格式化字符串的。在字符串內部,%s表示用字符串替換,%d表示用整數替換,有幾個%?占位符,后面就跟幾個變量或者值,順序要對應好。
如果只有一個%?,括號可以省略。Python中的 %s 方法傳遞的時候,也可以是看作是shell中的函數參數。
name = input('請輸入名字:') age = input('請輸入年齡:') job = input('請輸入職業:') hobbie = input('請輸入愛好:') msg = '''------------ info of %s ----------- Name : %s Age : %d job : %s Hobbie: %s ------------- end ----------------- ''' % (name, name, int(age), job, hobbie) print(msg)
有些時候,字符串里面的%是一個普通字符怎么辦?這個時候就需要轉義,用%%來表示一個%
print('我叫%s,今年%d,學習進度2%%' % ('李起光', 10000))
如果你不太確定應該用什么,%s永遠起作用,它會把任何數據類型轉換為字符串:
name = input('請輸入名字:') age = input('請輸入年齡:') job = input('請輸入職業:') hobbie = input('請輸入愛好:') msg = '''------------ info of %s ----------- Name : %s Age : %s job : %s Hobbie: %s ------------- end ----------------- ''' % (name, name, int(age), job, hobbie) print(msg)
方式二:(format函數)
format函數也是通過替換的方式實現格式化輸出,它有三種用法如下:
用法一:
與上面講到的 %s類似,不同的之處是將%s換成了’{ }‘大括號,調用時依然需要按照順序對應。
s = "我叫{},今年{},愛好{}" s1= s.format('摳腳大漢', '25', '女')
用法二:
通過{n}方式來指定接收參數的位置,將調用時傳入的參數按照位置進行傳入。相比%s可以減少參數的個數,實現了參數的復用。
s= "我叫{0},今年{1},愛好{2},我依然叫{0}" s1= s.format('摳腳大漢', '25', '女')
用法三:
通過{str}方式來指定名字,調用時使用str='xxx',確定參數傳入。
s = "我叫{name},今年{age},愛好{hobby}" s1= s.format(age=25,hobby='girl',name='摳腳大漢')
