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

python 格式化 format 輸出

編輯:Python

文章目錄

  • 一. “%”用法
    • 1.1 整數
    • 1.2 浮點數
    • 1.3 字符串
  • 二. format用法(推薦使用)
    • 2.1 位置,數字,關鍵字匹配
    • 2.2 對象
    • 2.3 進階用法
      • 2.3.1 帶符號輸出(不常用)
      • 2.3.2 日期處理
      • 2.3.3 金融業常用, 錢數用逗號分隔
      • 2.3.4 特殊占位符
      • 2.3.5 變形用法 (個人常用)

一. “%”用法

1.1 整數

  • %o 八進制
  • %d 十進制
  • %x 十六進制
>>> "%o" % 29
'35'
>>> "%d" % 29 # 常用
'29'
>>> "%x" % 29
'1d'

1.2 浮點數

  • %f 浮點數: 保留小數點後6位有效數字
  • %.3f 保留小數點後3位有效數字
  • %e 保留小數點後6位有效數字,以指數形式輸出
  • %.3e 保留小數後3位有效數字,使用科學計數法
  • %g 在保證有6位有效數字的前提下, 使用小數方式,否則使用科學計數法
  • %.3g 保留3位有效數字,使用小數或科學計數法
>>> "%f" % 1.1
'1.100000'
>>> "%.3f" % 1.11111 # 常用
'1.111'
>>> "%e" % 1.1
'1.100000e+00'
>>> "%.3e" % 1.1
'1.100e+00'
>>> "%g" % 1.1
'1.1'
>>> "%g" % 1111.1111
'1111.11'
>>> "%.3g" % 1111.1111
'1.11e+03'
>>> "%.8g" % 1111.1111
'1111.1111'

1.3 字符串

  • %s
  • %10s: 右對齊,占位符10位
  • %-10s: 左對齊,占位符10位
  • %.2s: 截取2位字符串
  • %10.2s: 10位占位符,截取兩位字符串
>>> "%s" % "hello world" # 常用
'hello world'
>>> "%20s" % "hello world"
' hello world'
>>> "%-20s" % "hello world"
'hello world '
>>> "%.3s" % "hello world"
'hel'
>>> "%20.3s" % "hello world"
' hel'
>>> "%-20.3s" % "hello world"
'hel '

二. format用法(推薦使用)

2.1 位置,數字,關鍵字匹配

>>> "{} {}".format("hello", "world")
'hello world'
>>> "{0} {1} {0}".format("hello", "world")
'hello world hello'
>>> "{a} {b} {c}".format(a="hello",b="world",c="test") # 常用
'hello world test'

2.2 對象


>>> tup = ("hello", "world")
>>> "{0[0]} {0[1]}".format(tup)
'hello world'
>>> d = {
"a": "hello", "b": "world"}
>>> "{d[a]} {d[b]}".format(d) # 常見的錯誤
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'd'
>>> "{0[a]} {0[b]}".format(d) # 進階用法
'hello world'
>>>

2.3 進階用法

  • ‘b’ - 二進制。將數字以2為基數進行輸出。
  • ‘c’ - 字符。在打印之前將整數轉換成對應的Unicode字符串。
  • ‘d’ - 十進制整數。將數字以10為基數進行輸出。
  • ‘o’ - 八進制。將數字以8為基數進行輸出。
  • ‘x’ - 十六進制。將數字以16為基數進行輸出,9以上的位數用小寫字母。
  • ‘e’ - 冪符號。用科學計數法打印數字。用’e’表示冪。
  • ‘g’ - 一般格式。將數值以fixed-point格式輸出。當數值特別大的時候,用冪形式打印。
  • ‘n’ - 數字。當值為整數時和’d’相同,值為浮點數時和’g’相同。不同的是它會根據區域設置插入數字分隔符。
  • ‘%’ - 百分數。將數值乘以100然後以fixed-point(‘f’)格式打印,值後面會有一個百分號。
>>> "{:%}".format(10)
'1000.000000%'
>>> "{:.2%}".format(0.02) # 百分比計算 常用
'2.00%'
>>> "{:10s} and {:10s}".format("hello", "world")
'hello and world '
>>> "{:10s} and {:>10s}".format("hello", "world")
'hello and world'
>>> "{:^10s} and {:^10s}".format("hello", "world")
' hello and world '
>>> "{} is {:.2f}".format(1.123, 1.123) # 限定小數位
'1.123 is 1.12'
>>> "{} is {:>10.2f}".format(1.123, 1.123)
'1.123 is 1.12'
>>> "{:*^30s}".format("test") # 居中對齊
'*************test*************'
>>> "{:*>30s}".format("test") # 右對齊
'**************************test'
>>> "{:*<30s}".format("test") # 左對齊 
'test**************************'

2.3.1 帶符號輸出(不常用)

>>> "{:+f}; {:+f}".format(1.23, -1.23)
'+1.230000; -1.230000'
>>> "{:+.2f}; {:+.2f}".format(1.23, -1.23)
'+1.23; -1.23'
>>> "{:+.2f}; {:-.2f}".format(1.23, -1.23)
'+1.23; -1.23'
>>> "{:-.2f}; {:-.2f}".format(1.23, -1.23)
'1.23; -1.23'
>>> "{: .2f}; {: .2f}".format(1.23, -1.23) # 正數有個空位
' 1.23; -1.23'

2.3.2 日期處理

>>> import datetime
>>> d = datetime.datetime(2021,6,23,18,30,30)
>>> "{:%Y-%m-%d %H:%M:%S}".format(d)
'2021-06-23 18:30:30'

2.3.3 金融業常用, 錢數用逗號分隔

>>> "{:,}".format(1234567890)
'1,234,567,890'

2.3.4 特殊占位符

>>> "{!r} {!s}".format("test1","test2")
"'test1' test2"
>>>

2.3.5 變形用法 (個人常用)

>>> a = "hello"
>>> b = "world"
>>> f"{
a} {
b}"
'hello world'
>>> f"word is {
a.upper()}"
'word is HELLO'

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