中心线

一个热爱“自由”的笔记博客

Python format 格式化使用方法学习

| 0 comments

从Python2.6开始,新增加了一种格式化打印输出字符串的方法 str.format(),它增强了格式化输出字符串的功能。

基本语法就是通过 {} 和 : 来代替以前的 %。

第一种用法,按默认顺序或指定顺序格式化输出字符串


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

通过这个简单的例子可以发现,str.format()格式化输出功能确实比以前的 %方式强大了,体现在可以指定重复输出指定变量次数和位置。

"{1} {0} {1}".format("hello", "world")

 

第二种用法,通过名字定位格式化输出顺序


#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
print("网站名:{name}, 地址 {url}".format(name="中心线", url="https://www.z10.xin"))
 
# 通过字典设置参数
site = {"name": "中心线", "url": "https://www.z10.xin"}
print("网站名:{name}, 地址 {url}".format(**site))
 
# 通过列表索引设置参数
my_list = ['中心线', 'https://www.z10.xin']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的

输出结果为:

网站名:中心线, 地址 https://www.z10.xin

网站名:中心线, 地址 https://www.z10.xin

网站名:中心线, 地址 https://www.z10.xin

第三种使用方法,也可以向 str.format() 传入对象:


#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
class AssignValue(object):
    def __init__(self, value):
        self.value = value
my_value = AssignValue(6)
print('value 为: {0.value}'.format(my_value))  # "0" 是可选的

输出结果为:

value 为: 6

数字类型的格式化


下表展示了 str.format() 格式化数字的多种方法:

>>> print("{:.2f}".format(3.1415926));
3.14

^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

+ 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格

b、d、o、x 分别是二进制、十进制、八进制、十六进制。

此外我们可以使用大括号 {} 来转义大括号,如下实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
print ("{} 对应的位置是 {{0}}".format("z10.xin"))

输出结果为:

z10.xin 对应的位置是 {0}

 

除非注明,否则均为中心线原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.z10.xin/archives/299

发表评论

Required fields are marked *.