程序中常常會有這樣場景:要求用戶輸入信息,而後打印成固定的格式
好比要去用戶輸入用戶名和年齡,而後打印以下格式:
My name is xxx, my age is xxx.
很明顯,用逗號進行字符串拼接,只能把用戶輸入的名字和年齡放到末尾,沒法放到指定的xxx位置,並且數字也必須通過str(數字)的轉換才能與字符串進行拼接,很是之麻煩,咱們來試一試。
python
age=19 print('My name is xxx ,my age is'+str(age))
My name is xxx ,my age is19
age=19 print('My name is xxx ,my age is',age)
My name is xxx ,my age is 19
name='gelinli' age=19 print('My name is '+ name + ' my age is '+ str(age))
My name is gelinli my age is 19
上面使用的的方法越看越彆扭,越看越麻煩。這就須要用到佔位符,如:%S(針對全部數據類型)、%d(僅針對數字類型)code
name='gelinli' age=19 print('my name is %s my age is %s'%(name,age))
my name is gelinli my age is 19
age=18 print('my age is %d'%age)
my age is 18
很雞肋的格式化方法,若是你須要使用這個,遇到多參數的時候,仍是須要在句子後面噼裏啪啦傳上一大堆參數。使用這個不如用佔位符或者下面的f-string格式化。
orm
name='gelinli' age=19 print("Hello! {},you are {}".format(name,age))
Hello! gelinli,you are 19
name='gelinli' age=19 print("Hello! {1},you are {0}-{0}".format(age,name))
Hello! gelinli,you are 19-19
name='gelinli' age=19 print("Hello! {name},you are {age}-{age}".format(age=age,name=name))
Hello! gelinli,you are 19-19
相比較佔位符的方式,python3.6版本新增了f-string格式化的方式,比較簡單易懂,這是目前我用的最多的方式,推薦使用這種方式。
blog
name='gelinli' age=18 print(f'Hello,{name},you are {age}')
Hello,gelinli,you are 18
大寫的F也能夠字符串
name='gelinli' age=18 print(F'Hello,{name},you are {age}')
Hello,gelinli,you are 18
age=19 print(f'{age*3}')
57
再教一個保留小數位的方法,好比保留兩位 ,變量名後面加上 :.2fstring
salary=3.66666 print(f'{salary:.2f}')
3.67