溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python的字符串格式化方法是什么

發(fā)布時間:2023-04-17 11:16:51 來源:億速云 閱讀:91 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Python的字符串格式化方法是什么的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python的字符串格式化方法是什么文章都會有所收獲,下面我們一起來看看吧。

    Python在字符串格式化的兩種方式

    • %

    • format

    %,關(guān)于整數(shù)的輸出

    • %o:oct 八進制

    • %d:dec 十進制

    • %x:hex 十六進制

    print("整數(shù):%d,%d,%d" % (1, 22.22, 33))
    print("整數(shù)不足5位,左邊補空格   %5d   " % 22)
    print("整數(shù)不足5位,左邊補0     %05d   " % 22)
    print("整數(shù)不足5位,右邊補空格  %-5d   " % 22, "end")
    print("八進制 %o" % 222)
    print("十六進制 %x" % 12)

    執(zhí)行結(jié)果

    整數(shù):1,22,33
    整數(shù)不足5位,左邊補空格      22   
    整數(shù)不足5位,左邊補0     00022   
    整數(shù)不足5位,右邊補空格  22       end
    八進制 336
    十六進制 c
    • 包含知識點 當(dāng)你有多個參數(shù)需要格式化輸出的時候,需要用元組 ;注意不能用列表因為列表是可變的 (1,2,3)

    • 若傳入的是浮點數(shù)如 22.55 ,最后輸出的是22,不會四舍五入哦

    • 若傳入了字符串 ,是會報錯滴! '22'

    %,關(guān)于浮點數(shù)的輸出

    print("浮點數(shù):%f,%f " % (1, 22.22))
    print("浮點數(shù)保留兩位小數(shù):%.2f  " % 22.222)
    print("浮點數(shù)保留兩位小數(shù),寬5位,不足補0:%05.2f  " % 2.222)

    執(zhí)行結(jié)果

    浮點數(shù):1.000000,22.220000 
    浮點數(shù)保留兩位小數(shù):22.22  
    浮點數(shù)保留兩位小數(shù),寬5位,不足補0:02.22

    包含知識點

    默認(rèn)保留6位小數(shù),可通過 這種形式指定小數(shù)位,2代表保留兩位 .2f

    %,關(guān)于字符串的輸出

    print("字符串:%s,%s,%s" % (1, 22.22, [1, 2]))
    print("字符串不足5位,左邊補空格   %5s   " % '2')
    print("字符串不足5位,右邊補空格   %-5s   " % '2', "end")
    print("字符串寬10位,截取兩位      %10.2s " % "hello.world")

    執(zhí)行結(jié)果

    字符串:1,22.22,[1, 2]
    字符串不足5位,左邊補空格       2   
    字符串不足5位,右邊補空格   2        end
    字符串寬10位,截取兩位              he

    包含知識點 可以傳入任意類型的數(shù)據(jù),譬如整數(shù)、浮點數(shù)、列表、元組甚至字典,他都會自動轉(zhuǎn)成字符串類型

    format格式化輸出

    相對基本格式化輸出采用 % 的方法,format()功能更強大,該函數(shù)把字符串當(dāng)成一個模板,通過傳入的參數(shù)進行格式化,并且使用大括號 {} 作為特殊字符代替 %

    format,位置匹配(最常用)

    • 不帶編號,即“{}”

    • 帶數(shù)字編號,可調(diào)換順序,即“{1}”、“{2}”

    • 帶關(guān)鍵字,即“{a}”、“{tom}”

    print("今天是{}的{}生日會".format("帥哥", 18))
     
    print("今天是{1}的{0}生日會".format("帥哥", 18))
     
    print("今天是{0}的{1}生日會".format("帥哥", 18))
     
    print("今天是{name}的{key}生日會".format(22, 11, name="帥哥", key=18))
     
    print("今天是{name}的{key}生日會,接著上{}".format("test", name="帥哥", key=18))
     
    # 以下會報錯
    print("今天是{0}的{}生日會".format("帥哥", 18))
     
    print("今天是{name}的{key}生日會,接著上{}".format( name="帥哥", key=18,"test"))

    執(zhí)行結(jié)果

    今天是帥哥的18生日會
    今天是18的帥哥生日會
    今天是帥哥的18生日會
    今天是帥哥的18生日會
    今天是帥哥的19生日會,接著上test

    包含知識點 當(dāng)你只寫了 時,默認(rèn)按傳入的值的順序讀取{}

    當(dāng)你寫了數(shù)字編號 ,則可以讀取對應(yīng)位置上的值,從0開始{1}

    當(dāng)你指定了關(guān)鍵字 ,如果不指定 name=xxx ,則會報錯{name}

    當(dāng)你指定了關(guān)鍵字,又只寫了 時,你傳入帶有關(guān)鍵字指定的值必須寫在后面,類似函數(shù)(形參在前,實參在后){}

    和 {1} 是不能共存的{}

    總結(jié)

    當(dāng)用到format時,一個字符串里面的格式化輸出只用一種方式,不要混合使用,容易出問題且沒有必要

    format,指定數(shù)據(jù)類型輸出

    print("整數(shù){:d}".format(123))
    print("浮點數(shù){:5.2f}".format(123.19))
    print("字符串{:s}".format('123'))
    print("八進制{:o}".format(12))
    print("十六進制{:x}".format(13))

    執(zhí)行結(jié)果

    整數(shù)123
    浮點數(shù)123.19
    字符串123
    八進制14
    十六進制d

    包含知識點

    • 指定了 ,則只能傳字符串值,如果傳其他類型值不會自動轉(zhuǎn)換:s

    • 當(dāng)你不指定類型時,你傳任何類型都能成功,如無特殊必要,可以不用指定類型

    • 如果要結(jié)合數(shù)字編號和關(guān)鍵字使用可以如下

    print("關(guān)鍵字 {num:d}".format(num=123))
    print("數(shù)字編號 {0:d},{1:s}".format(123, "123"))

    執(zhí)行結(jié)果

    關(guān)鍵字 123
    數(shù)字編號 123,123

    format,位數(shù)補齊

    print('默認(rèn)左對齊,寬度為10,不足補空格:{:10}'.format("123"), "end")
     
    print('左對齊,寬度為10,不足補空格:{:<10}'.format("123"), "end")
     
    print('右對齊,寬度為10,不足補空格:{}{:>10}'.format("start", "123"))
     
    print('右對齊,寬度為10,取兩位小數(shù),不足補0:{:0>10.2f}'.format(22.22555))

    執(zhí)行結(jié)果

    默認(rèn)左對齊,寬度為10,不足補空格:       123 end
    左對齊,寬度為10,不足補空格:123        end
    右對齊,寬度為10,不足補空格:start       123
    右對齊,寬度為10,取兩位小數(shù),不足補0:0000022.23

    包含知識點

    • <默認(rèn)左對齊可以不用就加

    • 當(dāng)你不指定數(shù)據(jù)類型時,傳什么類型的值都能成功格式化輸出

    format,拓展使用

    print("總是顯示符號:{:0>+8.2f},{:0>+8.2f}".format(3.14, -3.14))
     
    print("百分?jǐn)?shù):{:%} {:.2%}".format(3 / 7, 3 / 7))
     
    print("逗號分隔,一般用在金錢 {:,}".format(12345678)

    執(zhí)行結(jié)果

    總是顯示符號:000+3.14,000-3.14
    百分?jǐn)?shù):42.857143% 42.86%
    逗號分隔,一般用在金錢 12,345,678

    + 包含知識點 的意義在于,當(dāng)我們輸出的是正數(shù)也能看到符號

    %百分?jǐn)?shù)是真的百分?jǐn)?shù),不是單單加個 ;譬如0.25667,變成百分?jǐn)?shù)就是 25.67%

    固定隔三位數(shù)字;傳入字符串會報錯哦。

    關(guān)于“Python的字符串格式化方法是什么”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“Python的字符串格式化方法是什么”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI