栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python——format()方法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python——format()方法

从Python2.6开始,就增加了一种格式化字符串的str.format()方法,这种方法方便了用户对字符串进行格式化处理。

1.模板字符串与format()方法中参数的对应关系

str.format()方法中的 str 被称为模板字符串,其中包括多个由“{}”表示的占位符,这些占位符接收 format()方法中的参数。 str 模板字符串与format()方法中的参数的对应关系有以下3种情况

  1. 位置参数匹配
    在模板字符串中,如果占位符{}为空(没有表示顺序的序号),将会按照参数出现的先后次序进行匹配。如果占位符{}指定了参数的序号,则会按照序号替换对应参数。
  2. 使用键值对的关键字参数匹配
    format()方法中的参数用键值对形式表示时,在模板字符串中用“键”来表示。
  3. 使用序列的索引作为参数匹配
    如果 format ()方法中的参数是列表或元组,可以用其索引(序号)来匹配。

例 3-3模板字符串与 format (方法中的参数关系:

>>> #位置参数
>>> "{} is {} yesrs old".format("Rose",18)
'Rose is 18 yesrs old'
>>> "{0} is {1} yesrs old".format("Rose",18)
'Rose is 18 yesrs old'
>>> "Hi,{0}!{0} is {1} yesrs old".format("Rose",18)
'Hi,Rose!Rose is 18 yesrs old'
>>> 
>>> #关键字参数
>>> "{name} was born in {year},He is {age} years old".format(name="Rose",age=18,year=2000)
'Rose was born in 2000,He is 18 years old'
>>> 
>>> #下标参数
>>> student=["Rose",18]
>>> school=("Zhejiang","LNNU")
>>> "{1[0]} was born in {0[0]},She is {1[1]} years old".format(school,student)
'Rose was born in Zhejiang,She is 18 years old'
2.模板字符串 str 的格式控制

语法格式:

[[fill]align][sign][width][,][.precision][type]

模板字符串参数的含义如下

  • fill :可选参数,空白处填充的字符。
  • align :可选参数,用于控制对齐方式,配合 width 参数使用, align 参数的取值如下
<:内容左对齐。
>:内容右对齐(默认)。
^:内容居中对齐。
  • sign :可选参数,数字前的符号。
+:在正数数值前添加正号,在负数数值前添加负号。
-:在正号不变,在负数数值前添加负号。
空格:在正数数值前添加空格,在负数数值前添加负号。
  • width :可选参数,指定格式化后的字符串所占的宽度。
  • 逗号(,):可选参数,为数字添加千分位分隔符。
  • precision :可选参数,指定小数位的精度。
  • type :可选参数,指定格式化的类型。
  • 整数常用的格式化类型包括以下几种:
b ,将十进制整数自动转换成二进制表示,然后格式化; 
c 、将十进制整数自动转换为其对应的 Unicode 字符; 
d ,十进制整数;
o,将十进制整数自动转换成八进制表示,然后格式化;
x ,将十进制整数自动转换成十六进制表示,然后格式化(小写 x );
X ,将十进制整数自动转换成十六进制表示,然后格式化(大写 X )。
  • 浮点型常用的格式化类型包括以下几种:
e ,转换为科学计数法(小写 e )表示,然后格式化; 
E ,转换为科学计数法(大写 E )表示,然后格式化;
f ,转换为浮点型(默认保留小数点后6位)表示,然后格式化; 
F ,转换为浮点型(默认保留小数点后6位)表示,然后格式化;
%,输出浮点数的百分比形式。

例 3-4 使用str.format()方法格式化字符:

>>> prnit('{:*>8}'.format('3.14')) #宽度8位,右对齐
Traceback (most recent call last):
  File "", line 1, in 
    prnit('{:*>8}'.format('3.14')) #宽度8位,右对齐
NameError: name 'prnit' is not defined
>>> print('{:*>8}'.format('3.14')) #宽度8位,右对齐
****3.14
>>> print('{:*<8}'.format('3.14')) #宽度8位,左对齐
3.14****
>>> print('{0:^8},{0:*^8}'.format('3.14')) #宽度8位,居中对齐
  3.14  ,**3.14**
>>> print('{0:e},{0:.2e}'.format(3.14159265758)) #科学计数法表示
3.141593e+00,3.14e+00
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/300024.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号