溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python字符串格式化

發布時間:2020-06-19 23:17:13 來源:網絡 閱讀:1093 作者:海中小帆船 欄目:編程語言

python3中字符串格式化有兩種方法:%和format

一、%

    在%操作符左側放置一個需要進行格式化的字符串,這個字符串帶有一個或多個嵌入的轉換目標,都以%開頭,如%s,%d,%f。

    在%操作符右側放置一個對象,這些對象將會插入到左側想讓python進行格式化字符串的一個轉換目標的位置上。

案例:

>>> 'this is a %s' % 'test'
'this is a test'
>>>
>>> 'shuangji %d.this is a %s' % (666,'test')        #右側有多個值時用括號括起來
'shuangji 666.this is a test'
>>>
>>> '%s--%s--%s' % (666,231.51241,[1,2,3])           #python中任何類型都可以轉換為字符串。實例中左側都是%s,會將右側中的對象轉換為字符串(重新創建)。
'666--231.51241--[1, 2, 3]'
>>>

%左側通用結構是      %[(name)][flags][width寬度][.precision精度]typecode,-左對齊,+正負號,0補零

>>> x=1234
>>> test='%d...%-6d...%06d'%(x,x,x)        #-號左對齊。0不足位數補零
>>> test
'1234...1234  ...001234'
>>> x=12.126435787654123                    #浮點數的表示方法
>>> '%e|%f|%g'%(x,x,x)
'1.212644e+01|12.126436|12.1264'
>>> '%-6.2f|%06.2f|%+06.1f'%(x,x,x)            #6.2表示總有6位數,2位小數
'12.13 |012.13|+012.1'
>>> '%-6.2f|%06.2f|%.*f'%(x,x,4,x)            #此處*表示精度,將4給*后,x是替代值
'12.13 |012.13|12.1264'
>>>
>>> '%(a)s %(b)s %(c)s %(d)s' % ({'a':'this','b':'is','c':'a','d':'test'})        #基于字典的格式化,是使用鍵值的。
'this is a test'

二、format方法

>>> 'this {} a {}'.format('is','test')            #默認1對1,多1不可,缺1不可
'this is a test'
>>> 'this {1} a {0}'.format('is','test')            #{}通過位置找出替換目標及插入的參數
'this test a is'
>>> 'this {x} a {y}'.format(x='is',y='test')            #{}通過關鍵字找出替換目標及插入的參數
'this is a test'
>>> 'this {x} a {0}'.format('is',x='test')            #兩者都有
'this test a is'
>>>
>>> 'this {1[spam]} test of {0.platform}'.format(sys,{'spam':'is'})    #0表示第一個位置,.platform 表示位置或關鍵字所引用的對象屬性:sys.platform。
'this is test of linux'
>>>

format格式結構{fieldname!conversionflag:formatspec},fieldname表示參數的一個數字位置或關鍵字,conversionflag可以是r,s,a對應repr/str/ascii內置函數的一次調用,formatspec指定了如何表示該值:字段寬度、對齊方式、補零、小數精度等。冒號后的formatspec組成形式有:[[fill]align對齊方式][sign][#][0][width寬度][.precision精度][typecode]

>>> '{0:>10}={1:<10}'.format('test',12.62424)        #字段寬度為10個,>右對齊,<左對齊
'      test=12.62424  '
>>> import sys
>>> '{0.platform:>10}={1[item]:<10}'.format(sys,dict(item='laptop'))     #使用位置.屬性的方法替換值   
'     linux=laptop    '
>>>
>>> '{0:.2f}'.format(1/3.0)
'0.33'
>>> '{0:.{1}f}'.format(1/3.0,4)    #動態的從參數列表獲取精度位數
'0.3333'
>>> '{%.*f}'%(6,1/3.0)            #動態的使用%從參數列表獲取精度位數
'{0.333333}'
>>>

高級用法

        >>> msg='this {a} a  for python,The No.{c}'.format(**{'a':'is','b':'a','c':1})            #使用字典形式來格式化,必須加入兩個 *號和大括號

        >>> print(msg)

        this is a a for python,The No.1

        >>>

        >>> msg='this {:s} a {:s} for python,The No.{:d}'.format('is','test',1)                

        >>> print(msg)

        this is a test for python,The No.1

        >>>

        >>> msg='this {:s} a {:s} for python,The No.{:d}'.format(*['is','test',1])            #列表形式加入一個*號,*表示將列表中的元素,遍歷出來,類似上面一個列子

        >>> print(msg)

        this is a test for python,The No.1

        >>>


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女