TShopping

 找回密碼
 註冊
搜索
查看: 30|回復: 0

[教學] Python format 格式化函数

[複製鏈接]
發表於 昨天 22:21 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk  
Python2.6開始,新增了一種格式化字符串的函數str.format(),它增強了字符串格式化的功能。

基本語法是通過{}和:來代替以前的%。

format 函數可以接受不限個參數,位置可以不按順序。

實例
  1. >>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
  2. 'hello world'

  3. >>> "{0} {1}".format("hello", "world")  # 设置指定位置
  4. 'hello world'

  5. >>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
  6. 'world hello world'
複製代碼

也可以設置參數:

實例
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-

  3. print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))

  4. # 通过字典设置参数
  5. site = {"name": "菜鸟教程", "url": "www.runoob.com"}
  6. print("网站名:{name}, 地址 {url}".format(**site))

  7. # 通过列表索引设置参数
  8. my_list = ['菜鸟教程', 'www.runoob.com']
  9. print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的
複製代碼

輸出結果為:

網站名:菜鳥教程,地址www . runoob . com
網站名:菜鳥教程,地址www . runoob . com
網站名:菜鳥教程,地址www . runoob . com   

也可以向str.format()傳入對象:

實例
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-

  3. class AssignValue(object):
  4.     def __init__(self, value):
  5.         self.value = value
  6. my_value = AssignValue(6)
  7. print('value 为: {0.value}'.format(my_value))  # "0" 是可選的
複製代碼

輸出結果為:

value為: 6
數字格式化
下表展示了str.format() 格式化數字的多種方法:
  1. >>> print("{:.2f}".format(3.1415926))
  2. 3.14
複製代碼

数字
格式
输出
描述
3.1415926{:.2f}3.14保留小数点后两位
3.1415926{:+.2f}+3.14带符号保留小数点后两位
-1{:+.2f}-1.00带符号保留小数点后两位
2.71828{:.0f}3不带小数
5{:0>2d}05数字补零 (填充左边, 宽度为2)
5{:x<4d}5xxx数字补x (填充右边, 宽度为4)
10{:x<4d}10xx数字补x (填充右边, 宽度为4)
1000000{:,}1,000,000以逗号分隔的数字格式
0.25{:.2%}25.00%百分比格式
1000000000{:.2e}1.00e+09指数记法
13{:>10d}        13右对齐 (默认, 宽度为10)
13{:<10d}13左对齐 (宽度为10)
13{:^10d}    13中间对齐 (宽度为10)
11'{:b}'.format(11)
'{:d}'.format(11)
'{:o}'.format(11)
'{:x}'.format(11)
'{:#x}'.format(11)
'{:#X}'.format(11)
1011
11
13
b
0xb
0XB
进制
^ , < , >分別是居中、左對齊、右對齊,後面帶寬度,:號後面帶填充的字符,只能是一個字符,不指定則默認是用空格填充。

+表示在正數前顯示+,負數前顯示-; (空格)表示在正數前加空格

b、d、o、x 分別是二進制、十進制、八進制、十六進制。

此外我們可以使用大括號{}來轉義大括號,如下實例:

實例
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-

  3. print ("{} 对应的位置是 {{0}}".format("runoob"))
複製代碼

輸出結果為:

runoob對應的位置是{ 0 }

文章出處


 

臉書網友討論
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2021-6-12 19:16 , Processed in 0.055129 second(s), 19 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表