你确定不需要看这篇 Python3 的 format 格式化?

专栏地址:最强 Python3 基础

公众号:Python 生产力



前言

format 格式化函数其实就是 取模操作符(%) 的进阶版,和 取模操作符(%) 的使用方式大同小异,区别在于你很多时候并不需要像 取模操作符(%)一样去记忆各种输出类型符号代表的意思,只需要给出特定的占位符以及相对应的参数就能格式化,是一个相当方便的格式化函数。当然,如果要像 取模操作符(%)一样去专门制定精度,也是可以做到的。


一、下标索引取值

在这里插入图片描述

相比较于 模操作符(%)对象的各种指定,format 函数则限制很少,也就是说可以将任意的数据类型放在任意的位置,不管是普通的数字或字符串类型,还是可迭代的各种集合类型,如列表、元组等,都可以放入。可以看下面的例子。format 函数就像存入一个元组,在指定的位置存入指定的数据,每一个数据都有指定的下标。

print('整数:{0},浮点数:{1},字符串:{2}'.format(123, 52.36, 'Python'))
print('列表:{0},元组:{1},字典:{2},集合:{3}'.format([1, 2, 3], (4, 5, 6), {
   'name': 'Python', 'price': 123.36}, {
   7, 8, 9}))

# 输出 >>>
整数:123,浮点数:52.36,字符串:Python
列表:[1, 2, 3],元组:(4, 5, 6),字典:{
   'name': 'Python', 'price': 123.36},集合:{
   8, 9, 7}

对于 format 函数括号中的参数,每一个填入的元素就已经指定好了具体的下标,在字符串中相当于用这些下标获取指定位置的数据,不仅可以单次获取,也可以不断的使用同一个下标获取同一个元素。

# 多次取下标为 0 的值
print('整数:{0},数字:{0},正整数:{0},浮点数:{1},字符串:{2}'.format(123, 52.36, 'Python'))

# 输出 >>>
整数:123,数字:123,正整数:123,浮点数:52.36,字符串:Python

# ==============================================================================================

# 字符串下标可以放在任何地方
print('浮点数:{1},字符串:{2},整数:{0},数字:{0},正整数:{0}'.format(123, 52.36, 'Python'))

# 输出 >>>
浮点数:52.36,字符串:Python,整数:123,数字:123,正整数:123

# ==============================================================================================

# 只取某些下标内容
print('字符串:{2}'.format(123, 52.36, 'Python'))

# 输出 >>>
字符串:Python

同时,超出下标范围的取值会直接报错。

print('字符串:{3}'.format(123, 52.36, 'Python'))

# 输出 >>>
IndexError: Replacement index 3 out of range for positional args tuple

如果是一个列表添加进参数,那使用方式和在元组里面取列表的方式差不多,都是先取元组中对应位置的列表,然后取列表中的元素。当然,也可以添加多个列表。

# 添加单个列表
print('{0[1]}, {0[2]}'.format([123, 52.36, 'Python']))

# 输出 >>>
52.36, Python

# =====================================================================

# 添加多个列表
print('{0[1]}, {0[2]}, {1[1]}'.format([123, 52.36, 'Python'], [456, 789]))

# 输出 >>>
52.36, Python

二、空大括号直接取值

在这里插入图片描述
在 Python 3.1 开始的版本,你甚至能不写数字下标,直接使用空的大括号代替,这种时候 Python 能够自动帮我们将值替换进相应的括号中。但是要注意,因为没有具体的下标,所以 Python 只能做一对一的对应,也就是说取值的中括号不能比参数还多,而且位置也只能根据提供参数的位置来决定。

# 不超出参数个数范围的格式化
print('整数:{},浮点数:{},字符串:{}'.format(123, 52.36, 'Python'))

# 输出 >>>
整数:123,浮点数:52.36,字符串:Python

# ============
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞎叨叨的一天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值