【python学习】Day2——格式化函数format

格式化函数format

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。相对于老版的%格式方法,它有很多优点:

  1. %方法中%s只能替代字符串类型,而在format()中不需要理会数据类型;

  2. 单个参数可以多次输出,参数顺序可以不相同;

  3. 填充方式十分灵活,对齐方式十分强大;

  4. 官方推荐用的方式,%方式将会在后面的版本被淘汰。

常用格式

以下开始实例介绍:

# 不设定指定位置,按照默认位置
print('{} {} {}'.format('i', 'am', 'Groot'))

输出:

i am Groot

# 设定指定位置
print('{1} {2} {0}'.format('Groot', 'i', 'am'))

输出:

i am Groot

# 直接设定参数
print('{Subject} {Verb} {Object}'.format(Subject='i', Verb='am', Object='Groot'))

输出:

i am Groot

# 通过字典设定参数
dir_case = {'Subject':'i', 'Verb':'am', 'Object':999}
print('{Subject} {Verb} {Object}'.format(**dir_case))

输出:

i am 999

# 通过列表设定参数
list_case1 = ['i', 'am']
list_case2 = ['Groot', 666]
print('Subject:{0[0]} Verb:{0[1]} Object:{1[0]} 999:{1[1]}'.format(list_case1, list_case2))

输出:

Subject:i Verb:am Object:Groot 999:666

# 通过对象设定参数
class setValue(object):
    def __init__(self, value):
        self.value = value

my_value1 = setValue('i am Groot')
my_value2 = setValue('i am 999')
print('value1是:{0.value} \nvalue2是:{1.value}'.format(my_value1, my_value2))

输出:

value1是:i am Groot
value2是:i am 999

数字格式化

# 数字格式化
print('数字为:{:.3f}'.format(3.1415))

输出:

数字为:3.142

其他格式数字的方法:

数字格式输出描述
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
2进制
10进制
8进制
16进制
16进制(带0x小写
16进制(带0X大写

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

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

bdox 分别是二进制、十进制、八进制、十六进制。

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

# 采用{}转义
print ("{} 是 {{银护的台词}}".format("i am Groot"))

输出:

i am Groot 是 {银护的台词}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值