欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

分享15個(gè)令人相見(jiàn)恨晚的Python字符串格式化技巧

 更新時(shí)間:2024年11月18日 11:38:53   作者:bug鴨陸  
這篇文章給大家介紹了15個(gè)Python字符串格式化技巧,涵蓋了f-string的基本用法、格式化數(shù)字、日期時(shí)間、百分比、進(jìn)制轉(zhuǎn)換、多行字符串、位置和關(guān)鍵字參數(shù)的format()方法等,這些技巧將幫助你編寫(xiě)更高效、優(yōu)雅且Pythonic的代碼,需要的朋友可以參考下

今天,我將向大家分享15個(gè)令人相見(jiàn)恨晚的Python字符串格式化技巧,幫你寫(xiě)出更高效、優(yōu)雅且Pythonic的代碼。

1. f'{variabe=}'

如果我們?cè)趂-字符串中的變量后添加 = 符號(hào),它會(huì)同時(shí)打印變量名稱和值。

name: str = 'Jack'   age: int = 21   city: str = 'New York'   print(f'{name=} {age=} {city=}')   # name='Jack' age=21 city='New York'   

這個(gè)技巧對(duì)于代碼調(diào)試和日志記錄非常有用。

2. 四舍五入到小數(shù)點(diǎn)后N位

要將數(shù)值四舍五入到小數(shù)點(diǎn)后N位,可以簡(jiǎn)單使用 {number:.Nf} 的形式(N為具體數(shù)字):

PI: float = 3.141592653589793   print(f'{PI:.2f}')   print(f'{PI:.3f}')   print(f'{PI:.4f}')   

3. 四舍五入到 N 個(gè)有效數(shù)字

要將數(shù)值四舍五入到N位有效數(shù)字,可以簡(jiǎn)單使用 {number:.Ng} 的形式(N為具體數(shù)字):

number: int = 131452   print(f'{number:.2g}')  # 1.3e+05   print(f'{number:.3g}')  # 1.31e+05   print(f'{number:.4g}')  # 1.315e+05      x: float = 0.0131452   print(f'{x:.2g}')   # 0.013   print(f'{x:.3g}')   # 0.0131   print(f'{x:.4g}')   # 0.01315   

4. 格式化原始字符串

原始字符串就是轉(zhuǎn)義字符(\)不再轉(zhuǎn)義其他字符,而只是原本的反斜杠。在字符串前添加 f 就可格式化字符串,在字符串前添加 r 就可讓字符串僅表示原始含義。要使字符串既是格式化字符串又是原始字符串,只需在字符串前面添加 fr 或 rf,二者皆可。

name: str = 'Jack'   age: int = 20   print(fr'{name=} \n {age=}')  # name='Jack' \n age=20   print(rf'{name=} \n {age=}')  # name='Jack' \n age=20   

5. 使用空格對(duì)齊

可以通過(guò) <N>N 和 ^N 實(shí)現(xiàn)字符串的左、右和居中對(duì)齊,N 表示填充后的字符串寬度(默認(rèn)用空格填充):

fruit: str = 'banana'   print(f'[{fruit:<20}]') # [banana              ]   print(f'[{fruit:>20}]') # [              banana]   print(f'[{fruit:^20}]') # [       banana       ]   

注意,如果 fruit 的長(zhǎng)度大于20,則會(huì)被截?cái)唷?/p>

6. 使用其他字符對(duì)齊

在上面的對(duì)齊方式中,默認(rèn)使用空格填充。實(shí)際上,我們可以按自己的意愿指定其他填充字符,比如:

fruit: str = 'banana'   print(f'[{fruit:#<20}]') # [banana##############]   print(f'[{fruit:=>20}]') # [==============banana]   print(f'[{fruit:*^20}]') # [*******banana*******]   

7. f-字符串中單雙引號(hào)的使用

在舊版本的Python(<Python 3.12)中,f-字符串的內(nèi)外引號(hào)形式必須剛好相反,比如,外部為雙引號(hào),則內(nèi)部須為單引號(hào),反之亦然。如果內(nèi)外引號(hào)形式相同則會(huì)發(fā)生語(yǔ)法錯(cuò)誤。

person_info: dict = {'name': 'Jack', 'age': 25}   print(f'Name: {person_info["name"]}; Age: {person_info["age"]}')   # Name: Jack; Age: 25   print(f"Name: {person_info['name']}; Age: {person_info['age']}")   # Name: Jack; Age: 25   # print(f"Name: {person_info["name"]}; Age: {person_info["age"]}")   # SyntaxError: f-string: unmatched '['   

