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
參考:?https://pyformat.info/



本文轉自fandyst?博客園博客,原文鏈接:http://www.cnblogs.com/ToDoToTry/??? ,如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285310.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285310.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285310.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言試題133之畫圓形

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:畫圓形 2 、溫馨提示 想獲取…

ReactDom.render和React.render的區別

這個是react最新版api&#xff0c;也就是0.14版本做出的改變。主要是為了使React能在更多的不同環境下更快、更容易構建。于是把react分成了react和react-dom兩個部分。這樣就為web版的react和移動端的React Native共享組件鋪平了道路。也就是說我們可以跨平臺使用相同的react組…

[轉]阿里編程規范(精簡版)

文章目錄 1、簡介2、命名:3、格式規約4、注釋規約5、OOP規約6、集合處理7、控制語句8、異常9、日志10、單元測試11、工程規約1、簡介 統一規范標準將有助于提高行業編碼規范化水平&#xff0c;幫助行業人員提高開發質量和效率、大大降低代碼維護成本 2017年年初&#xff0c;首次…

C#(Sharp)GDI plus與圖形編程(計算機圖形學必備知識)

文章目錄 9.1 GDI+與圖形編程9.1.0 GDI概念9.1.1 GDI+繪圖命名空間9.1.2 坐標系統9.1.3 Graphics類9.2 繪圖工具類9.2.1 Pen類9.2.2 常用圖形的繪制方法9.2.3 Brush 類9.3 繪制相關圖形9.3.1 繪制曲線9.1 GDI+與圖形編程 9.1.0 GDI概念 GDI是Graphics Device Interface的縮寫…

.Net之延遲隊列

介紹具有隊列的特性&#xff0c;再給它附加一個延遲消費隊列消息的功能&#xff0c;也就是說可以指定隊列中的消息在哪個時間點被消費。使用場景延遲隊列在項目中的應用還是比較多的&#xff0c;尤其像電商類平臺&#xff1a;訂單成功后&#xff0c;在30分鐘內沒有支付&#xf…

C語言試題134之畫直線

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:用 line 畫直線 2 、溫馨提示…

KeyMob應用開發者服務平臺幫助開發者推廣和盈利

為什么80%的碼農都做不了架構師&#xff1f;>>> 2014年10月&#xff0c;新版KeyMob移動廣告聚合平臺正式上線&#xff0c;登入KeyMob移動廣告聚合平臺即可看到聚合功能&#xff0c;目前新KeyMob整合了國內外多家主流的廣告平臺&#xff0c;實實在在的為應用開發者賺…

Android GIS開發系列-- 入門季(13)Gdal簡單寫個shp文件

Gdal是用來讀寫柵格與矢量數據的&#xff0c;在Gdal官網&#xff0c;可以下載相關的資源進行平臺的編譯。其實Arcgis底層也是用Gdal來讀取shp文件的&#xff0c;那在Android中可以直接讀寫shp文件嗎&#xff0c;是可以的。這里已經有人編譯了Android端的so &#xff0c;下載地址…

VS code 搭建Vue 項目

必備工具&#xff1a;Vs Code、NodeJs 1、新建一文件目錄來存放工程文件 2、右鍵用VS Code打開 3、Ctr 打開terminal面板&#xff0c;建議先將設置鏡像服務器&#xff0c;可能否則安裝比較慢。 npm config set registry https://registry.npm.taobao.org --globalnpm config…

C語言試題135之畫方形

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:用 rectangle 畫方形 2 、溫…

C#(Sharp)操作數據庫原理及案例精析(強烈建議收藏)

劉一哥C#從入門到精通系列精品教程合集: 1.【C#程序設計】教學講義——第一章:C#語言概述 2.【C#程序設計】教學講義——第二章:簡單C#程序設計 3.【C#程序設計】教學講義——第三章:C#語言基礎 4.吐血整理:C#順序、選擇、循環結構用法與案例,這一篇就夠了! 5.C#數組原來…

SpringMVC4零配置--web.xml

servlet3.0規范后&#xff0c;允許servlet&#xff0c;filter&#xff0c;listener不必聲明在web.xml中&#xff0c;而是以硬編碼的方式存在&#xff0c;實現容器的零配置。 ServletContainerInitializer&#xff1a;啟動容器時負責加載相關配置 Java代碼 package javax.servl…

GoldenGate介紹

Oracle Golden Gate軟件是一種基于日志的結構化數據復制備份軟件&#xff0c;它通過解析源數據庫在線日志或歸檔日志獲得數據的增量變化&#xff0c;再將這些變化應用到目標數據庫&#xff0c;從而實現源數據庫與目標數據庫同步。Oracle Golden Gate可以在異構的IT基礎結構&…

[轉]我們為什么要用vue,他解決了什么問題,如何使用它?

Vue.js新手入門指南 最近在逛各大網站&#xff0c;論壇&#xff0c;以及像SegmentFault等編程問答社區&#xff0c;發現Vue.js異常火爆&#xff0c;重復性的提問和內容也很多&#xff0c;樓主自己也趁著這個大前端的熱潮&#xff0c;著手學習了一段時間的Vue.js&#xff0c;目前…

java反射機制續

http://www.cnblogs.com/fingerboy/p/5325261.html轉載于:https://www.cnblogs.com/yangmin-78819/p/5328869.html

測量人看過來:多種語言編寫的測量坐標反算神器附源碼(C#/VB)

坐標正算:【小程序】坐標正算神器V1.0(附源程序) 坐標反算一直是困擾測量人的一個問題,坐標反算是指已知兩點坐標,反求邊長和方位角。本文演示用C#和VB語言實現過程。 文章目錄 一、坐標反算原理1. 原理圖2. 計算公式3. 象限角4. 限角和坐標方位角的關系二、C#語言實現1. …

如何獲取GC(垃圾回收器)的STW(暫停)時間?

前言在現代的容器化和微服務應用中&#xff0c;因為分布式的環境和錯綜復雜的調用關系&#xff0c;APM&#xff08;Application Performance Monitoring 應用性能監控&#xff09;顯得尤為重要&#xff0c;它通過采集應用程序各種指標和請求鏈路&#xff0c;讓你知道系統當前的…

C語言試題136之打印出楊輝三角形(要求打印出 10 行如下圖)

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:打印出楊輝三角形(要求打印…

C#控件綁定數據源方式

1:控件數據源綁定泛型Dictionary<string,string> 1):Dictionart<string,string> Dnew Dictionary(string,string);xxx.DataSourcenew BindingList<string>(D.values.ToList());2):Dictionary<string, string> D new Dictionary<string,string>;…

【ArcGIS風暴】ArcGIS矢量數據分層設色后導出或裁剪后顏色分類丟失完美解決辦法

在利用ArcGIS做土地利用現狀圖或者規劃圖時,事先費了好大勁把每個地類對應的圖斑進行了符號化(用不同的顏色表示),后來把符號化好的數據導出,并進行加載,發現顏色分類完全丟失了,同樣,在利用某個重點區域范圍裁剪后,顏色變成了單一的顏色。 符號化成果: 導出后加載矢…