溫馨提示×

溫馨提示×

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

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

Python3字符串的格式化方法怎么用

發(fā)布時間:2022-10-09 09:44:29 來源:億速云 閱讀:161 作者:iii 欄目:web開發(fā)

本篇內(nèi)容主要講解“Python3字符串的格式化方法怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Python3字符串的格式化方法怎么用”吧!

一 介紹

Tips:

1、盡量少使用 + 號進行字符串并接,大量使用會耗費系統(tǒng)資源(大量申請及清理內(nèi)存)

2、使用%并接時,盡量使用對應(yīng)的數(shù)據(jù)類型,以提高代碼可讀性。

  • %百分號方式(定義與傳參都需要使用%進行標識)

  • 定義:%[(name)] [flags] [width] [.precision] type

  • (name):指定字典的key

  • flags:

  • +:右對齊,正數(shù)前加正號

  • 空格:右對齊,正數(shù)前無符號

  • 0:右對齊,正數(shù)前加0

  • -:左對齊

  • width:占用寬度

  • .percision:字符串或浮點數(shù)保留多少位

  • type:(必須參數(shù))

  • s:傳入的值為字符類型

  • d:傳入的值為整數(shù)類型

  • f:傳入的值為浮點數(shù)

  • %%:輸出百分號字符

  • 等等

  • format 方式

  • 定義:{  [field_name] [ !conversion] [ :format_spec]  }

  • field_name:class Person:

          name = ''
          age = 22
      
          def __init__(self, n):
              self.name = n
      
      el = Person('elsa')
      ka = Person('kate')
      
      print("I am {0.name}, my friend is {1.name}".format(el, ka))  # I am elsa, my friend is kate
      print("I am {friend[0]}, my friend is {friend[1]}".format(friend=['elsa', 'kate']))  
      # I am elsa, my friend is kate
      • conversion:r | s | a

      • r:Calls repr() on the argument first。將變量的值轉(zhuǎn)換為str的定義格式。

      s = '{name!r}'.format(name='elsa')
      print(s)  # 'elsa'
      
      a = eval(a)  # elsa
      • s:Calls str() on the argument first。將變量轉(zhuǎn)為字符串。

      s = '{name!s}'.format(name=1234)
      print(s, type(s))  # 1234 <class 'str'>
      • a:Calls ascii() on the argument first。

      • format_spec:[ [ fill ] align ] [sign] [#] [0] [width] [grouping_option] [.precision] [type]

      • fill:空白處填充字符

      • align:對齊方式

      • <:內(nèi)容向左對齊

      • >:內(nèi)容向右對齊

      • =:對數(shù)字右對齊(符號+填充字符+數(shù)字)

      • ^:內(nèi)容居中

      • sign:數(shù)值的符號顯示。(+ | - | 空格)

      • +:顯示所有正負符號

      • -:只顯示負數(shù)符號

      • 空格:顯示所有正負符號,但正號被空格取代??梢岳斫鉃檎o@示的方式。

      • #:對于二進制、八進制、十六進制,如果加上#,會顯示 0b/0o/0x,否則不顯示

      • 0:

      • width:占用寬度

      • grouping_option:

      • ,| _:對數(shù)字的千分位分隔符

      print("{:,}".format(123456.78))
      # 123,456.78
      
      print("{:_}".format(123456.78))
      # 123_456.78
      • precision:小數(shù)點保留位數(shù)

      • type:格式化類型(與傳入?yún)?shù)的數(shù)據(jù)類型匹配)

      • s:字符串

      • 無:默認字符串

      • d:整數(shù)

      • f:浮點

      • %:自動計算,并輸出百分號

      • 等等

      二 %百分號 常用方式

      • 順序?qū)?yīng)模式(定義的順序要與參數(shù)一致)

      name = 'elsa li'
      age = 18
      money = 98765.987654
      
      meg = 'I am %s ' % name
      print(meg)
      # I am elsa li
      
      meg = 'I am %.4s , age is %d ,money is %015.2f' % (name, age, money)
      print(meg)
      # I am elsa , age is 18 ,money is 000000098765.99

      Python3字符串的格式化方法怎么用

      • 字典模式

      person = {'name': 'elsa li', 'age': 18, 'money': 98765.987654}
      
      meg = 'I am %(name)s ' % person
      print(meg)
      # I am elsa li
      
      meg = 'I am %(name).4s , age is %(age)d ,money is %(money) 15.2f' % person
      print(meg)
      # I am elsa , age is 18 ,money is      98765.9877
      • 添加顏色

      name = 'elsa'
      percent = 80.8867
      meg = 'I am \033[45;3m%s\033[0m ,%.2f%% of work complated' %(name,percent)
      # \033[45;3m 定義背景顏色的開始位置,45為顏標,3為字體的粗細度。
      # \033[0m    定義顏色的結(jié)束位置
      # 顏色詳細的使用,可以參考 linux ps1(命令行提示符)的顏色內(nèi)容
      
      print(meg)
      print('root','x','0','0',sep=':')
      
      meg = ['root', 'x', 0, 0]
      print(*meg, sep=':')

      輸出:

      I am elsa ,80.89% of work complated

      root:x:0:0

      三 format 常用方式

      Python3字符串的格式化方法怎么用

      • 常規(guī)方式

      name='elsa'
      age=18
      money=12345.678
      meg='I am {},age is {!s}, money is {:0>-10,.2f}'.format(name,age,money)
      print(meg) # I am elsa,age is 18, money is 012,345.68
      name = 'elsa'
      age = 18
      money = 12345.678
      meg = 'I am {0},age is {2}, money is {1}'.format(name, age, money)
      print(meg)  # I am elsa,age is 12345.678, money is 18
      meg = 'I am {0[1]},age is {1}, money is {2}'.format(*[['elsa', 'li'], 18, 12345.678])
      print(meg)  # I am li,age is 18, money is 12345.678
      meg = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 1, 2, 3)
      print(meg)  # numbers: 1111,17,15,f,F, 1587.623000%
      • 字典方式

      meg = 'I am {name},age is {age}, money is {money}'.format(name = 'elsa', age = 18, money=12345.678)
      print(meg)  # I am elsa,age is 18, money is 12345.678
      me = {'name': ['elsa','li'] ,
            'age': 18,
            'money': '12345.678'}
      meg = 'I am {name[1]},age is {age}, money is {money}'.format(**me)
      print(meg)  # I am li,age is 18, money is 12345.678

      四 format 與 % 的參數(shù)格式匯總


      %

      format

      %

      format

      普通格式定義

      %

      {}


      無下標則按順序,有下標則按索引

      字典格式定義

      %(字段)

      {字段}



      普通方式

      '%s %d' %( 'elsa',20 )

      '{1} {0}'.format( 'elsa',20 )

      賦值方式

      ×


      '{name} {age}'.format( name='elsa',age=20 )

      列表方式

      ×


      ‘{} {}'.format( *['elsa',20] )

      '{1} {0}'.format( *['elsa',20] )

      字典方法

      '%(name)s %(age)d' %{'name':'elsa','age':18}

      '{name} {age}'.format( **{'name':'elsa','age':20} )

      下標方式

      ×


      '{0[0]} {1[1]}'.format( ['elsa','tony'],[20,25] )

      到此,相信大家對“Python3字符串的格式化方法怎么用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

      向AI問一下細節(jié)

      免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

      AI