但是如果Python版本在3.12及以上,則f-字符串的內(nèi)外引號(hào)形式可以相同,比如:

print(f"Name: {person_info["name"]}; Age: {person_info["age"]}")   # Name: Jack; Age: 25   print(f'Name: {person_info['name']}; Age: {person_info['age']}')   # Name: Jack; Age: 25   

8. 大數(shù)字格式化—插入千分位符

我們可以在f-字符串中插入千分位符(逗號(hào)),增加代碼的可讀性,語(yǔ)法形式為:{number:,}

number: int = 10000000000   print(f'{number:,}')    # 10,000,000,000   

9. 展示原始輸出

在f-字符串中的變量后添加 !r 可以讓我們展示原始輸出,作用相當(dāng)于 repr(variable)

name: str = 'Jackzhang'   print(f'raw output: {repr(name)}')   # raw output: 'Jackzhang'   print(f'raw output: {name!r}')   # raw output: 'Jackzhang'   

這個(gè)技巧在代碼調(diào)試和日志記錄的場(chǎng)景中會(huì)比較有用。

10. 日期時(shí)間格式化

在f-字符串中,我們還可以輕松實(shí)現(xiàn)日期時(shí)間的格式化,格式化代碼如下:

  • %Y:表示完整年份,如 2024

  • %y:表示截?cái)嗟哪攴?,?24

  • %m:將月份表示為數(shù)字

  • %d:將天表示為數(shù)字

  • %A:表示星期幾(全稱),如 Monday, Tuesday, …

  • %a:表示星期幾(簡(jiǎn)稱),如 Mon, Tue, …

from datetime import datetime      ddate: datetime = datetime.now()   print(f'{ddate: %Y-%m-%d}')     # 2024-09-05   print(f'{ddate: %y/%m/%d}')     # 24/09/05   print(f'{ddate: %d/%m/%y %A}')  # 05/09/24 Thursday   print(f'{ddate: %Y-%m-%d %a}')  # 05/09/24 Thu   

其他更多格式化代碼可以參考:https://docs.python.org/3/library/datetime.html#format-codes

11. 浮點(diǎn)數(shù)轉(zhuǎn)化百分比

我們也可以通過(guò)f-字符串直接將數(shù)字轉(zhuǎn)換百分比,并且指定百分比中的小數(shù)位。

print(f'{0.25:.0%}')    # 25%   print(f'{0.5:.1%}')     # 50.0%   print(f'{0.75:.2%}')    # 75.00%   print(f'{1.25:.3%}')    # 125.000%   

12. 二、八及十六進(jìn)制數(shù)字展示

在f-字符串中,我們也可以將數(shù)字表示為二進(jìn)制、八進(jìn)制和十六進(jìn)制。

  • number:b:以二進(jìn)制表示數(shù)字

  • number:o:以八進(jìn)制表示數(shù)字

  • number:x:以十六進(jìn)制表示數(shù)字

a, b, c = 4, 16, 128   print(f'binary={a:b} octal={a:o} hexadecimal={a:x}')   # binary=100 octal=4 hexadecimal=4   print(f'binary={b:b} octal={b:o} hexadecimal={b:x}')   # binary=10000 octal=20 hexadecimal=10   print(f'binary={c:b} octal={c:o} hexadecimal={c:x}')   # binary=10000000 octal=200 hexadecimal=80   

13. 三引號(hào)f-字符串

三引號(hào)字符串可跨越多行,并且輸出與輸入完全一致(包括位置、縮進(jìn)等)。

person_info: dict = {       'name': 'Jackzhang',       'age': 25,       'gender': 'Male',       'city': 'San Francisco',   }   msg: str = f'''   name: {person_info.get('name')}   age: {person_info.get('age')}   gender: {person_info.get('gender')}   city: {person_info.get('city')}   '''      print(msg)   

14. 帶有位置參數(shù)的 format()

f-字符串的其中一個(gè)局限就是,我們無(wú)法將其用作模板字符串,將其存儲(chǔ)在數(shù)據(jù)庫(kù)中。

為了能夠在數(shù)據(jù)庫(kù)中存儲(chǔ)這樣的模板字符串供我們多次調(diào)用,可以這樣做:

person_info: dict = {       'name': 'Jackzhang',       'gender': 'Male',   }   temp_s: str = 'my name is {} and my gender is {}'   print(temp_s.format(person_info['name'], person_info['gender']))   # my name is Jackzhang and my gender is Male   

請(qǐng)注意,第一個(gè)參數(shù)名稱分配給第一個(gè)花括號(hào),而第二個(gè)參數(shù)年齡分配給第二個(gè)花括號(hào)。如果有更多括號(hào),以此類(lèi)推。

15. 帶有關(guān)鍵字參數(shù)的 format()

將 .format() 與位置參數(shù)一起使用的限制之一是參數(shù)必須嚴(yán)格遵循特定的順序。為了克服這個(gè)限制,我們可以改用關(guān)鍵字參數(shù)。關(guān)鍵是我們現(xiàn)在需要將變量名稱添加到字符串中,如下所示:

person_info: dict = {       'name': 'Jackzhang',       'gender': 'Male',   }   temp_s: str = 'my name is {name} and my gender is {gender}'   print(temp_s.format(name=person_info['name'],                        gender=person_info['gender']))   # my name is Jackzhang and my gender is Male   print(temp_s.format(gender=person_info['gender'],                        name=person_info['name']))   # my name is Jackzhang and my gender is Male   

從上面的代碼片段中我們可以看出,采用關(guān)鍵字參數(shù)引用后,即使改變參數(shù)順序,仍然可以獲得相同的結(jié)果。

總結(jié)

到此這篇關(guān)于15個(gè)Python字符串格式化技巧的文章就介紹到這了,更多相關(guān)Python字符串格式化技巧內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python2.7簡(jiǎn)單連接與操作MySQL的方法

    Python2.7簡(jiǎn)單連接與操作MySQL的方法

    這篇文章主要介紹了Python2.7簡(jiǎn)單連接與操作MySQL的方法,涉及Python使用MySQLdb模塊操作MySQL連接及命令運(yùn)行的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04
  • Python實(shí)現(xiàn)查找數(shù)組中任意第k大的數(shù)字算法示例

    Python實(shí)現(xiàn)查找數(shù)組中任意第k大的數(shù)字算法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)查找數(shù)組中任意第k大的數(shù)字算法,涉及Python針對(duì)數(shù)組的排序、查找等相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • Python 函數(shù)裝飾器應(yīng)用教程

    Python 函數(shù)裝飾器應(yīng)用教程

    函數(shù)裝飾器是Python提供的一種增強(qiáng)函數(shù)功能的標(biāo)記函數(shù),本文將帶大家深入學(xué)習(xí)一下Python 函數(shù)裝飾器,感興趣的同學(xué)跟隨小編一起學(xué)習(xí)吧
    2021-12-12
  • Python表示矩陣的方法分析

    Python表示矩陣的方法分析

    這篇文章主要介紹了Python表示矩陣的方法,結(jié)合具體實(shí)例形式分析了Python表示矩陣的方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2017-05-05
  • 借助Paramiko通過(guò)Python實(shí)現(xiàn)linux遠(yuǎn)程登陸及sftp的操作

    借助Paramiko通過(guò)Python實(shí)現(xiàn)linux遠(yuǎn)程登陸及sftp的操作

    這篇文章主要介紹了借助Paramiko通過(guò)Python實(shí)現(xiàn)linux遠(yuǎn)程登陸及sftp,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python操作sqlite3快速、安全插入數(shù)據(jù)(防注入)的實(shí)例

    Python操作sqlite3快速、安全插入數(shù)據(jù)(防注入)的實(shí)例

    這篇文章主要介紹了Python操作sqlite3快速、安全插入數(shù)據(jù)(防注入)的實(shí)例,通過(guò)在一個(gè)表格中進(jìn)行操作來(lái)論述如何使用Python快速安全地操作sqlite3,需要的朋友可以參考下
    2014-04-04
  • Django之路由層的實(shí)現(xiàn)

    Django之路由層的實(shí)現(xiàn)

    這篇文章主要介紹了Django之路由層的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python實(shí)現(xiàn)的txt文件去重功能示例

    Python實(shí)現(xiàn)的txt文件去重功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的txt文件去重功能,涉及Python針對(duì)txt文本文件的讀寫(xiě)、字符串遍歷、判斷相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • Python魔術(shù)方法詳解

    Python魔術(shù)方法詳解

    這篇文章主要介紹了Python魔術(shù)方法詳解,本文講解了構(gòu)造和初始化、用于比較的魔術(shù)方法、數(shù)值處理的魔術(shù)方法、普通算數(shù)操作符等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • Python3.4 splinter(模擬填寫(xiě)表單)使用方法

    Python3.4 splinter(模擬填寫(xiě)表單)使用方法

    今天小編就為大家分享一篇Python3.4 splinter(模擬填寫(xiě)表單)使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10

最新評(píng)論