![acbf2ab615891bc285634d0cf698b3ea.png](https://i-blog.csdnimg.cn/blog_migrate/fa9d261db3165414550df989c69356b8.jpeg)
format()用于格式化方法,即用来控制字符串和变量的显示效果。
format()的使用方法
<模板字符串>.format(<逗号分隔的参数>)
如果看不懂上述方法也没关系,我们可以用一个具体的例子来说明
![c99feda9ce25473569fa14f1d5df1cce.png](https://i-blog.csdnimg.cn/blog_migrate/d7434472145f2344ac4908b461bc8ce4.png)
输出结果为
![89f39b45fd677018d1cc2629f2752c2f.png](https://i-blog.csdnimg.cn/blog_migrate/c3d4658b4d3027511920b40392c65b82.png)
结果表明,“小明”、“老师”这两个字符按次序分别填充入两个{}中,
这个例子已经形象的表现出format的用法。
但是为什么要这样做呢?
为什么不直接输入:小明说他上课迟到的原因是他的闹钟坏了,老师不相信他。
反而要在其中加入两个{}?
原因是为了让该行代码能适应不同需求,灵活变动。
例如我们假设迟到的人是小红,不相信的人是小明。
那么按照传统做法我们需要重新输入:小红说他上课迟到的原因是他的闹钟坏了小明不相信他。
但有了format()方法的运用,我们只需要改变format()中两个参数即可
![a250dea6362e1d891e6af19feec101f2.png](https://i-blog.csdnimg.cn/blog_migrate/674447c07b977d3ebc03ef242e794803.png)
使得操作大大简化,并且方便以后的改动
format()参数序号
在没有参数序号时,参数是按顺序使用的。
可以通过format()参数的序号指定参数的使用,参数从0开始编号(此处与索引编号规律一致)
实例如图
![9b98eaf57970277a1c91597808cbeec7.png](https://i-blog.csdnimg.cn/blog_migrate/f4e6c27b91db6419fa9c85efc3c6a660.png)
结果如图所示
![11e74e25ad4d23f7d72627180a78a8b0.png](https://i-blog.csdnimg.cn/blog_migrate/aa0289e69d3612a9a2fb1db15e4cfea8.png)
如果调换0与1的位置
![8d7a2aaa95f865e1de7ff313e245f6c9.png](https://i-blog.csdnimg.cn/blog_migrate/004419452a218370a0ce76bd1f2927a3.png)
结果如图
![5a40e3efa1dd1ef893cb85449c08caba.png](https://i-blog.csdnimg.cn/blog_migrate/bc0eeeb40e11c70fcd8dc2daaf78ac3d.png)
如果字符串中{}的数量与format()方法中变量数量不一致,即程序不能通过简单地顺序对应变量使用,这是便必须指定参数使用
![0487371448267fe6de6af74b444432d4.png](https://i-blog.csdnimg.cn/blog_migrate/f12478335637103063f46746e58cd532.png)
此处有两个{}但只有一个变量“小红”,运行代码时则会报错
为了使程序正确运行
则要指定参数
![c0072b9431eeed9d680ffebf73bb207a.png](https://i-blog.csdnimg.cn/blog_migrate/d6c0c200d7012f0d5452e7f131e2f562.png)
此时输出结果为
![91aab3d03b579fecc12542971874c563.png](https://i-blog.csdnimg.cn/blog_migrate/0681fe85aae0bdd24d751d7084e86c06.png)
format()方法的格式控制
format()还有大用处,即格式控制
{<参数序号>}:<格式控制标记>}
![ad09d872e7a1c67930d743e462271329.png](https://i-blog.csdnimg.cn/blog_migrate/6fcd5e0c61fadca05625803fd4d74829.jpeg)
可以随意选择这六个字段中的一个或多个组合使用,组合使用时各字段的位置要按照图时所排列。
这六个格式控制标记可以分为两组。
第一组是<填充><对齐><宽度>,它们是相关字段,主要用于对显示格式的规范
以一个例子来统一说明这三个字段的用法
![d4ac05bc7ea6af3a2abaf76931f3eda3.png](https://i-blog.csdnimg.cn/blog_migrate/a69ba31527f836b4f595a9098f82b86d.jpeg)
输出结果为
![162291808e62b73a39e9a920f40ced92.png](https://i-blog.csdnimg.cn/blog_migrate/a5c5d1db7a64f3dc131675a7a369a5fd.png)
接下来具体解释
首先看“:”后面的“-”用于填充空白位置,
为什么会出现空白位置呢?
因为我们设置了输出宽度为25
但“小红迟到了”字符的宽度只有5,当字符宽度小于设置的输出宽度时,默认以空格字符填充(即出现空白位置)
当字符宽度大于设置的输出宽度时,则最后的输出宽度一字符宽度为准。
“^”使字符居中对齐
接下来三个格式控制标记分别举一个例子来说明
<,>
输入
![b82e478a27d66342917ec792cbfd7e91.png](https://i-blog.csdnimg.cn/blog_migrate/ecf0022c84db0c87691933da05b54ae9.jpeg)
输出结果为
![ea37d7e76f29cbc6a245d1463d9c7a36.png](https://i-blog.csdnimg.cn/blog_migrate/674731e1efa9ade6c88c45d9102609fe.png)
<.精度>(注意里面有个点号)
输入
![aba750841025c0b77592f13736959508.png](https://i-blog.csdnimg.cn/blog_migrate/b2a8a0fa2a9af42ced1b9543bc47b4bd.jpeg)
输出结果为
![418cec119ce9230192ace18316bf9ddb.png](https://i-blog.csdnimg.cn/blog_migrate/f5b35ac95fc261a4f5df3446b298ec24.png)
<类型>
对于整数类型,输出结果包括如下6种
![3a129cddc33735f7ec52bfa408f6af08.png](https://i-blog.csdnimg.cn/blog_migrate/c88a8861605e1b57a48bf347d6ae7034.jpeg)
对于浮点数类型,输出结果包括以下4种
![d76d268b0670f849ee6134e2b9694f14.png](https://i-blog.csdnimg.cn/blog_migrate/f97a6c61c0f27342a41cbe752d1fb6fb.jpeg)
浮点数的输出还需要特别注意
我们用一个例子来说明
输入
![690eb22804d9576aedf907f57ae82e54.png](https://i-blog.csdnimg.cn/blog_migrate/b3fb2230a23bf5d424567ccb8baef040.jpeg)
输出
![b2bee08181ff6c2dcf28ac3ab57b1e38.png](https://i-blog.csdnimg.cn/blog_migrate/5c59ada7a0087c6e28ac1359ad957c6f.png)
可以发现小数部分的输出长度太长了
因此
在浮点数输出时尽量使用<.精度>表示小数部分的输出长度,有助于更好地控制输出格式
如图
![926d60abed32325cfec938ef5699b37d.png](https://i-blog.csdnimg.cn/blog_migrate/f8cf96ff937a0fd0fe38bd85a89cf898.jpeg)
输出结果
![5b9ed570e264118bdfc73a174e13164a.png](https://i-blog.csdnimg.cn/blog_migrate/eea6b6c58de0dc2cfe23c65f5b0b6bb9.png)