详解Python中的format格式化函数的使用方法


Posted in Python onNovember 20, 2019

format函数实现字符串格式化的功能

基本语法为:

通过 : 和 {} 来控制字符串的操作

一、对字符串进行操作

1. 不设置指定位置,按默认顺序插入

①当参数个数等于{}个数的时候

str_1 = "小明{}小美,可是小美{}小明".format("喜欢", "不喜欢")
print(str_1)

运行结果:

详解Python中的format格式化函数的使用方法

②当参数个数大于{}个数的时候

str_1 = "小明{}小美,可是小美{}小明".format("喜欢", "不喜欢", "也不喜欢", "更不喜欢")
print(str_1)

运行结果:

详解Python中的format格式化函数的使用方法

③当参数个数习小于{}个数的时候

str_1 = "小明{}小美,可是小美{}小明".format("喜欢")
print(str_1)

运行结果:

程序会报错:越界

详解Python中的format格式化函数的使用方法

由此可以得出,当我们不指定参数位置的时候,format函数会帮我们按顺序将其接收到的参数,填入到{}中

2. 设置指定位置

当format接收到的参数个数大于{}或者我们想将不同{}替换为相同字符串的时候,我们可以在{}内指定接收第几个参数。format接收的参数,从0开始。

str_1 = "小明{1}小美,可是小美{3}小明,小美{0}小明,小美{2}小华".format("不喜欢", "喜欢", "更喜欢", "很讨厌")
print(str_1)

在这一句代码中,分别为不同的{}指定了接收的参数位置。
运行结果:

详解Python中的format格式化函数的使用方法

很显然,如果我们的{}的个数小于format的参数也是OK的。

str_1 = "小明{1}小美,可是小美{3}小明,小美{2}小华".format("不喜欢", "喜欢", "更喜欢", "很讨厌")
print(str_1)

运行结果:

详解Python中的format格式化函数的使用方法

由此我们得出结论:

在使用format()函数的时候,我们给format()的个数是不限的,如果我们并没有在{}中指定位置,那么format()会自动按顺序将参数填入{},而如果我们为{}指定了位置,那么format()就会把指定位置的参数填入对应的{}中。

3.设置format()参数的值①直接在format()中进行赋值

str_1 = "博主:{name}, 博客地址:{url}".format(name="KaiSarH", url="https://blog.csdn.net/KaiSarH")

运行结果:

详解Python中的format格式化函数的使用方法

②通过传递多值参数向format传递参数进而对{}进行赋值

关于多值参数,可以看一下Python学习笔记之函数的参数和返回值

- 使用**传递字典。

在Python中,使用**可以传递一个字典参数,我们可以使用键名进行匹配,进而进行赋值

dict_1 = {"name": "KaiSarH",
     "url": "https://blog.csdn.net/KaiSarH"}
str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)

运行结果:

详解Python中的format格式化函数的使用方法

我们向format()传递的字典参数,所包含的键值对,必须包含所有的{}名。只能多(正确),不能少(报错)。

dict_1 = {"name": "KaiSarH",
     "url": "https://blog.csdn.net/KaiSarH",
     "login": "login information"}
str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)
print(str_2)
dict_1 = {"name": "KaiSarH",
     "key": "https://blog.csdn.net/KaiSarH",
     "login": "login information"}
str_4 = "博主:{name}, 博客地址:{url}".format(**dict_1)
print(str_4)

运行结果:

详解Python中的format格式化函数的使用方法

注意:我们可以向format()中传递多个字典,但是不可以含有相同键。

dict_1 = {"name": "KaiSarH",
     "url": "https://blog.csdn.net/KaiSarH",
     "login": "login information"}
str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)
dict_2 = {"name": "KaiSarH",
     "key": "https://blog.csdn.net/KaiSarH",
     "login": "login information"}
str_4 = "博主:{name}, 博客地址:{url}".format(**dict_1, **dict_2)
print(str_4)

运行结果:

详解Python中的format格式化函数的使用方法

- 传递列表

list_1 = ["KaiSarH","https://blog.csdn.net/KaiSarH"]
str_3 = "博主:{0[0]}, 博客地址:{0[1]}".format(list_1)

运行结果:

详解Python中的format格式化函数的使用方法

除了传递一个列表,我们也可以向format()中传递多个列表,只需保证取值的时候无误就可以。

list_1 = ["ZhangSan","https://blog.csdn.net/KaiSarH"]
list_2 = ["KaiSarH", "http:www.baidu.com"]
str_3 = "博主:{1[0]}, 博客地址:{0[1]}".format(list_1, list_2)

运行结果:

详解Python中的format格式化函数的使用方法

③向format()中传入对象,进行赋值

与列表相同,我们同样可以向format()中传递多个对象,只要在赋值的之后做好对应就可以。

class Dog:
  def __init__(self, name):
    self.name = name

class Mouse:
  def __init__(self, name):
    self.name = name


tom = Dog("Tom")
jerry = Mouse("Jerry")

str_1 = "{0.name} want to eat {1.name}".format(tom, jerry)
print(str_1)

运行结果:

详解Python中的format格式化函数的使用方法

二、对数字进行格式化

对于数字的格式化,我们主要是在{}中进行设置格式化数字的多种方法

1.保留小数点后n位

格式:{:.nf}

print("	{:.1f}".format(3.1415926535))
print("	{:.3f}".format(3.1415926535))
print("	{:.4f}".format(3.1415926535))
print("	{:.6f}".format(3.1415926535))

运行结果:

详解Python中的format格式化函数的使用方法

2.带符号保留小数点后n位

格式:{:+.nf}

print("	{:+.1f}".format(3.1415926535))
print("	{:+.3f}".format(-3.1415926535))
print("	{:+.4f}".format(3.1415926535))
print("	{:+.6f}".format(-3.1415926535))

运行结果:

详解Python中的format格式化函数的使用方法

{:.nf}和 {:+.nf}的区别
负数无区别,整数有无符号。

print("	{:.1f}".format(3.1415926535))
print("	{:+.1f}".format(3.1415926535))
print("	{:.3f}".format(-3.1415926535))
print("	{:+.3f}".format(-3.1415926535))
print("	{:.4f}".format(3.1415926535))
print("	{:+.4f}".format(3.1415926535))
print("	{:.7f}".format(-3.1415926535))
print("	{:+.7f}".format(-3.1415926535))

运行结果:

详解Python中的format格式化函数的使用方法

3.不带小数(只保留整数)

格式:{:.0f}

print("	{:.0f}".format(3.1415926535))
print("	{:.0f}".format(-3.1415926535))
print("	{:.0f}".format(3.8415926535))

运行结果:

详解Python中的format格式化函数的使用方法

4.如果整数的位数不足n位,在左边进行数字补零。如果已经够了n位,直接输出

格式:{:0>nd}

print("	{:0>2d}".format(5))
print("	{:0>3d}".format(5))
print("	{:0>5d}".format(123456))

运行结果:

详解Python中的format格式化函数的使用方法

5.如果整数的位数不足n位,在右边进行x补充。如果已经够了n位,直接输出

格式:{:x<4d}

print("{:x<2d}".format(5))
print("{:x<3d}".format(5))
print("{:x<4d}".format(123456))

运行结果:

详解Python中的format格式化函数的使用方法

很显然,在补充操作中,我们既可以指定在哪一边补充,也可以指定补充的值为什么。
我们也可以利用print("{:x>.2f}".format(3.1))或者{:x<.2f}对浮点数进行操作

6.以逗号分隔数字格式,每三位加入一个,

格式:{:,}

print("	{:,}".format(314156926))

运行结果:

详解Python中的format格式化函数的使用方法

7.百分比格式(在我理解,就是把数字×100,保留两位数字,然后加一个百分号)

格式:{:.2%}

print("{:.2%}".format(0.27896))

运行结果:

详解Python中的format格式化函数的使用方法

8.指数记法

格式:{:.2e}

print("{:.2e}".format(100))

运行结果:

详解Python中的format格式化函数的使用方法

9.右对齐(默认宽度为10)

格式:{:>10d}

print("	{:>10d}".format(100))
print("	{:>10d}".format(2))
print("	{:>10d}".format(12580))

运行结果:

详解Python中的format格式化函数的使用方法

10.左对齐(默认宽度为10)

格式:{:<10d}

print("{:<10d}".format(100))
print("{:<10d}".format(2))
print("{:<10d}".format(12580))

运行结果:

详解Python中的format格式化函数的使用方法

11.中间对齐(默认宽度为10)

格式:{:^10d}

print("{:^10d}".format(100))
print("{:^10d}".format(2))
print("{:^10d}".format(12580))

运行结果:

详解Python中的format格式化函数的使用方法

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

格式:
‘{:b}'.format(11)
‘{:d}'.format(11)
‘{:\o}'.format(11)
‘{:x}'.format(11)
‘{:#x}'.format(11)
‘{:#X}'.format(11)

print("{:b}".format(125))
print("{:d}".format(125))
print("{:o}".format(125))
print("{:x}".format(125))
print("{:#x}".format(125))
print("{:#X}".format(125))

运行结果:

详解Python中的format格式化函数的使用方法

当我们在格式化中,传入的参数中包含{}的时候,我们可以用{}进行转义。
当我们直接在format()中对参数进行赋值的时候,我们必须要把对参数的赋值放在最后

print("{name}对应的位置是{{0}},{}对应的位置是{{1}}".format("489", "zhangsan", name="123"))

运行结果:

详解Python中的format格式化函数的使用方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python单链表的简单实现方法
Sep 23 Python
深入理解Javascript中的this关键字
Mar 27 Python
Python脚本实时处理log文件的方法
Nov 21 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
Python初学时购物车程序练习实例(推荐)
Aug 08 Python
python中返回矩阵的行列方法
Apr 04 Python
Window 64位下python3.6.2环境搭建图文教程
Sep 19 Python
Python3模拟登录操作实例分析
Mar 12 Python
Python类中self参数用法详解
Feb 13 Python
pytorch torchvision.ImageFolder的用法介绍
Feb 20 Python
Python tempfile模块生成临时文件和临时目录
Sep 30 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
Jun 25 Python
Python数据分析pandas模块用法实例详解
Nov 20 #Python
Python学习笔记之函数的参数和返回值的使用
Nov 20 #Python
Python求解正态分布置信区间教程
Nov 20 #Python
Python pandas RFM模型应用实例详解
Nov 20 #Python
使用Python实现正态分布、正态分布采样
Nov 20 #Python
Python pandas自定义函数的使用方法示例
Nov 20 #Python
Python求正态分布曲线下面积实例
Nov 20 #Python
You might like
探讨php中防止SQL注入最好的方法是什么
2013/06/10 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
php获得刚插入数据的id 的几种方法总结
2018/05/31 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
详解JS面向对象编程
2016/01/24 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
vue filters的使用详解
2018/06/11 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
Python 结巴分词实现关键词抽取分析
2017/10/21 Python
名片管理系统python版
2018/01/11 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
在keras里实现自定义上采样层
2020/06/28 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
Linux的主要特性
2014/10/06 面试题
移动通信行业实习自我鉴定
2013/09/28 职场文书
寒假实习自荐信
2014/01/26 职场文书
医院护士见习期自我鉴定
2014/04/10 职场文书
努力学习演讲稿
2014/05/10 职场文书
2014年学生会干事工作总结
2014/11/07 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书