首页 >后端开发 >Python教程 >Python内置format函数详细介绍

Python内置format函数详细介绍

高洛峰
高洛峰原创
2017-03-21 11:15:532103浏览

英文文档:

format(value[, format_spec])

Convert a value to a “formatted” representation, as controlled by format_spec. The interpretation of format_spec will depend on the type of the value argument, however there is a standard formatting syntax that is used by most built-in types: Format Specification Mini-Language.

The default format_spec is an empty string which usually gives the same effect as calling str(value).

A call to <span class="pre">format(value, <span class="pre">format_spec)</span></span> is translated to <span class="pre">type(value).__format__(value, <span class="pre">format_spec)</span></span> which bypasses the instance dictionary when searching for the value’s __format__() method. A TypeError exception is raised if the method search reaches object and the format_spec is non-empty, or if either the format_spec or the return value are not strings.

 

说明:

  1. 函数功能将一个数值进行格式化显示。

  2. 如果参数format_spec未提供,则和调用str(value)效果相同,转换成字符串格式化。

>>> format(3.1415936)
&#39;3.1415936&#39;
>>> str(3.1415926)
&#39;3.1415926&#39;

  3. 对于不同的类型,参数format_spec可提供的值都不一样

#字符串可以提供的参数 &#39;s&#39; None
>>> format(&#39;some string&#39;,&#39;s&#39;)
&#39;some string&#39;
>>> format(&#39;some string&#39;)
&#39;some string&#39;

#整形数值可以提供的参数有 &#39;b&#39; &#39;c&#39; &#39;d&#39; &#39;o&#39; &#39;x&#39; &#39;X&#39; &#39;n&#39; None
>>> format(3,&#39;b&#39;) #转换成二进制
&#39;11&#39;
>>> format(97,&#39;c&#39;) #转换unicode成字符
&#39;a&#39;
>>> format(11,&#39;d&#39;) #转换成10进制
&#39;11&#39;
>>> format(11,&#39;o&#39;) #转换成8进制
&#39;13&#39;
>>> format(11,&#39;x&#39;) #转换成16进制 小写字母表示
&#39;b&#39;
>>> format(11,&#39;X&#39;) #转换成16进制 大写字母表示
&#39;B&#39;
>>> format(11,&#39;n&#39;) #和d一样
&#39;11&#39;
>>> format(11) #默认和d一样
&#39;11&#39;

#浮点数可以提供的参数有 &#39;e&#39; &#39;E&#39; &#39;f&#39; &#39;F&#39; &#39;g&#39; &#39;G&#39; &#39;n&#39; &#39;%&#39; None
>>> format(314159267,&#39;e&#39;) #科学计数法,默认保留6位小数
&#39;3.141593e+08&#39;
>>> format(314159267,&#39;0.2e&#39;) #科学计数法,指定保留2位小数
&#39;3.14e+08&#39;
>>> format(314159267,&#39;0.2E&#39;) #科学计数法,指定保留2位小数,采用大写E表示
&#39;3.14E+08&#39;
>>> format(314159267,&#39;f&#39;) #小数点计数法,默认保留6位小数
&#39;314159267.000000&#39;
>>> format(3.14159267000,&#39;f&#39;) #小数点计数法,默认保留6位小数
&#39;3.141593&#39;
>>> format(3.14159267000,&#39;0.8f&#39;) #小数点计数法,指定保留8位小数
&#39;3.14159267&#39;
>>> format(3.14159267000,&#39;0.10f&#39;) #小数点计数法,指定保留10位小数
&#39;3.1415926700&#39;
>>> format(3.14e+1000000,&#39;F&#39;)  #小数点计数法,无穷大转换成大小字母
&#39;INF&#39;

#g的格式化比较特殊,假设p为格式中指定的保留小数位数,先尝试采用科学计数法格式化,得到幂指数exp,如果-4<=exp<p,则采用小数计数法,并保留p-1-exp位小数,否则按小数计数法计数,并按p-1保留小数位数
>>> format(0.00003141566,&#39;.1g&#39;) #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留0位小数点
&#39;3e-05&#39;
>>> format(0.00003141566,&#39;.2g&#39;) #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留1位小数点
&#39;3.1e-05&#39;
>>> format(0.00003141566,&#39;.3g&#39;) #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留2位小数点
&#39;3.14e-05&#39;
>>> format(0.00003141566,&#39;.3G&#39;) #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留0位小数点,E使用大写
&#39;3.14E-05&#39;
>>> format(3.1415926777,&#39;.1g&#39;) #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留0位小数点
&#39;3&#39;
>>> format(3.1415926777,&#39;.2g&#39;) #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留1位小数点
&#39;3.1&#39;
>>> format(3.1415926777,&#39;.3g&#39;) #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留2位小数点
&#39;3.14&#39;
>>> format(0.00003141566,&#39;.1n&#39;) #和g相同
&#39;3e-05&#39;
>>> format(0.00003141566,&#39;.3n&#39;) #和g相同
&#39;3.14e-05&#39;
>>> format(0.00003141566) #和g相同
&#39;3.141566e-05&#39;

以上是Python内置format函数详细介绍的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn