跟我学做纸艺花网站,网站底部 设计,金融投资网站方案,伪静态网站网站 目录写入权限自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501
格式化字符串是指先制定一个模板#xff0c;在这个模板中预留几个空位#xff0c;然后再根据需要填上相应的内容。这些空位需要通过指定的符号标记…自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501
格式化字符串是指先制定一个模板在这个模板中预留几个空位然后再根据需要填上相应的内容。这些空位需要通过指定的符号标记也称为占位符而这些符号还不会显示出来。在Python中格式化字符串有以下两种方法
1使用“%”操作符
在Python中要实现格式化字符串可以使用“%”操作符语法格式如下
%[-][][0][m][.n]格式化字符%exp
参数说明
l -可选参数用于指定左对齐正数前方无符号负数前面加负号。
l 可选参数用于指定右对齐正数前方加正号负数前方加负号。
l 0可选参数表示右对齐正数前方无符号负数前方加负号用0填充空白处一般与m参数一起使用。
l m可选参数表示占有宽度。
l .n可选参数表示小数点后保留的位数。
l 格式化字符用于指定类型其值如表1所示。
表1 常用的格式化字符 格式化字符 说 明 格式化字符 说 明 %s 字符串采用str()显示 %r 字符串采用repr()显示 %c 单个字符 %o 八进制整数 %d或者%i 十进制整数 %e 指数基底写为e %x 十六进制整数 %E 指数基底写为E %f或者%F 浮点数 %% 字符% l exp要转换的项。如果要指定的项有多个需要通过元组的形式进行指定但不能使用列表。
例如格式化输出一个保存公司信息的字符串代码如下
template 编号%09d\t公司名称 %s \t官网 http://www.%s.com # 定义模板
context1 (7,百度,baidu) # 定义要转换的内容1
context2 (8,明日学院,mingrisoft) # 定义要转换的内容2
print(template%context1) # 格式化输出
print(template%context2) # 格式化输出
上面的代码运行后将显示如图17所示的效果即按照指定模板格式输出两条公司信息。 图17 格式化输出公司信息
说明由于使用%操作符是早期Python中提供的方法自从Python 2.6版本开始字符串对象提供了format()方法对字符串进行格式化。现在一些Python社区也推荐使用这种方法。所以建议大家重点学习format()方法的使用。
2使用字符串对象的format()方法
字符串对象提供了format()方法用于进行字符串格式化语法格式如下
str.format(args)
参数说明
l str用于指定字符串的显示样式即模板。
l args用于指定要转换的项如果有多项则用逗号进行分隔。
下面重点介绍创建模板。在创建模板时需要使用“{}”和“:”指定占位符语法格式如下
{[index][:[[fill]align][sign][#][width][.precision][type]]}
参数说明
l index可选参数用于指定要设置格式的对象在参数列表中的索引位置索引值从0开始。如果省略则根据值的先后顺序自动分配。
l fill可选参数用于指定空白处填充的字符。
l align可选参数用于指定对齐方式值为“”时表示内容左对齐值为“”时表示内容右对齐值为“”时表示内容右对齐只对数字类型有效即将数字放在填充字符的最右侧值为“^”时表示内容居中需要配合width一起使用。
l sign可选参数用于指定有无符号数值为“”表示正数加正号负数加负号值为“-”表示正数不变负数加负号值为空格表示正数加空格负数加负号。
l #可选参数对于二进制数、八进制数和十六进制数如果加上#表示会显示0b/0o/0x前缀否则不显示前缀。
l width可选参数用于指定所占宽度。
l .precision可选参数用于指定保留的小数位数。
l type可选参数用于指定类型。
format()方法中常用的格式化字符如表2所示。
表2 format()方法中常用的格式化字符 格式化字符 说 明 格式化字符 说 明 s 对字符串类型格式化 b 将十进制整数自动转换成二进制表示再格式化 d 十进制整数 o 将十进制整数自动转换成八进制表示再格式化 c 将十进制整数自动转换成对应的Unicode字符 x或者X 将十进制整数自动转换成十六进制表示再格式化 e或者E 转换为科学计数法表示再格式化 f或者F 转换为浮点数默认小数点后保留6位再格式化 g或者G 自动在e和f或者E和F中切换 % 显示百分比默认显示小数点后6位 说明当一个模板中出现多个占位符时指定索引位置的规范需统一即全部采用手动指定或者全部采用自动。例如定义“我是数值{:d}我是字符串{1:s}”模板是错误的。会抛出如图18所示的异常。 图18 字段规范不统一抛出的异常
例如定义一个保存公司信息的字符串模板然后应用该模板输出不同公司的信息代码如下
template 编号{:09s}\t公司名称 {:s} \t官网 http://www.{:s}.com # 定义模板
context1 template.format(7,百度,baidu) # 转换内容1
context2 template.format(8,明日学院,mingrisoft) # 转换内容2
print(context1) # 输出格式化后的字符串
print(context2) # 输出格式化后的字符串
上面的代码运行后将显示如图19所示的效果即按照指定模板格式输出两条公司信息。 图19 格式化输出公司信息
在实际开发中数值类型有多种显示方式比如货币形式、百分比形式等使用format()方法可以将数值格式化为不同的形式。下面通过一个具体的实例进行说明。 实例06 格式化不同的数值类型数据
在IDLE中创建一个名称为formatnum.py的文件然后在该文件中将不同类型的数据进行格式化并输出代码如下
import math # 导入Python的数学模块
# 以货币形式显示
print(12513950的结果是以货币形式显示{:,.2f}元.format(12513950))
print({0:.1f}用科学计数法表示{0:E}.format(120000.1)) # 用科学计数法表示
print(π取5位小数{:.5f}.format(math.pi)) # 输出小数点后五位
print({0:d}的16进制结果是{0:#x}.format(100)) # 输出十六进制数
# 输出百分比并且不带小数
print(天才是由 {:.0%} 的灵感加上 {:.0%} 的汗水 。.format(0.01,0.99))
运行实例将显示如图20所示的结果。 图20 格式化不同的数值类型数据