程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python字符串格式化

編輯:Python

Python字符串格式化

  • 1. % 格式字符
    • 1.1)常見的格式字符
  • 2. format()
    • 2.1)使用位置
    • 2.2)使用自定義的參數名字
    • 2.3)使用序列解包
    • 2.4)格式風格
  • 3. map
  • 4. f-字符串

字符串格式化用來把整數、實數等對象轉化為特定格式的字符串


1. % 格式字符

% 格式字符:% 之前的字符串為格式字符串,之後的部分為需要格式化的內容

例如:

name = "cspsy"
job = "student"
print("My name is %s." % name)
# 如果有多個需要進行格式化的內容,需要使用 () 將其包裹。
print("My name is %s and my job is %s." % (name, job))

1.1)常見的格式字符


2. format()

format().format() 之前的字符串為格式字符串,裡面的部分的內容為需要格式化的內容
格式串中的 {} 的內容與 format() 裡面的內容相對應。

format() 方法進行格式化:

  • 可以使用位置進行格式化
  • 可以使用自定義的參數名字進行格式化
  • 支持序列解包來進行格式化

2.1)使用位置

  • 不寫位置下標,則格式字符串內的花括號帶的下標默認從 0 開始遞增排列
name = "cspsy"
job = "student"
print("My name is {} and my job is {}.".format(name, job))

  • 書寫位置下標,輸出括號內指定位置下標的內容(括號內下標從 0 開始遞增排列
one, two, three = 1, 2, 3
print("You use {0}, {2}, {1}.".format(one, two, three))

2.2)使用自定義的參數名字

  • 可以在格式字符串的 {} 內使用自定義的參數名字,與待格式化的內容對應。
    例如:
one, two, three = 1, 2, 3
print("You use {o}, {thr}, {tw}.".format(o=one, tw=two, thr=three))

2.3)使用序列解包

將解包後的名字,key 值放在格式化字符串內。
例如:

number = {
'one': 1, 'two': 2, 'three': 3}
print("You use {one}, {three}, {two}.".format(**number))

2.4)格式風格

  • 數字

進制轉換

one, two, three = 11111, 2222, 3
print("You use {0:#x}, {1:#o}, {2:#b}".format(one, two, three))

保留小數點
使用 :.xfx 為想要保留的小數點個數,如果 : 後面帶有 +,則會保留符號輸出。

one, two, three = 11111.1111, 2.2222, 3.3333333
print("You use {0:.2f}, {1:+.0f}, {2:.3f}".format(one, two, three))

科學計數法

one, two, three = 11111.1111, 2.2222, 3.3333333
print("You use {0:.2e}, {1:+.0e}, {2:.3e}".format(one, two, three))


百分比形式

one, two, three = 11111.1111, 2.2222, 3.3333333
print("You use {0:.0%}, {1:.2%}, {2:.3%}".format(one, two, three))

以逗號分隔

one, two, three = 11111.1111, 2.2222, 3.3333333
print("You use {0:,}, {1:,}, {2:,}".format(one, two, three))

  • 對齊方式

使用 :cxn 來進行,n 為最小長度,c 為長度不夠時,填充的字符(不寫則為空格)
x 為對齊方式:其中,^:居中,<:左對齊,>:右對齊

例如:

one, two, three = 11111.1111, 2.2222, 3.3333333
print("You use {0:#^12.2f}, {1:.<+8.0f}, {2:>7.3f}".format(one, two, three))


3. map

可以通過內置 map() 函數來進行格式化字符串輸出:

formatter = "You use {0}".format
for num in map(formatter, range(1, 6)):
print(num)


這個例子寫法與下面等價:

formatter = "You use {0}".format
for num in range(1, 6):
print(formatter(num))

4. f-字符串

從 Python 3.6.x 開始支持一種新的字符串格式化方式,官方叫做 Formatted String Literals,簡稱 f-字符串,在字符串前加字母 f,在 {}填寫表達式
使用如下:

one, two, three = 11, 222, 3333
print(f'You use {
one}, {
two * three}.')


Python 3.8 之後,還可以 {xxx=},將 xxx=輸出出來且輸出它對應的值:

one, two, three = 1, 2, 3
print(f'You use {
one}, {
two * three}, {
two * three = }.')


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved