首頁  >  文章  >  後端開發  >  python格式化字串的使用方法

python格式化字串的使用方法

高洛峰
高洛峰原創
2017-03-21 09:39:241758瀏覽

一、格式化字元功能介紹

  應用場景:一般在print的時候提供佔位符;python中提供兩種格式化字串方式:第一種是古老的利用百分號的方式,第二種是增強的格式化字串、format 函數

二、古老的百分號方式

1、常見用法

##          常見佔位符:%s   -------------字串佔位符

            %d   -------------數位佔位符

#   〠 〠〠 ----  〠 ---- -

浮點型數字佔位符

例如:輸入使用者的訊息,並列印出來

name= raw_input('input your name: ')
age= raw_input ('input your age: ')
job = raw_input ('input your job: ')
msg='''                                             #定义变量msg,字符串中提供占位符
Information of user %s:
-------------------------------
Name: %s
Age:  %s
#特别注意这里,像age这种通过raw_input方式定义的变量,python默认都为字符串,因此这里不用%d,而是用%s
#如果非要用%d的话,那么可以在定义age的时候用函数转换 age= int(raw_input ('input your age: '))                          
Job:  %s
--------------End--------------
'''%(name,name,age,job)                   #把3个用户定义的变量依次赋给msg字符串中的各个占位符,实现替换,注意4个要按顺序一一对应
print msg         
结果:
Information of user Mr.Mangood:
-------------------------------
Name: Mr.Mangood
Age:  27
Job:  Engineer
--------------End--------------
2、更多進階用法

佔位元符結構:

%[(name)][flags][width].[precision]typecode

其中:

  

(name)    可選,用於選擇指定的key   

>>> info = '''联系人%(name)s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':23} # 这里可以用字典{'name':'Mr.Mangood','age':23}来对占位符传值
>>> print info
联系人Mr.Mangood的年龄是23
  

[flags] 

>>> info = '''联系人%(name)20s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':23}   # 这里的20就是宽度[width],不写[flags]默认右对齐
>>> print info
联系人         Mr.Mangood的年龄是23
>>> info = '''联系人%(name)+20s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':25}  # 这里的+20就是右对齐
>>> print info
联系人          Mr.Mangood的年龄是25
>>> info = '''联系人%(name)-20s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':23}   # 这里的-20就是代表左对齐
>>> print info
联系人Mr.Mangood          的年龄是23
  

[flags] ##    設定了寬度的時候例如設定20個字符,但我們傳值的時候只寫了4個字符,這時對齊的概念就出現了,一般我們會配合著[width]來說

   右對齊

    -            -      ##    0右對齊 

  #[width]     可選,定義佔位符寬度

>>> info = '''学生%(name)s的年龄是%(age)d平均成绩为%(avgscore).2f'''%{'name':'Mr.Mangood','age':25,'avgscore':85.2479} #这里的.2就代表%f这个浮点型占位符保留两位小数
>>> print info
学生Mr.Mangood的年龄是25平均成绩为85.25

  .precision   後數位小位數##

>>> s = '''测试ASCII码转换%c测试八进制转换%o测试16进制转换%x'''%(65,9,15)
>>> print s
测试ASCII码转换A测试八进制转换11测试16进制转换f
 

 typecode    必選

     

 c    %#將傳回傳#」的數字

      o    將整數轉換成八進位表示

    rr  x

##    rr  x##    r     e    將整數、浮點數轉換成科學計數法(科學計數法中的e為小寫的e)

      E   科學、將整數、浮點數、浮點科學數(整數科學(法數法(計算科學)(整數法數法(整數科學法(2)法數:計算科學數法(2227法科學 和計算科學)(整數科學]中的E為大寫的E)

>>> test = '''测试科学技术法%e测试科学技术法%E'''%(98888888,98888888)
>>> print test
测试科学技术法9.888889e+07测试科学技术法9.888889E+07
      g            自動辨識數字大小是否需要轉換成科學計數法(如果超過6位數,就用科學計數法來表示),科學計數法是否需要轉換為科學計數法(如果超過6位數,就用科學計數法來表示),科學計數法是否需要轉換計數法中的e為小寫

      G            自動辨識數字大小是否需要轉換成科學計數法(若超過6位數中的G為大寫

>>> test = '''测试科学技术法%e测试科学技术法%g'''%(123456,123456)
>>> print test
测试科学技术法1.234560e+05测试科学技术法123456
      %           當字串中出現了格式化標誌時,則需要用%%表示一個%

>>> zhenli = '''%s是%d%%纯爷们'''%('Mr.Mangood',100)
>>> print zhenli
Mr.Mangood是100%纯爷们

以上是python格式化字串的使用方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn