網站首頁 編程語言 正文
格式化字符串
當我們需要創建文本或文檔時,我們往往希望能夠將值正確格式化為結構化字符串。?Python
提供了多種選項用于正確對字符串進行格式化并呈現。本節,我們將介紹創建格式化文本時的一些常用選項。
Format 方法
在 Python 通常使用format方法格式化字符串,通常使用以下方式利用?format
方法顯示變量:
result = template.format(*parameters)
其中,模板?(template
)?是一個需要使用變量進行解釋的字符串。在最簡單的情況下,模板將大括號之間的值替換為?parameters
?變量值,為了更好的理解,
我們查看以下簡單示例:
>>> 'My name is {}'.format('Brainiac') 'My name is Brainiac' >>> 'The price of ({}) is {}'.format('apple',6.28) 'The price of (apple) is 6.28' >>> 'And all of that happens in the {1} {0}.'.format('second','first') 'And all of that happens in the first second.' >>> 'The {fruit} should be eaten within {number} days.'.format(number=3, fruit='banana') 'The banana should be eaten within 3 days.'
在絕大多數情況下,我們只需要這種格式就能應對。但是對于復雜情況,例如自動對齊字符串和創建排版美觀的文本時,format
方法也提供了更多的選擇。
接下來,我們編寫腳本?format_string.py
來打印需要對齊的表格:
# 輸入數據 data = [ ????(1615.8, 1604.1), ????(183.3, 152.8), ????(1254.9, 1308.1), ????(155.4, 161.0), ] # 表頭 print(' Q1 FY21 | ?Q1 FY22 | ?Change') # 以正確的格式對齊和顯示數據 TEMPLATE = '{fy21:>+8,} | {fy22:>+8} | {change:>8.3}' # 打印數據 for fy21, fy22 in data: ????row = TEMPLATE.format(fy21=fy21, fy22=fy22, change=fy22 - fy21) ????print(row)
運行以上腳本以顯示對齊后的表格:
$ python format_string.py ?Q1 FY21 | ?Q1 FY22 | ? Change +1,615.8 | ?+1604.1 | ???-11.7 ??+183.3 | ??+152.8 | ???-30.5 +1,254.9 | ?+1308.1 | ????53.2 ??+155.4 | ??+161.0 | ?????5.6
在以上腳本中,使用?TEMPLATE
?常量定義了一個具有三列的表格,每一列由一個名為?fy21
、fy22
和?change
的參數定義,便于將模板應用于格式調用。
用于定義格式所有內容都在大括號內。在參數名稱之后,使用一個冒號分隔格式定義,在所有列中,我們都將寬度設置為8
個字符,以確保所有列具有相同的寬度,并使用 > 符號將值向右對齊:
-
Fy21
?帶有 “,
”?符號的作為千位分隔符 ——?{fy21:>+8,}
-
Fy21
?和fy22為正值,因此使用?“+
”?號用于自動添加數值符號 ——?{fy21:>+8,}
、{fy22:>+8}
-
Change
?使用 “.
” 符號來聲明顯示精度 ——?{change:>8.3}
其它格式化字符串方法
有時,我們還可能還看到過使用%
運算符的來設置Python
格式,但它不如format
方法靈活,因此,已不推薦使用。
此外,自Python 3.6
以來Python
中新增了一個很棒的特性是使用f-strings
進行格式化,它使用定義的變量執行格式化操作:
>>> p1 = 'first' >>> p2 = 'second' >>> f'And all of that happens in the {p1} {p2}.' 'And all of that happens in the first second.'
使用這種特性可以簡化很多代碼,并允許我們創建非常具有可讀性的代碼。
原文鏈接:https://juejin.cn/post/7126003153392107528
相關推薦
- 2023-02-17 Python的OptionParser模塊示例教程_python
- 2022-02-16 Flutter無context頁面跳轉及獲取全局context
- 2022-10-14 clickhouse連hadoop集群配置(帶kerberos認證)
- 2022-08-15 關于PL/SQL進行更新操作時卡死的解決辦法
- 2022-10-12 docker配置阿里云鏡像倉庫的實現_docker
- 2022-07-23 SpringBoot分頁查詢
- 2023-06-17 tensorflow1.x和tensorflow2.x中的tensor轉換為字符串的實現_pytho
- 2022-10-31 Golang中map數據類型的使用方法_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支