![f6e62af54791e61f8d3060382d6ad105.png](https://i-blog.csdnimg.cn/blog_migrate/09092bdec120fe4495949f6dc157f100.jpeg)
format()用于格式化方法,即用来控制字符串和变量的显示效果。
format()的使用方法
<模板字符串>.format(<逗号分隔的参数>)
如果看不懂上述方法也没关系,我们可以用一个具体的例子来说明
![a796790e87af662d7463ec2d7fe4c281.png](https://i-blog.csdnimg.cn/blog_migrate/fe31c3e735e32b1d3dee42f280f7564f.png)
输出结果为
![54702d221662f1dcbe1fa9c0783d5a2b.png](https://i-blog.csdnimg.cn/blog_migrate/b8b621d7c323d020b741eee976efcfe1.png)
结果表明,“小明”、“老师”这两个字符按次序分别填充入两个{}中,
这个例子已经形象的表现出format的用法。
但是为什么要这样做呢?
为什么不直接输入:小明说他上课迟到的原因是他的闹钟坏了,老师不相信他。
反而要在其中加入两个{}?
原因是为了让该行代码能适应不同需求,灵活变动。
例如我们假设迟到的人是小红,不相信的人是小明。
那么按照传统做法我们需要重新输入:小红说他上课迟到的原因是他的闹钟坏了小明不相信他。
但有了format()方法的运用,我们只需要改变format()中两个参数即可
![de52757673fe567d0aa7a94aa53196b8.png](https://i-blog.csdnimg.cn/blog_migrate/6b041643cc39fb2011e036bb52135f67.png)
使得操作大大简化,并且方便以后的改动
format()参数序号
在没有参数序号时,参数是按顺序使用的。
可以通过format()参数的序号指定参数的使用,参数从0开始编号(此处与索引编号规律一致)
实例如图
![46a8943b3a72cc39fbfca75cfc54a30b.png](https://i-blog.csdnimg.cn/blog_migrate/04e30aeec451758a8dbd8e742ae02d79.png)
结果如图所示
![a515881504a255fff2bef4b279d17458.png](https://i-blog.csdnimg.cn/blog_migrate/97d52e005a32f19689bc465a16e3a16d.png)
如果调换0与1的位置
![872ec896c815feff9210d793b7c28be6.png](https://i-blog.csdnimg.cn/blog_migrate/94a8ffd8c92a4ac2675e3b968358cf4c.png)
结果如图
![f6dd2f02647b2b7ffd88fb8e5dd31e14.png](https://i-blog.csdnimg.cn/blog_migrate/3046026ad3bfaed9cd060b2a0667673b.png)
如果字符串中{}的数量与format()方法中变量数量不一致,即程序不能通过简单地顺序对应变量使用,这是便必须指定参数使用
![f319d00954ce32363bd68a71ef33ca4b.png](https://i-blog.csdnimg.cn/blog_migrate/64f28057065e43692bca99eed9f0665a.png)
此处有两个{}但只有一个变量“小红”,运行代码时则会报错
为了使程序正确运行
则要指定参数
![40b7599c97ea837e6dc4e88da32c9841.png](https://i-blog.csdnimg.cn/blog_migrate/66561edbbb1855724904bc1a34638690.png)
此时输出结果为
![1def227a18f6b959b69395fa3934ce25.png](https://i-blog.csdnimg.cn/blog_migrate/d5d1401e78de6720d771417bd71f0c33.png)
format()方法的格式控制
format()还有大用处,即格式控制
{<参数序号>}:<格式控制标记>}
![a3356aacf0f3b5a5f8a07895628b976c.png](https://i-blog.csdnimg.cn/blog_migrate/44cdbcc69ca9cc2d6c26bef5b9347781.jpeg)
可以随意选择这六个字段中的一个或多个组合使用,组合使用时各字段的位置要按照图时所排列。
这六个格式控制标记可以分为两组。
第一组是<填充><对齐><宽度>,它们是相关字段,主要用于对显示格式的规范
以一个例子来统一说明这三个字段的用法
![7ec0e8e14fc22c25569a9764ec756991.png](https://i-blog.csdnimg.cn/blog_migrate/735eee6a8b40d7f462942713b53c41fa.jpeg)
输出结果为
![0daec6e343db849cdc1e32a5aed9ac3e.png](https://i-blog.csdnimg.cn/blog_migrate/29ea20f8dd0d4ed48d893f3425236881.png)
接下来具体解释
首先看“:”后面的“-”用于填充空白位置,
为什么会出现空白位置呢?
因为我们设置了输出宽度为25
但“小红迟到了”字符的宽度只有5,当字符宽度小于设置的输出宽度时,默认以空格字符填充(即出现空白位置)
当字符宽度大于设置的输出宽度时,则最后的输出宽度一字符宽度为准。
“^”使字符居中对齐
接下来三个格式控制标记分别举一个例子来说明
<,>
输入
![fdf601187333dcb99686687601b83de0.png](https://i-blog.csdnimg.cn/blog_migrate/5ff7d13089d144c2883bf75ab7b21560.jpeg)
输出结果为
![68f16db3b2a9d5722254d00e69b8d21b.png](https://i-blog.csdnimg.cn/blog_migrate/9b1d3d1b35f749919ee79d4ffba2d5b9.png)
<.精度>(注意里面有个点号)
输入
![f9caee953c7a44ea6f5039a1e7b6e546.png](https://i-blog.csdnimg.cn/blog_migrate/a63d1ae395ba323f95fb160e52af82c7.jpeg)
输出结果为
![e21ceb0b245bc4e61b22df3b5362af3a.png](https://i-blog.csdnimg.cn/blog_migrate/99977a58fb21e203db8f44445a9498b6.png)
<类型>
对于整数类型,输出结果包括如下6种
![f4dda9cdbd0248666471791d0b8f9cf6.png](https://i-blog.csdnimg.cn/blog_migrate/cbe491082fbee66a0fe07f5df89b813e.jpeg)
对于浮点数类型,输出结果包括以下4种
![83d5fc7e276dc28c6eafa8c628f16ec1.png](https://i-blog.csdnimg.cn/blog_migrate/3322fe431bc0fd1eeb8513767619c5e6.jpeg)
浮点数的输出还需要特别注意
我们用一个例子来说明
输入
![645e3157905f0cbb93256d88f67f2f13.png](https://i-blog.csdnimg.cn/blog_migrate/10a27b6e1747413f599a1db3d375add7.jpeg)
输出
![64277c15b3b583f43802e87b60e5be3f.png](https://i-blog.csdnimg.cn/blog_migrate/7db4523ea057754cf8babe8baba07a56.png)
可以发现小数部分的输出长度太长了
因此
在浮点数输出时尽量使用<.精度>表示小数部分的输出长度,有助于更好地控制输出格式
如图
![d21d6c2f22a846574a7ef61dcf7cfc4a.png](https://i-blog.csdnimg.cn/blog_migrate/c84f0e55a73f40bc776fd77549e2a430.jpeg)
输出结果
![fe7452b41f602db21ea2f2f221f18fde.png](https://i-blog.csdnimg.cn/blog_migrate/56ebf4a7de57a5c9f05c80c0e43a1cf9.png)