python怎么对齐输出数字

python怎么对齐输出数字
最新回答
三生一梦

2021-05-23 16:30:24

在 Python 中,对齐输出数字可以通过 format() 函数或 f-string(Python 3.6+)实现,支持左对齐、居中对齐、右对齐,并可设置最小宽度、填充字符及小数精度。以下是具体方法及示例:

1. 使用 format() 函数语法"{:alignwidth.precisionf}".format(value)
  • align:对齐方式

    <:左对齐

    ^:居中对齐

    >:右对齐(默认)

  • width:最小输出宽度(不足时填充)
  • precision:小数位数(仅对浮点数有效)
  • value:要格式化的数字
示例# 左对齐(宽度10,保留2位小数)print("{:<10.2f}".format(123.456)) # 输出: "123.46 "# 居中对齐(宽度10,填充空格)print("{:^10.2f}".format(123.456)) # 输出: " 123.46 "# 右对齐(宽度10,填充0)print("{:0>10.2f}".format(123.456)) # 输出: "0000123.46"# 动态宽度(通过变量指定)width = 8print("{:*>{}.2f}".format(12.34, width)) # 输出: "*12.34"2. 使用 f-string(推荐,Python 3.6+)语法f"{value:alignwidth.precisionf}"
  • 参数与 format() 相同,但更简洁。
示例num = 123.456# 左对齐print(f"{num:<10.2f}") # 输出: "123.46 "# 居中对齐(填充'-')print(f"{num:-^10.2f}") # 输出: "--123.46--"# 右对齐(宽度自适应)print(f"{num:>10.2f}") # 输出: " 123.46"# 整数对齐(需先转为字符串)integer = 42print(f"{integer:0>5}") # 输出: "00042"3. 注意事项
  • 浮点数与整数

    format() 和 f-string 的 f 类型仅适用于浮点数。若需对齐整数,可先转为字符串或使用 d 类型(如 "{:05d}".format(42))。

  • 宽度不足:若数字实际宽度 ≥ 指定宽度(如 "{:5.2f}".format(1234.567)),会按实际宽度输出,不会截断
  • 填充字符:默认填充空格,也可指定任意字符(如 *、0),但需紧跟对齐符号(如 >0)。
4. 完整示例代码# 浮点数对齐values = [12.34, 123.456, 1234.567]for v in values: print(f"Left: {v:<10.2f} | Center: {v:^10.2f} | Right: {v:>10.2f}")# 整数填充num = 7print(f"Padded integer: {num:0>3}") # 输出: "007"

通过上述方法,可以灵活控制数字的对齐、宽度和填充样式,适用于表格输出、日志格式化等场景。