format()方法——格式化字符串

自學python如何成為大佬(目錄):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

語法介紹

format()可以對數據進行格式化處理操作,語法如下:

format(value, format_spec)

format_spec為格式化解釋。當參數format_spec為空時,等同于函數str(value)的方式。value為要轉換的數據。format_spec可以設置非常復雜的格式轉換參數,實現比較完備的數據格式處理模板。format_spec的編寫方式如下形式:

format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]

format_spec格式控制符可以分為文字對齊、填充值、標志設置、格式化、類型轉換、千位符(數字分組)等主要應用。細化分類說明如圖1所示。

圖1? format_spec格式控制符細化分類

主要參數說明:

1)fill(填充值):此處可以填寫任何字符,通常與align、width一起使用,實現指定位數字符填充,通常格式如圖2所示,填充效果及位置如圖3所示。

圖2? fill?填充格式

圖3? fill?填充格式

通常用0、*、#等進行填充。如果不寫填充值,則使用默認填充值,默認填充值為空格。代碼如下:

print(format(81,'@<10'))??????????????#?用@填充,寬度為10個空格

print(format(81,'@>10'))??????????????#?用@填充,寬度為10個空格

輸出結果為:

81@@@@@@@@

@@@@@@@@81

2)align(對齊方式):指在width(數字寬度)內輸出時的對齊方式,分別使用<、>、^和=四個符號表示左對齊、右對齊、居中對齊和數字填充(只用于數字,在符號后進行補齊)。

3)width(數字寬度):指設定輸出字符寬度,如果數據的實際位數比width指定寬度值大,則使用數據實際的長度。如果該值的實際位數小于指定寬度,則位數將設定的fill值填充或設定的0值填充,如果沒有設置填充值,則用空格填充。

s = "PYTHON"

print(format(s,'10'))????????? #?沒有標志符,如果是字符串則默認左對齊,不足寬度部分默認用空格填充

print(format(81.23,'10'))????? #?沒有標志符,如果是數字則默認右對齊,不足寬度部分默認用空格填充

print(format(s,'0>10'))??????? #?右對齊,不足指定寬度部分用0號填充

print(format(s,'>04'))???????? #?右對齊,因字符實際寬度大于指定寬度4,不用填充

print(format(s,'*>10'))??????? #?右對齊,不足部分用“*”號填充

print(format(s,'>010'))??????? #?右對齊,不足部分用0號填充

print(format(s,'>10'))???????? #?右對齊,默認用空格填充

print(format(s,'<10'))???????? #?左對齊,默認用空格填充

print(format(s,'<010'))??????? #?左對齊,不足部分用0號填充

print(format(s,'@^10'))??????? #?中間對齊,不足部分用“@”填充,寬度為10個空格

print(format(81.23,'0<10'))??? #?左對齊,不足部分用0號填充

print(format(81.23,'@^10'))??? #?右對齊,不足部分用“@”填充

print(format(81.23,'0>10'))??? #?右對齊,不足部分用0號填充

print(format(-81.23,'0=10'))??? #?右對齊,負號后面不足部分用0號填充,

輸出結果為:

PYTHON???

???? 81.23

0000PYTHON

PYTHON

****PYTHON

0000PYTHON

??? PYTHON

PYTHON???

PYTHON0000

@@PYTHON@@

81.2300000

@@81.23@@@

0000081.23

-000081.23

4)Precision(精度):精度由小數點(.)開頭。對于浮點數,精度表示小數部分輸出的有效位數。對于字符串,精度表示輸出的最大長度。?Precision(精度)通常和Type(類型)配合起來使用。

5)Type(類型):表示輸出字符串、整數和浮點數類型的格式規則,默認為字符型s。對于整數類型,輸出格式包括7?種:

l??b:?輸出整數的二進制方式;

l??c:?輸出整數對應的?Unicode?字符;

l??d:?輸出整數的十進制方式;

l??n:?輸出整數的十進制方式;

l??o:?輸出整數的八進制方式;

l??x:?輸出整數的小寫十六進制方式;

l??X:?輸出整數的大寫十六進制方式;

對于浮點數類型,輸出格式包括7種:

l??e:?輸出浮點數對應的小寫字母?e?的指數形式;

l??E:?輸出浮點數對應的大寫字母?E?的指數形式;

l??f:?輸出浮點數的浮點表示形式,默認保留6位小數

l??F:?輸出浮點數的浮點表示形式,默認保留6位小數,無窮大轉換成大寫字母'INF'

l??g,自動調整將整數、浮點數轉換成?浮點型或科學計數法表示(超過6位數用科學計數法),并將其格式化到指定位置(如果是科學計數則是e;)。

l??G,自動調整將整數、浮點數轉換成?浮點型或科學計數法表示(超過6位數用科學計數法),并將其格式化到指定位置(如果是科學計數則是E;)。

l??%:?輸出浮點數的百分形式。

????快用錦囊

錦囊1 ?格式化字符

格式化字符主要包括截取字符串,字符串對齊方式顯示,填充字符串等幾個方面,下面舉例如下:

print(format('PYTHON','M^20.3'))?#?截取3個字符,寬度為20居中,不足用‘M’填充

print(format("PYTHON",'10'))??????????#?默認居左顯示,不足部分用‘?’填充

print(format('mingrisoft.com','.3'))??#?截取3個字符,默認居左顯示

print(format("PYTHON",'>10'))?????????#?居右顯示,不足部分用‘?’填充

s='mingrisoft.com'

print(format(s,'0>20'))????#?右對齊,不足指定寬度部分用0號填充

print(format(s,'>4'))??????#?右對齊,因字符實際寬度大于指定寬度4,不用填充

print(format(s,'*>20'))????#?右對齊,不足指定寬度部分用*號填充

print(format(s,'>020'))????#?右對齊,指定0標志位填充

print(format(s,'>20'))?????#?右對齊,沒指定填充值,用默認值空格填充

print(format(s,'+^30'))????#?居中對齊,用+號填充不足部分

輸出效果為:

MMMMMMMMPYTMMMMMMMMM

PYTHON???

min

??? PYTHON

000000mingrisoft.com

mingrisoft.com

******mingrisoft.com

000000mingrisoft.com

????? mingrisoft.com

++++++++mingrisoft.com++++++++

錦囊2 ?生成數據編號

利用format()函數實現數據編號。對數據進行編號,也是對字符串格式化操作的一種方式,使用format()方法可以對字符串進行格式化編號。只需設置填充字符(編號通常設置0),設置對齊方式時可以使用<、>和^符號表示左對齊、右對齊和居中對齊,對齊填充的符號在“寬度”范圍內輸出時填充,即可。對數字1進行3位編號,右對齊,需要設置format()方法的填充字符為0,對齊方式為右對齊,寬度為3。具體代碼為:

print(format(1,'0>3'))???

輸出結果為:

001

print(format(1,'>03'))

print(format(15,'0>5'))

輸出結果為:

001

00015

要生成的編號通常比較復雜,如根據當天的日期建立編號,或者批量生成編號,或者將給定的批量數據中的數字轉換成位數固定的編號,下面給出實現如上編號的實現方法:

import?datetime

#?時間+編號

wx=datetime.datetime.now().date()

now=datetime.datetime.now()

print(str(wx),format(1,'0>3'))??????????????????#?年月日?+3位編號

print(format(now,'%Y-%m-%d'),format(1,'0>3'))???#?年月日?+3位編號

print(format(now,'%Y%m%d'),'NO'+format(1,'0>3'))???#?年月日+NO+3位編號

print(format(now,'%d'),'NO'+format(1,'0>3'))???#?日期+NO+3位編號

print(format(now,'%H%M'),'NO'+format(1,'0>3'))???#?時鐘+分?+NO+3位編號

輸出為:

2019-07-05 001

2019-07-05 008

20190705 NO008

05 NO008

2115 NO008

#?批量生成編號

for?i?in?range(1,6):

????????print(format(i,'0>2'))

01

02

03

04

05

#?格式化列表編號

#?對已有非編號數字進行格式化編號

nba={1:'倫納德',2:'哈登',3:'喬治'}

for?key,value?in?nba.items():

????print(format(key,'0>3'),value)

結果輸出為:

001?倫納德

002?哈登

003?喬治

要實現嵌套編號,如A001-A005,B001-B005,C001-005的嵌套編號。代碼如下:

for?i?in?range(65,69):

????for?j?in?range(1,6):

?????? data=chr(i)+format(j,'0>3')+' '

???????print(data,end='')

????print()

結果輸出如下:

?

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

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

相關文章

【計算機畢業設計】092基于微信小程序二手閑置交易市場

&#x1f64a;作者簡介&#xff1a;擁有多年開發工作經驗&#xff0c;分享技術代碼幫助學生學習&#xff0c;獨立完成自己的項目或者畢業設計。 代碼可以私聊博主獲取。&#x1f339;贈送計算機畢業設計600個選題excel文件&#xff0c;幫助大學選題。贈送開題報告模板&#xff…

PostgreSQL的系統視圖pg_stat_archiver

PostgreSQL的系統視圖pg_stat_archiver 在 PostgreSQL 數據庫中&#xff0c;pg_stat_archiver 視圖提供了關于歸檔進程&#xff08;archiver process&#xff09;的統計信息。歸檔進程負責將 WAL&#xff08;Write-Ahead Logging&#xff09;日志文件復制到歸檔存儲&#xff0…

探索區塊鏈:顛覆性技術的崛起

目錄 一、引言 二、區塊鏈技術概述 三、區塊鏈應用場景 四、區塊鏈面臨的挑戰 五、區塊鏈的未來展望 六、結語 一、引言 在數字化浪潮的推動下&#xff0c;區塊鏈技術以其獨特的去中心化、透明性和不可篡改性等特性&#xff0c;正在逐步改變我們的生活。從金融領域到供應…

基于Java的茶文化交流系統【附源碼+LW】

摘 要 計算機網絡發展到現在已經好幾十年了&#xff0c;在理論上面已經有了很豐富的基礎&#xff0c;并且在現實生活中也到處都在使用&#xff0c;可以說&#xff0c;經過幾十年的發展&#xff0c;互聯網技術已經把地域信息的隔閡給消除了&#xff0c;讓整個世界都可以即時通話…

MySQL數據庫存儲引擎

MySQL數據庫存儲引擎 存儲引擎概念 存儲引擎也稱為表類型 通過不同的技術比如說&#xff0c;存儲機制&#xff0c;索引技巧&#xff0c;鎖定水平等等&#xff0c;來提供不同的功能。 查看MySQL支持的存儲引擎 show engines\G&#xff1b; 常用引擎比較 對事務有需求 innodb …

TiDB-從0到1-數據導出導入

TiDB從0到1系列 TiDB-從0到1-體系結構TiDB-從0到1-分布式存儲TiDB-從0到1-分布式事務TiDB-從0到1-MVCCTiDB-從0到1-部署篇TiDB-從0到1-配置篇TiDB-從0到1-集群擴縮容 一、數據導出 TiDB中通過Dumpling來實現數據導出&#xff0c;與MySQL中的mysqldump類似&#xff0c;其屬于…

Spring Boot中如何配置和使用多數據源

Spring Boot中如何配置和使用多數據源 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天&#xff0c;我們將深入探討如何在Spring Boot應用中配置和使用多數據…

oracle with as 是什么并且怎么用

Oracle中的WITH AS語句&#xff0c;也被稱為Common Table Expressions&#xff08;CTE&#xff09;&#xff0c;是一個用于定義臨時結果集或視圖的子句。這個臨時結果集或視圖只在當前的查詢中存在&#xff0c;并且在查詢完成后會被自動刪除。使用WITH AS可以提高SQL語句的可讀…

JavaWeb——MySQL:navicate客戶端工具簡單使用

目錄 1. 連接 2. 新建數據庫 3. 使用數據庫 4. 新建表 5.使用表 6. 導出數據庫 我這里是英文版&#xff0c;沒有進行漢化。 1. 連接 點擊左上角Connection&#xff0c;選擇MySQL&#xff0c;&#xff08;我連接的是自己計算機上的數據庫&#xff09;連接名輸入&#x…

使用ScheduledExecutorService進行任務調度

使用ScheduledExecutorService進行任務調度 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在軟件開發中&#xff0c;任務調度是一項重要的技術需求&#xff…

抖音開放平臺運營同學聯系我了,非常感謝

大家好&#xff0c;我是小悟 是怎么個事呢&#xff1f; 前幾天在對接抖音開放平臺&#xff0c;服務商代開發小程序里面的小程序備案&#xff0c;上傳備案圖片接口遇到了問題&#xff0c;具體的問題可詳閱【抖音開放平臺&#xff0c;這誰寫的&#xff0c;要扣績效吧】。 評論…

Zoom視頻會議的虛擬背景功能:打造個性化會議體驗

在遠程工作和在線交流日益普及的今天&#xff0c;視頻會議已成為連接人們的橋梁。Zoom視頻會議軟件因其出色的音視頻質量和豐富的功能而廣受歡迎。其中&#xff0c;虛擬背景功能是Zoom的一大亮點&#xff0c;它不僅能夠保護用戶隱私&#xff0c;還能為會議增添趣味性。本文將詳…

Java編程基本功大揭秘 | 詳解深入分析Java線程池源碼和底層原理,掌握實戰技巧【1】

詳解深入分析Java線程池源碼和底層原理 文章大綱引言Java線程池概念及重要性 ThreadPoolExecutor類的概述ThreadPoolExecutor類的基本功能和作用**基本功能****核心作用** ThreadPoolExecutor主要構造函數及其參數繼承關系鏈功能介紹ThreadPoolExecutor 構造器構造器參數構造器…

c語言自動售貨機

C語言編寫的自動售貨機程序可以模擬真實自動售貨機的基本功能&#xff0c;例如選擇商品、顯示價格、付款和找零。下面是一個簡單的示例代碼&#xff0c;展示了一個基本的自動售貨機程序&#xff1a; #include <stdio.h>// 商品結構體 typedef struct {char name[30];int…

破解對LabVIEW的偏見

LabVIEW被廣泛應用于科學研究、工程測試和自動化控制領域&#xff0c;具有專業性和高效的開發能力。盡管有人對其存在偏見&#xff0c;認為不如C語言&#xff0c;但LabVIEW的圖形化編程、強大集成能力、豐富社區支持和專業功能&#xff0c;使其在許多實際應用中表現出色。通過多…

Go語言環境安裝

Go下載地址 哪個能用用哪個。 https://go.dev/ https://golang.google.cn/&#xff08;Golang官網的官方鏡像&#xff09; Windows 使用.msi安裝包安裝 下載msi文件 安裝 雙擊運行go1.22.4.windows-amd64.msi Next 勾選I accept the terms in the License Agreement&…

收藏 | SSL證書無效的原因和解決辦法

當瀏覽器訪問一個使用SSL證書保護的網站時&#xff0c;會檢查其證書的有效性。如果發現證書存在問題&#xff0c;瀏覽器會顯示“SSL證書無效”的警告信息&#xff0c;提醒用戶存在潛在的安全風險。 “SSL證書無效”的警告可能會導致用戶離開站點&#xff08;并且永遠不會返回&…

MySQL高級-SQL優化-小結

文章目錄 1、insert 優化2、主鍵優化3、order by 優化4、group by 優化5、limit 優化6、count 優化7、update 優化 1、insert 優化 insert&#xff1a;批量插入、手動控制事務、主鍵順序插入 大批量插入&#xff1a;load data local infile 2、主鍵優化 主鍵長度盡量短、順序插…

系統漏洞復現與勒索病毒

知識點&#xff1a;SMB漏洞介紹、漏洞復現流程、勒索病毒攻擊與防護 滲透測試相關&#xff1a; 基本概念&#xff1a; 滲透測試就是利用我們所掌握的滲透知識&#xff0c;對網站進行一步一步的滲透&#xff0c;發現其中存在的漏洞和隱藏的風險&#xff0c;然后撰寫一篇測試報…

FastAPI教程I

本文參考FastAPI教程https://fastapi.tiangolo.com/zh/tutorial 第一步 import uvicorn from fastapi import FastAPIapp FastAPI()app.get("/") async def root():return {"message": "Hello World"}if __name__ __main__:uvicorn.run(&quo…