iT邦幫忙

0

Python 字串string 方法,zfill() & f"{i:0xd}" &浮點數格式化

  • 分享至 

  • xImage
  •  

zfill()

zfill() 是 Python 字串string方法之一,用於在字串左側填充零,使其達到指定的長度。
這對於格式化數字(特別是需要在數字前補零的情況)非常有用,比如日期、時間或序號的格式化。

str.zfill(width)

width:指定的最小總長度。如果原始字串的長度小於 width,則會在左側補零;若大於或等於 width,則不會做變動。

範例

範例 1:簡單補零

num = "42"
padded_num = num.zfill(5)
print(padded_num)  # 輸出:'00042'

這裡,num 長度為 2,小於指定的寬度 5,因此在左側填充了三個零。

範例 2:負數的情況

num = "-42"
padded_num = num.zfill(5)
print(padded_num)  # 輸出:'-0042'

對於負數,zfill() 會在負號後填充零,以保持負號在最左側。

範例 3:字串長度超過指定寬度

text = "12345"
padded_text = text.zfill(3)
print(padded_text)  # 輸出:'12345'

在此例中,字串長度已經大於 width,因此不會進行補零操作。

使用場景

當需要格式化數字並在它們前面加零時。
生成固定寬度的 ID 或序列號。
時間格式化時,確保分和秒是兩位數字。

f"{i:0d}"

各部分含義:
f"{}":使用 f-string 是 Python 格式化字串的一種方式,
f"" 字符串內的花括號 {} 用來表示需要替換的變量或表達式。

{i:0d}:花括號內的內容是格式化指令,詳細分為以下幾個部分:

i:需要被格式化的變量(這裡是變量 i)。
: 冒號分隔符,表示接下來是格式化規則。
0d:表示以十進位(d)的方式輸出,並在左側補零 (0) 使數字達到指定的寬度。

在 Python 中,f"{i:0d}" 是一種使用 f-string 格式化字串的方法,它讓數字 i 以指定的格式出現在字串中
假設我們要讓數字 i 顯示為 3 位數字,不足 3 位的部分以 0 補足,那麼可以這樣使用:

i = 5
formatted_i = f"{i:03d}"
print(formatted_i)  # 輸出:'005'

這裡的 03d 表示:
-0:在數字前面補零。
-3:總長度為 3 位。
-d:十進位的整數格式。

string 填充和對齊

從 Python 3.6 開始,f-string 支持對字串進行靈活的填充和對齊控制,語法簡潔,功能強大。

右對齊 :*>

text = "Hello"
result = f"{text:*>10}"  # `*` 為填充字符,總寬度為 10
print(result)  # 輸出:'*****Hello'

左對齊 :*<

text = "Hello"
result = f"{text:*<10}"
print(result)  # 輸出:'Hello*****'

居中對齊 :*^

text = "Hello"
result = f"{text:*^10}"
print(result)  # 輸出:'**Hello***'

f-string 浮點數格式化的基本語法

f-string 浮點數格式的基本語法是 {value:.nf},其中:

  • value 是要格式化的數字變數。
  • n 是顯示的小數點位數。
  • .f 表示要將數字顯示為浮點數格式。
pi = 3.14159
print(f"{pi:.2f}")  # 輸出:'3.14'
  1. 固定小數點位數
    使用 .nf 可以固定小數點的位數,多餘的位數會進行四捨五入,少於的位數則補零。
num = 5.6789
print(f"{num:.2f}")  # 輸出:'5.68'
print(f"{num:.3f}")  # 輸出:'5.679'
  1. 控制總寬度和小數位數
    可以指定數字的 總寬度,包括小數點及小數點後的位數。如果顯示的數字少於設定的寬度,則自動在左邊填充空格。
    語法為 {value:width.nf}:
  • width 指定輸出的總寬度(包括小數點和小數位數)。
  • .nf 表示小數點後顯示的位數。
num = 3.14
print(f"{num:8.2f}")  # 總寬度 8,小數點後 2 位,輸出:'    3.14'
print(f"{num:8.3f}")  # 總寬度 8,小數點後 3 位,輸出:'   3.140'

string 中的分隔線

  1. 基本的文字分隔線
    使用純字符創建簡單的分隔線,比如 - 或 = 等。這樣的分隔線通常用於 CLI 輸出,區分不同的內容區域。
print("-" * 40)  # 輸出: ----------------------------------------
print("=" * 40)  # 輸出: ========================================

2.使用 center() 方法製作帶文本的分隔線
可以在分隔線中加入文本,並用 center() 方法自動居中,讓分隔線看起來更具說明性:

print(" Welcome ".center(40, "-"))   # 輸出: ----------- Welcome ------------
print(" Chapter 1 ".center(40, "=")) # 輸出: ========== Chapter 1 ==========
  1. 使用 f-string 生成分隔線
    如果分隔線的長度或樣式需要依據變數動態生成,可以使用 f-string 來格式化:
width = 50
char = "*"
print(f"{char * width}")    # 使用 width 控制長度,輸出:*********************************

4.分隔線函數
可以寫一個分隔線函數,靈活地控制字符、長度等。

def separator(char="-", length=40, text=""):
    if text:
        print(f" {text} ".center(length, char))
    else:
        print(char * length)

separator("*", 50, " Section ")
separator("#", 30)

***************** Section *****************
##############################

使用 f-string 的千位分隔符

在 f-string 中,可以在數字後加上 :,,這樣會自動以千位分隔顯示。

num = 1234567890
print(f"{num:,}")
#1,234,567,890


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言