博客專欄

        EEPW首頁 > 博客 > 這些 f-string 的用法,90% 的 Pythoner 不知道!

        這些 f-string 的用法,90% 的 Pythoner 不知道!

        發布人:AI科技大本營 時間:2022-06-19 來源:工程師 發布文章
        作者 | 派森醬

        來源 | Python技術f-string 是 Python3.6 版本開始引入的特性,想必很多 Python 用戶都基礎性的使用過,通過它我們可以更加方便地向字符串中嵌入自定義內容,但 f-string 真正蘊含的功能遠比大多數用戶知道的要豐富,今天我們就來一起探索它們!
        基礎用法f-string 最基礎的用法很簡單,如下例所示,在前綴f的字符串中向{}內直接填入要嵌入的值、變量或計算表達式:

        print(f'1+1 = {2}')
        # 輸出:1+1 = 2
         
        a = 1 + 1
        print(f'1+1 = {a}')
        # 輸出:1+1 = 2
         
        print(f'1+1 = {1+1}')
        # 輸出:1+1 = 2
        自記錄表達式

        從 Python3.8 版本開始,f-string 引入了自記錄表達式,使得我們可以按照下面的寫法快速輸出一些計算表達式:

        import math
        a = 8
        print(f'{math.log(8) = }')

        # 輸出:math.log(8) = 2.0794415416798357
        多行 f-string

        通過最外層包裹小括號,我們可以像下面這樣非常靈活地撰寫多行 f-string:

        a = 1
        b = 2
        c = 3
        s = (
            f'{a = }\n'
            f'{b = }\n'
            f'{c = }\n'
        )
        print(s)

        # 輸出:
        a = 1
        b = 2
        c = 3
        控制浮點數精度

        在 f-string 中我們可以按照下列方式靈活地控制浮點數的小數位數:

        import math
        pi = math.pi
        print(f'{pi:.3f}')
        print(f'{pi:.8f}')

        # 輸出
        3.142
        3.14159265
        進制轉換輸出

        在 f-string 中,我們可以直接在輸出時將目標轉換成不同的進制進行輸出:

        number_10 = 1024
        print(f'{number_10:b}')  # 2進制
        print(f'{number_10:o}')  # 8進制
        print(f'{number_10:x}')  # 16進制小寫
        print(f'{number_10:X}')  # 16進制大寫
        print(f'{number_10:c}')  # ASCII編碼

        # 輸出:
        10000000000
        2000
        400
        400
        ?
        字符串對齊

        f-string 默認為右對齊,我們可以修改對齊方式:

        text = 'python'
        print(f'{text:>10}')  # 右對齊
        print(f'{text:<10}')  # 左對齊
        print(f'{text:^10}')  # 居中對齊
        print(f'{text:*^10}')  # 居中對齊,用*補齊空白
        n = 10
        print(f'{text:#^{n}}')  # 參數嵌套,居中對齊,用~補齊空白

        # 輸出:
            python
        python
          python
        **python**
        ##python##
        標準化顯示寬度

        當我們需要對 f-string 打印內容的顯示最小寬度進行限制時,譬如打印出類似表格的結構,可以這樣寫:

        for x in range(1,11):
            print(f'{x:02}|{x**2:3}/{x**5:6}')
            
        # 輸出:
        01|  1|     1
        02|  4|    32
        03|  9|   243
        0416|  1024
        0525|  3125
        0636|  7776
        074916807
        086432768
        098159049
        10|100|100000

        格式化日期

        針對日期類型的變量,我們可以參考下面的方式,直接在 f-string 中快速地進行格式化:

        import datetime
        now = datetime.datetime.now()
        print(f'{now:%Y年%m月%d號%H點%M分%S秒}')
         
        # 輸出:
        20220521170408

        科學計數

        我們可以實現指定位數的科學計數法顯示方式:

        import math
        pi = math.pi
        print(f'{pi*100:.10e}')
         
        # 輸出
        3.1415926536e+02
        控制有效數字位數

        我們還可以控制所顯示數字的有效數字位數,即從左開始第一個不為0的數字往右一共顯示的個數,當位數低于整數部分時會自動變成科學計數法格式:

        a = 1312.3123123123123
        print(f'{a:.10g}')
        #輸出:1312.312312
         
        a = 1312.3123123123123
        print(f'{a:.3g}')
        #輸出:1.31e+03
        總結

        關于在 Python 中 f-string 的幾個技巧的文章就介紹到這里,這些騷操作你學會了嗎?還有哪些狂拽炫酷吊炸天的代碼,歡迎留言區討論!


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安泽县| 瑞昌市| 上饶县| 尖扎县| 五大连池市| 读书| 白水县| 南漳县| 平武县| 剑川县| 历史| 东丽区| 化隆| 巴马| 安西县| 林西县| 黔西| 隆子县| 安阳县| 铁力市| 上饶县| 梅河口市| 磐石市| 富平县| 伊川县| 沧州市| 琼海市| 讷河市| 民乐县| 芜湖县| 拉萨市| 肥东县| 靖边县| 高阳县| 惠东县| 岑巩县| 正蓝旗| 瑞安市| 莆田市| 乳山市| 阿坝县|