1. 程式人生 > >python字串格式化方法 format函式的使用

python字串格式化方法 format函式的使用

python從2.6開始支援format,新的更加容易讀懂的字串格式化方法, 從原來的% 模式變成新的可讀性更強的
  1. 花括號宣告{}、用於渲染前的引數引用宣告, 花括號裡可以用數字代表引用引數的序號, 或者 變數名直接引用。
  2. 從format引數引入的變數名 、
  3. 冒號:、
  4. 字元位數宣告、
  5. 空白自動填補符 的宣告
  6. 千分位的宣告
  7. 變數型別的宣告: 字串s、數字d、浮點數f
  8. 對齊方向符號 < ^ >
  9. 屬性訪問符中括號
  10. 使用驚歎號!後接a 、r、 s,宣告 是使用何種模式, acsii模式、引用__repr__ 或 __str__
  11. 增加類魔法函式__format__(self, format) , 可以根據format前的字串格式來定製不同的顯示, 如: ’{:xxxx}’  此時xxxx會作為引數傳入__format__函式中。 
綜合舉例說明:
  1. 如: 千分位、浮點數、填充字元、對齊的組合使用:
輸入: '{:>18,.2f}'.format(70305084.0)     # :冒號+空白填充+右對齊+固定寬度18+浮點精度.2+浮點數宣告f 輸出:'     70,305,084.00'
  1. 複雜資料格式化
輸入: data = [4, 8, 15, 16, 23, 42]             '{d[4]} {d[5]}'.format(d=data) 輸出: 23 42
  1. 複雜資料格式化:
輸入:  class Plant(object):
    type = 'tree'
    kinds = [{'name': 'oak'}, {'name': 'maple'}]

'{p.type}: {p.kinds[0][name]}'.format(p=Plant()) 輸出:tree: oak
分類舉例說明:
  • 花括號宣告{}、用於渲染前的引數引用宣告, 花括號裡可以用數字代表引用引數的序號, 或者 變數名直接引用。
        '{} {}'.format('one', 'two') '{1} {0}'.format('one', 'two')
Output two one Setup
data = {'first': 'Hodor', 'last': 'Hodor!'}



Old

'%(first)s %(last)s' % data


New

'{first} {last}'.format(**data)


Output

Hodor Hodor!
  • 從format引數引入的變數名 、
  • 冒號:、字元位數宣告、空白自動填補符 的宣告、千分位的宣告、變數型別的宣告: 字串s、數字d、浮點數f 、對齊方向符號 < ^ >
'{:.5}'.format('xylophone')


Output

xylop         
'{:^10}'.format('test')


Output

   test   
'{:.{}}'.format('xylophone', 7)


Output

xylopho
'{:4d}'.format(42)


Output

  42
'{:06.2f}'.format(3.141592653589793)


Output

003.14
'{:+d}'.format(42)


Output

+42 千分位、浮點數、填充字元、對齊的組合使用: 輸入: '{:>18,.2f}'.format(70305084.0)     # :冒號+空白填充+右對齊+固定寬度18+浮點精度.2+浮點數宣告f 輸出:'     70,305,084.00'
  • 屬性訪問符中括號

Setup

person = {'first': 'Jean-Luc', 'last': 'Picard'}


New

'{p[first]} {p[last]}'.format(p=person)


Output

Jean-Luc Picard

Setup

data = [4, 8, 15, 16, 23, 42]


New

'{d[4]} {d[5]}'.format(d=data)


Output

23 42

Setup

class Plant(object):
    type = 'tree'
    kinds = [{'name': 'oak'}, {'name': 'maple'}]


New

'{p.type}: {p.kinds[0][name]}'.format(p=Plant())


Output

tree: oak
  • 驚歎號!限定訪問__repr__等魔法函式:

Setup

class Data(object):

    def __str__(self):
        return 'str'

    def __repr__(self):
        return 'repr'


Old

'%s %r' % (Data(), Data())


New

'{0!s} {0!r}'.format(Data())


Output

str repr
  • 增加類魔法函式__format__(self, format) , 可以根據format前的字串格式來定製不同的顯示, 如: ’{:xxxx}’  此時xxxx會作為引數傳入__format__函式中。 

Setup

class HAL9000(object):

    def __format__(self, format):
        if (format == 'open-the-pod-bay-doors'):
            return "I'm afraid I can't do that."
        return 'HAL 9000'


New

'{:open-the-pod-bay-doors}'.format(HAL9000())


Output

I'm afraid I can't do that.
  • 時間日期的特例:

Setup

from datetime import datetime


New

'{:%Y-%m-%d %H:%M}'.format(datetime(2001, 2, 3, 4, 5))


Output

2001-02-03 04:05

相關推薦

python字串格式化方法 format函式的使用

python從2.6開始支援format,新的更加容易讀懂的字串格式化方法, 從原來的% 模式變成新的可讀性更強的 花括號宣告{}、用於渲染前的引數引用宣告, 花括號裡可以用數字代表引用引數的序號, 或者 變數名直接引用。 從format引數引入的變數名 、 冒號:、 字元位數宣告、

一文秒懂!Python字串格式化format方法詳解

format是字串內嵌的一個方法,用於格式化字串。以大括號`{}`來標明被替換的字串,一定程度上與`%`目的一致。但在某些方面更加的方便 ## 1、基本用法 **1、按照{}的順序依次匹配括號中的值** ```python s = "{} is a {}".format('Tom', 'Boy')

js字串格式化方法format

/** * 設定字串format函式 * 例子: '{0}{1}.format(5,6)' */ setStringFormat() { String.prototype['format'] = function () { const e = arguments; retu

python字串格式化format

用法:   它通過{}和:來代替傳統%方式 1、使用位置引數 要點:從以下例子可以看出位置引數不受順序約束,且可以為{},只要format裡有相對應的引數值即可,引數索引從0開,傳入位置引數列表可用*列表 >>> li = ['hoho',18] >>> 'm

Python學習day05-字串格式化format字串格式化函式(上)

一、字串格式化 ①佔位符: %s:萬能的,可以列印所有資料型別,一般用於字串 %d:列印整型 %f:列印浮點數,預設最多列印小數點後6位 ②格式化輸出: (1)普通輸出 msg='i am %s my age is %d' % ('Hello',18) prin

Python中用強大的format函式格式化字串的用法

有了這些便捷的“對映”方式,我們就有了偷懶利器。基本的python知識告訴我們,list和tuple可以通過“打散”成普通引數給函式,而dict可以打散成關鍵字引數給函式(通過和*)。所以可以輕鬆的傳個list/tuple/dict給format函式。非常靈活。

[python] 格式化方法 format

引用 聲明 python 不同的 3.1 xxx highlight str import 先介紹包含的所有規則 花括號聲明{}:用於渲染前的參數引用聲明,花括號裏可以用數字代表引用參數的序號,或者變量名直接引用。 從format參數引入的變量名 冒號: 字符位數聲明

2018年12月7日 字串格式化2 format函式1

tp7="i am \033[44;1m %(name)-25.6s\033[0m"%{"name":"sxj2343333"} print(tp7) #-為左對齊,\033[44;1m \033[0m 為選取44色號的顏色   tp1="I am {},age{}

python: 輸出 1~100 之間不能被 7 整除的數,每行輸出 10 個數字,要求應用字串格式化方法美化輸出格式。

#輸出 1~100 之間不能被 7 整除的數 j = 0    #for i in range(1,101):    # 遍歷1-100取值,定義為變數 i      if i%7 != 0: &n

三.Python字串格式化 % format

 Python字串格式化  %  format #8.格式化 # %格式化 # %S 字串 #s="I am %s age is %s"%("tom","18") # %d 整數 #s="my age is %d"%(18)

python 字串格式化format

Python2.6 開始,新增了一種格式化字串的函式 str.format()。使用起來簡單方便,不會遇到使用%時候格式的選擇問題。 按照引數預設順序 >>> "yesday is {

python的三種字串格式化方法

        剛入門python的同學,特別是,沒有系統的學習過python,而是學過別的語言,直接上手python的同學,怕是還不是很瞭解python強大的字串格式化方法 1.最方便的 pri

Python 字串-格式化-format()格式化操作符 : %

字串-格式化1.format()--方法接受位置引數和關鍵字引數,二者均傳遞到一個叫做replacement欄位。而replacement欄位在字串內由大括號 { } 表示。位置引數:name = '{0}80後,{1},{2}'.format('今晚','主持人','王自健

Python - 字串格式化詳解(%、format

Python在字串格式化的兩種方式 % format   %,關於整數的輸出 %o:oct 八進位制 %d:dec 十進位制 %x:hex 十六進位制 print("整數:%d,%d,%d" % (1, 22.22, 33)) print("整數不足5位,左邊補空格 %5d " %

python字串格式化% 操作符 {}操作符 python字串格式化 %操作符 {}操作符---總結 Python字串格式化 (%佔位操作符)

python字串格式化 %操作符 {}操作符---總結 Python字串格式化 (%佔位操作符) 在許多程式語言中都包含有格式化字串的功能,比如C和Fortran語言中的格式化輸入輸出。Python中內建有對字串進行格式化的操作 %。 模板 格式化字串時,Python使用一個字串作為模板。模

python字串格式化%和{}操作符

python字串格式化 %操作符 {}操作符---總結 Python字串格式化 (%佔位操作符) 在許多程式語言中都包含有格式化字串的功能,比如C和Fortran語言中的格式化輸入輸出。Python中內建有對字串進行格式化的操作 %。 模板 格式化字串時,Python使用一個字串作為

python --字串方法

1.判斷型別 string.isspace() -> 如果string中只包含空格,則返回True string.isalnum() -> 如果string至少有一個字元並且所有字元都是字母或數字則返回True string.isalpha() ->如果string至少

Python 字串常用方法總結

Python 字串常用方法總結 明確:對字串的操作方法都不會改變原來字串的值 1,去掉空格和特殊符號 name.strip() 去掉空格和換行符 name.strip('xx') 去掉某個字串 name.lstrip() 去掉左邊的空格和換行符 name.rstrip() 去掉右邊的空格和換行符

[基礎]-python字串格式化輸出

如果將那個定義說的通俗一些,字串格式化化,就是要先制定一個模板,在這個模板中某個或者某幾個地方留出空位來,然後在那些空位填上字串。那麼,那些空位,需要用一個符號來表示,這個符號通常被叫做佔位符(僅僅是佔據著那個位置,並不是輸出的內容)。   >>> "I li

Python字串格式化快速入門例項(自3.7官方文件)

Python字串格式化例子 Shawn python3.7 文件: https://docs.python.org/3/library/string.html#formatstrings 完整功能介紹見官方文件. 本文可用於快速查詢Python字串格