在 Python 中将数字格式化为固定宽度

目录

Format a number to a fixed width in Python

  1. 在 Python 中将数字格式化为固定宽度
  2. 使用 str.zfill() 将数字格式化为固定宽度
  3. 将浮点数列表格式化为固定宽度

在 Python 中将数字格式化为固定宽度

使用格式化字符串文字将数字格式化为固定宽度,例如
result = f'{my_int:03d}'. 格式化字符串文字会将数字格式化为指定的宽度,方法是在数字前面加上必要数量的前导零。

主程序
my_int = 12 # ✅ format integer to fixed width of 3 result = f'{my_int:03d}' print(result) # 👉️ '012' # ✅ format integer to fixed width of 4 result = f'{my_int:04d}' print(result) # 👉️ '0012' # ✅ format integer to fixed width of 3 (with leading spaces) result = f'{my_int:3}' print(repr(result)) # 👉️ ' 12' # ----------------------------------- my_float = 1.234567 # ✅ format float to fixed width of 8 with 3 digits after the decimal result = f'{my_float:8.3f}' print(repr(result)) # 👉️ ' 1.235' # ----------------------------------- # ✅ using str.zfill() result = str(my_int).zfill(3) print(result) # 👉️ '012' result = str(my_int).zfill(4) print(result) # 👉️ '0012'

第一个示例使用格式化字符串文字将数字格式化为固定宽度。

主程序
my_int = 12 result = f'{my_int:03d}' print(result) # 👉️ '012' result = f'{my_int:04d}' print(result) # 👉️ '0012'

第一个 f 字符串将数字格式化为 3 位宽度,第二个 f 字符串将数字格式化为 4 位宽度。

如有必要,添加前导零以将数字格式化为指定宽度。

格式化字符串文字 (f-strings) 让我们通过在字符串前加上f.
主程序
my_str = 'The number is:' my_int = 5000 result = f'{my_str} {my_int}' print(result) # 👉️ The number is: 5000

确保将表达式括在大括号 –{expression}中。

如果需要将浮点数格式化为固定宽度,也可以使用格式化字符串文字。
主程序
my_float = 1.234567 # ✅ format float to fixed length of 8 with 3 digits after the decimal result = f'{my_float:8.3f}' print(repr(result)) # 👉️ ' 1.235'

该示例将浮点数格式化为8小数点后 3 位的宽度。

该字符串用空格向左填充以将浮点数格式化为指定的长度。

使用 str.zfill() 将数字格式化为固定宽度

要将数字格式化为固定宽度:

  1. 使用str()该类将数字转换为字符串。
  2. 使用该str.zfill()方法将字符串格式化为指定的宽度。
  3. zfill()方法用数字向左填充字符串0以使其具有指定的长度。
主程序
my_int = 12 result = str(my_int).zfill(3) print(result) # 👉️ '012' result = str(my_int).zfill(4) print(result) # 👉️ '0012'

str.zfill方法获取字符串
的宽度并用数字向左填充字符串
0以使其具有指定的宽度。

将数字转换12为字符串给我们一个长度为2.

3作为宽度传递给该zfill()方法意味着字符串将左填充一个0数字。

该方法通过在符号后插入填充来str.zfill()处理前导符号前缀(例如+or )。-

主程序
num = -12 result_1 = str(num).zfill(3) print(result_1) # 👉️ '-12' result_2 = str(num).zfill(4) print(result_2) # 👉️ '-012'

请注意,符号计入字符串的宽度。

如果指定的宽度小于或等于原始字符串的长度,则返回原始字符串。

将浮点数列表格式化为固定宽度

要将浮点数列表格式化为固定宽度:

  1. 使用列表理解来遍历列表。
  2. 使用格式化字符串文字将每个浮点数格式化为固定宽度。
  3. 新列表将包含存储浮点值的字符串,格式化为指定的宽度。
主程序
my_list = [1.23, 2.34, 4.56, 5.67] # 👇️ format each float to fixed length of 5 with 1 decimal place result = [f'{item:5.1f}' for item in my_list] print(result) # 👉️ [' 1.2', ' 2.3', ' 4.6', ' 5.7']

我们使用列表理解来迭代浮点数列表。

列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。

在每次迭代中,我们使用格式化字符串文字将浮点数格式化为固定长度 5,小数点后一位。

或者,您可以使用for循环。

要将浮点数列表格式化为固定宽度:

  1. 声明一个新变量并将其初始化为一个空列表。
  2. 使用for循环遍历浮点数列表。
  3. 将每个浮点数格式化为固定宽度并将结果附加到新列表。
主程序
my_list = [1.23, 2.34, 4.56, 5.67] new_list = [] for item in my_list: new_list.append(f'{item:5.1f}') # 👇️ format each float in the list to fixed width of 5 with 1 decimal print(new_list) # ️ 👉️ [' 1.2', ' 2.3', ' 4.6', ' 5.7']

我们使用for循环遍历浮点数列表。

在每次迭代中,我们将当前数字格式化为固定长度 5,小数点后一位,并将结果附加到新列表中。

发表评论