专栏地址:最强 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])