Python格式化:讓數據輸出更優雅

Python格式化:讓數據輸出更優雅

Python的格式化功能能讓數據輸出瞬間變得優雅又規范。不管是對齊文本、控制數字精度,還是動態填充內容,它都能輕松搞定。

一、基礎格式化:從簡單拼接開始

1. 百分號(%)格式化

在Python中,百分號格式化是一種傳統的字符串格式化方式,通過占位符來指定輸出的格式。常用的占位符有%s(字符串)、%d(整數)、%f(浮點數)。

name =?"Alice"
age =?25
print("我的名字是%s,今年%d歲。"?% (name, age))
#輸出:我的名字是 Alice,今年 25 歲。

核心要點

  • 占位符的數量和類型要與后面元組中的變量一一對應。

  • 對于浮點數,可以使用%.nf指定小數位數,例如%.2f表示保留兩位小數。

2. format () 方法

format()方法是一種更靈活強大的格式化方式,通過花括號{}作為占位符,可以按位置、關鍵字或索引來填充內容。

name =?"Bob"
age = 30
print("我的名字是{},今年{}歲。".format(name, age))
# 按位置指定
print("{1}比{0}大5歲。".format(name,?"Charlie"))
# 按關鍵字指定
print("我叫{name},今年{age}歲。".format(name="David", age=35))#輸出:
我的名字是Bob,今年30歲。
Charlie比Bob大5歲。
我叫David,今年35歲。

3. f-string(格式化字符串字面值)

Python3.6引入的f-string 是最簡潔直觀的格式化方式,在字符串前加f,直接在花括號內嵌入表達式。

name =?"Ella"
age =?28
print(f"我的名字是{name},今年{age}歲。")
# 可以在花括號內進行運算
print(f"明年我就{age +?1}歲了。")
#輸出:
我的名字是Ella,今年28歲。
明年我就29歲了。

二、進階格式化

1. 對齊與填充

在輸出表格或固定格式文本時,常常需要對齊數據。通過:<(左對齊)、:>(右對齊)、:^(居中對齊)配合填充字符實現。

# 左對齊,用空格填充
print("{:<10}".format("蘋果"))
print("{:10}".format("蘋果"))
# 右對齊,用空格填充
print("{:>10}".format("香蕉"))
# 居中對齊,用空格填充
print("{:^10}".format("橙子"))
#輸出:
蘋果 ? ? ? ?
蘋果 ? ? ? ?香蕉橙子 ? ?

用其他字符填充:

# 左對齊,用 * 填充
print("{:*<10}".format("蘋果"))
# 右對齊,用 - 填充
print("{:->10}".format("橙子"))
# 居中對齊,用 # 填充
print("{:#^10}".format("香蕉"))#輸出:
蘋果********
--------橙子
####香蕉####

2. 數字格式化

對于數字,可以控制小數位數、千位分隔符、進制表示等。

num = 12345.6789
# 保留兩位小數
print("{:.2f}".format(num))
# 添加千位分隔符
print("{:,}".format(num))
# 二進制表示
print("{:b}".format(10))
# 八進制表示
print("{:o}".format(10))
# 十六進制表示 小寫字母
print("{:x}".format(10))
# 十六進制表示 大寫字母
print("{:X}".format(10))#輸出:
12345.68
12,345.6789
1010
12
a
A

3. 日期與時間格式化

結合datetime模塊,格式化日期和時間字符串。

from datetime import datetime
now = datetime.now()
# 常見日期格式
print(now.strftime("%Y-%m-%d %H:%M:%S"))
# 自定義格式
print(now.strftime("今天是%Y年%m月%d日,星期%a"))#輸出:
2025-04-2222:49:14
今天是2025年04月22日,星期Tue

三、實用案例展示

案例 1:制作數據統計表

在數據分析中,格式化可以讓結果展示更清晰。

data = {
"產品A":?1234.56,
"產品B":?7890.12,
"產品C":?567.89
}
print("| 產品 | 銷售額 |")
print("|------|--------|")
for?product, amount?in?data.items():print(f"| {product} | {amount:,.2f} |")#輸出:
| 產品 |?銷售額?|
|------|--------|
| 產品A |1,234.56|
|?產品B?| 7,890.12 |
| 產品C |567.89|

案例 2:生成個性化邀請函

利用 f-string 快速生成批量邀請函。

guests = ["Frank",?"Grace",?"Hank"]
for?guest?in?guests:print(f"{guest}先生/女士:\n 誠邀您參加我們的晚會!")#輸出:
Frank先生/女士:
誠邀您參加我們的晚會!
Grace先生/女士:
誠邀您參加我們的晚會!
Hank先生/女士:
誠邀您參加我們的晚會!

案例 3:文件命名中的動態格式化

在批量處理文件時,根據時間或序號格式化文件名。

import datetime
now = datetime.datetime.now()
file_name = f"report_{now.strftime('%Y%m%d%H%M%S')}.txt"
print(file_name)
#輸出:report_20241231143000.txt

四、閉坑指南

占位符與變量不匹配

  • 錯誤操作

    :百分號格式化中占位符數量、類型與變量不一致。

# 錯誤:少一個變量
print("姓名:%s,年齡:%d"?% ("Leo"))
  • 解決方法

    :仔細檢查占位符和變量的對應關系,使用format()或 f-string 可減少此類錯誤。

花括號轉義問題

  • 錯誤操作

    :在 f-string中想輸出花括號卻被解析為占位符。

# 錯誤:會報錯
print(f"這是一個{括號}")
  • 解決方法

    :使用雙花括號{{}}進行轉義。

print(f"這是一個{{括號}}")?# 輸出:這是一個{括號}

格式化語法混淆

  • 錯誤操作

    :混用不同格式化方式的語法。

# 錯誤:format()方法不能用百分號占位符
print("{}.format("錯誤示范") % "示例")
  • 解決方法

    :明確每種方式的規則,推薦優先使用 f-string,簡潔且不易出錯。

五、總結回顧

從基礎的字符串拼接,到復雜的數字、日期處理,再到個性化場景應用,掌握這些格式化技巧能讓你的程序輸出更專業、更美觀。下次遇到數據展示問題,不妨試試!

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

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

相關文章

2025年滲透測試面試題總結-小鵬[實習]安全工程師(題目+回答)

安全領域各種資源&#xff0c;學習文檔&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具&#xff0c;歡迎關注。 目錄 小鵬[實習]安全工程師 1. 自我介紹 2. 有沒有挖過src&#xff1f; 3. 平時web滲透怎么學的&#xff0c;有…

VSCode科技風主題設計詳細指南

1. 科技風設計的核心特點 科技風設計是一種強調未來感、現代感和高科技感的設計風格,在VSCode主題設計中,可以通過以下幾個核心特點來體現: 1.1 色彩特點 冷色調為主:藍色、紫色、青色等冷色調是科技風設計的主要色彩高對比度:深色背景配合明亮的霓虹色,形成強烈的視覺…

android知識總結

Activity啟動模式 standard (標準模式) 每次啟動該 Activity&#xff08;例如&#xff0c;通過 startActivity()&#xff09;&#xff0c;系統總會創建一個新的實例&#xff0c;并將其放入調用者&#xff08;啟動它的那個 Activity&#xff09;所在的任務棧中。 singleTop (棧…

第3章 MySQL數據類型

MySQL數據類型 1、數字數據類型1.1 整數類型1.2 定點類型1.3 浮點類型1.4位值類型1.5 超出范圍和溢出處理1.5.1 超出范圍處理1.5.2 溢出處理 2、日期和時間數據類型3、字符串數據類型3.1 char和varchar類型3.2 binary和varbinary類型3.3 blob 和 text類型3.4 enum類型3.4.1 創建…

label-studio的使用教程(導入本地路徑)

文章目錄 1. 準備環境2. 腳本啟動2.1 Windows2.2 Linux 3. 安裝label-studio機器學習后端3.1 pip安裝(推薦)3.2 GitHub倉庫安裝 4. 后端配置4.1 yolo環境4.2 引入后端模型4.3 修改腳本4.4 啟動后端 5. 標注工程5.1 創建工程5.2 配置圖片路徑5.3 配置工程類型標簽5.4 配置模型5.…

mysql為什么一個表中不能同時存在兩個字段自增

背景。設置sort自增。會引發錯誤 通常自增字段都是用于表示數據的唯一性。數據庫限制。需要自定義排序字段大小。

牛客round95D

原題鏈接&#xff1a;D-小紅的區間修改&#xff08;一&#xff09;_牛客周賽 Round 95 題目背景&#xff1a; 初始擁有一個長度10^100元素全為0的數組&#xff0c;進行q查詢&#xff0c;每次查詢如果區間內的元素都為0就將區間變為首項為 1、公差為 1 的等差數列&#xff1b;否…

visual studio 2022更改主題為深色

visual studio 2022更改主題為深色 點擊visual studio 上方的 工具-> 選項 在選項窗口中&#xff0c;選擇 環境 -> 常規 &#xff0c;將其中的顏色主題改成深色 點擊確定&#xff0c;更改完成

實踐篇:利用ragas在自己RAG上實現LLM評估②

文章目錄 使用ragas做評估在自己的數據集上評估完整代碼代碼講解1. RAG系統構建核心組件初始化文檔處理流程 2. 評估數據集構建3. RAGAS評估實現1. 評估數據集創建2. 評估器配置3. 執行評估 本系列閱讀&#xff1a; 理論篇&#xff1a;RAG評估指標&#xff0c;檢索指標與生成指…

微軟PowerBI考試 PL300-在 Power BI 中清理、轉換和加載數據

微軟PowerBI考試 PL300-在 Power BI 中清理、轉換和加載數據 Power Query 具有大量專門幫助您清理和準備數據以供分析的功能。 您將了解如何簡化復雜模型、更改數據類型、重命名對象和透視數據。 您還將了解如何分析列&#xff0c;以便知曉哪些列包含有價值的數據&#xff0c;…

PostgreSQL 安裝與配置全指南(適用于 Windows、macOS 與主流 Linux 發行版)

PostgreSQL 是一個功能強大、開源、穩定的對象關系數據庫系統&#xff0c;廣泛用于后端開發、數據處理與分布式架構中。本指南將手把手教你如何在 Windows、macOS 以及主流 Linux 發行版 上安裝 PostgreSQL&#xff0c;并附上安裝驗證命令與基礎配置方法。 一、Windows 安裝與配…

WordPress博客文章SEO的優化技巧

在數字時代&#xff0c;博客不僅用于表達觀點&#xff0c;也能提升品牌影響力并吸引潛在客戶。許多服務器提供商&#xff08;如 Hostease&#xff09;支持 WordPress 一鍵安裝功能&#xff0c;方便新手快速完成安裝&#xff0c;專注于內容創作和 SEO 優化。然而&#xff0c;寫出…

Python:操作 Excel 折疊

??親愛的技術愛好者們,熱烈歡迎來到 Kant2048 的博客!我是 Thomas Kant,很開心能在CSDN上與你們相遇~?? 本博客的精華專欄: 【自動化測試】 【測試經驗】 【人工智能】 【Python】 Python 操作 Excel 系列 讀取單元格數據按行寫入設置行高和列寬自動調整行高和列寬水平…

雨季智慧交通:從車輛盲區到客流統計的算法全覆蓋

雨季智慧交通中的視覺分析技術應用 一、背景&#xff1a;雨季交通的復雜挑戰 雨季是城市交通管理的關鍵考驗期。以濟南為例&#xff0c;強對流天氣伴隨的短時強降水、雷雨大風及冰雹&#xff0c;不僅導致道路積水、能見度驟降&#xff0c;還加劇了大型車輛&#xff08;如渣土…

安全生產管理是什么?安全生產管理系統都有哪些核心功能?

隨著法律法規的日益嚴格和公眾對安全意識的提升&#xff0c;企業面臨的安全生產壓力也越來越大。無論是大型企業還是中小型企業&#xff0c;安全生產管理不僅關系到企業的生存與發展&#xff0c;更直接關系到員工的生命安全和企業的社會形象。因此&#xff0c;理解并實施有效的…

【PyCharm必會基礎】正確移除解釋器及虛擬環境(以 Poetry 為例 )

#工作記錄 【PyCharm使用基礎】 當遇到虛擬環境難以修復的場景&#xff0c;我們需要刪除當前解釋器和虛擬環境然后再重新創建虛擬環境&#xff0c;以下是在PyCharm中正確移除的步驟。 一、進入解釋器設置 在 PyCharm 界面右下角&#xff0c;點擊Poetry (suna0)&#xff0c;選…

day028-Shell自動化編程-判斷進階

文章目錄 1. 特殊變量補充2. 變量擴展-變量子串2.1 獲取變量字符的長度2.2 給變量設置默認值 3. 命令3.1 dirname3.2 basename3.3 cut 4. 條件測試命令&#xff1a;[]4.1 邏輯運算符4.2 文件測試4.3 案例&#xff1a;書寫腳本-檢查文件類型4.4 邏輯運算4.5 案例&#xff1a;書寫…

oracle sql 語句 優化方法

1、表盡量使用別名&#xff0c;字段盡量使用別名.字段名&#xff0c;這樣子&#xff0c;可以減少oracle數據庫解析字段名。而且把 不需要的字段名剔除掉&#xff0c;只保留有用的字段名&#xff0c;不要一直使用 select *。 2、關聯查詢時&#xff0c;選擇好主表 。oracle解析…

【Java】Ajax 技術詳解

文章目錄 1. Filter 過濾器1.1 Filter 概述1.2 Filter 快速入門開發步驟:1.3 Filter 執行流程1.4 Filter 攔截路徑配置1.5 過濾器鏈2. Listener 監聽器2.1 Listener 概述2.2 ServletContextListener3. Ajax 技術3.1 Ajax 概述3.2 Ajax 快速入門服務端實現:客戶端實現:4. Axi…

07 APP 自動化- appium+pytest+allure框架封裝

文章目錄 一、PO二、代碼簡單實現項目框架預覽&#xff1a;base_page.pydir_config.pyget_data.pylogger.pystart_session.pyconfig.yamlkey_code.yamllaunch_page_loc.pylogin_page_loc.pylaunch_page.pylogin_page.pytest_login.pypytest.inirun.py APP 自動化代碼總和 一、P…