欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中格式化字符串的两种方法详解》。本知识点主要内容有:使用%操作符格式化字符串和使用format()方法格式化字符串。

目录

1.使用%操作符格式化字符串

2、使用format()方法格式化字符串


格式化字符串的意思是先制定一个模板,在这个模板中预留几个空位,然后再根据需要填上相应的内容。这些空位需要通过指定的符号标记(也称为占位符),而这些符号还不会显示出来。在Python中,格式化字符串有以下两种方法。

站长在线提醒你:这里的格式化字符串中的格式化,不再是我们电脑、手机常用的格式化磁盘哦,电脑和手机磁盘的格式化(format)是指对磁盘或磁盘中的分区进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。所以大家不要混淆了两个不同的概念。

1.使用%操作符格式化字符串

在Python中,要实现格式化字符串,可以使用“%”操作符。语法格式如下:

'%[-][+][0][m][.n]格式化字符'%exp

参数说明如下:

-:可选参数,用于指定左对齐,正数前方无符号,负数前面加负号。

+:可选参数,用于指定右对齐,正数前方加正号,负数前方加负号。

0:可选参数,表示右对齐,正数前方元符号,负数前方加负号,用0填充空白处(一般与m参数一起使用)。

m:可选参数,表示占有宽度。

.n:可选参数,表示小数点后保留的位数。

格式化字符:见下方。

exp:要转换的项。如果要指定的项有多个,需要通过元组的形式进行指定,但不能使用列表。

Python中常用的格式化字符有:

%d、%i :转换为带符号的十进制整数

%o :转换为带符号的八进制整数

%x、%X :转换为带符号的十六进制整数

%e :转化为科学计数法表示的浮点数(e 小写)

%E :转化为科学计数法表示的浮点数(E 大写)

%f、%F :转化为十进制浮点数

%g :智能选择使用 %f 或 %e 格式

%G :智能选择使用 %F 或 %E 格式

%c :格式化字符及其 ASCII 码

%r :使用 repr() 函数将表达式转换为字符串

%s :使用 str() 函数将表达式转换为字符串

格式化操作符辅助符:

*:定义宽度或者小数点精度

-:用做左对齐

+:在正数前面显示加号(+)

#:在八进制数前面显示零(0),在十六进制前面显示"0x"或者"0X"(取决于用的是"x"还是"X")

0:显示的数字前面填充"0"而不是默认的空格

(var):映射变量(通常用来处理字段类型的参数)

m.n:m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

示例:格式化输出一个保存公司信息的字符串,代码如下:

demo = '编号:%03d\t 公司名称:%s \t 官网:HTTPs://WWW.%s.com' # 定义一个模板
text1 = (1,'百度','baidu')                                     # 定义要转换的内容1
text2 = (2,'站长在线','olzz')                                  # 定义要转换的内容2
print(demo%text1)                                              # 格式化输出1
print(demo%text2)                                              # 格式化输出2

运行结果如下:

编号:001     公司名称:百度      官网:https://www.baidu.com
编号:002    公司名称:站长在线    官网:https://www.olzz.com
>>>

站长在线温馨提醒:使用“%”操作符的方法是早期的方法,目前在Python 3.10中仍然有效,3.10官方最新提供的方法,只有format()方法,所以format()方法才是大家学习的重点。

2、使用format()方法格式化字符串

字符串对象提供了format()方法用于进行字符串格式化。其语法格式如下:

str.format(args)

其中,str用于指定字符串的显示样式(即模板);args用于指定要转换的项,如果有多项,则用逗号进行分隔。

下面重点介绍如何创建模板。在创建模板时,需要使用“{}”和“:”指定占位符,基本语法格式如下:

{[index][:[[fill]align][sign][#][width][.precision][type]]}

参数说明如下:

index:可选参数,用于指定要设置格式的对象在参数列表中的索引位置,索引值从0开始。如果省略,则根据值的先后顺序自动分配。

fill:可选参数,用于指定空白处填充的字符。

align:可选参数,用于指定对齐方式(值为“<”表示内容左对齐;值为“>”表示内容右对齐;值为“=”表示内容右对齐,将符号放在填充内容的最左侧,且只对数字类型有效;值为“^”表示内容居中),需要配合width一起使用。

sign:可选参数,用于指定有无符号数(值为“+”表示正数加正号,负数加负号;值为“-”表示正数不变,负数加负号;值为空格表示正数加空格,负数加负号)。

#:可选参数,对于二进制、八进制和十六进制,如果加上“#”,表示会显示0b/0o/0x前缀,否则不显示前缀。

width:可选参数,用于指定所占宽度。

.precision:可选参数,用于指定保留的小数位数。

type:可选参数,用于指定类型,

formcat()方法中常用的格式化字符如下:

s :对字符串类型格式化。

d :十进制整数。

c :将十进制整数自动转换成对应的 Unicode 字符。

e 或者 E : 转换成科学计数法后,再格式化输出。

g 或 G :自动在 e 和 f(或 E 和 F)中切换。

b :将十进制数自动转换成二进制表示,再格式化输出。

o :将十进制数自动转换成八进制表示,再格式化输出。

x 或者 X :将十进制数自动转换成十六进制表示,再格式化输出。

f 或者 F :转换为浮点数(默认小数点后保留 6 位),再格式化输出。

% :显示百分比(默认显示小数点后 6 位)。

例如,定义一个保存公司信息的字符串模板,然后应用该模板输出不同公司的信息,代码如下:

demo = '编号:{:0>3s}\t 公司名称:{:s} \t 官网:https://www.{:s}.com' # 定义一个模板
text1 = demo.format('1','百度','baidu')                               # 定义要转换的内容1
text2 = demo.format('2','站长在线','olzz')                            # 定义要转换的内容2
print(text1)                                                          # 格式化输出1
print(text2)                                                          # 格式化输出2

运行结果为:

编号:001     公司名称:百度      官网:https://www.baidu.com
编号:002    公司名称:站长在线    官网:https://www.olzz.com
>>>

format()是python2.6新增的一个格式化字符串的方法,功能非常强大,有可能在未来完全替代%格式化方法,相比 % ,format()的优点有:

1 .格式化时不用关心数据类型的问题,format()会自动转换,而在%方法中,%s用来格式化字符串类型,%d用来格式化整型;

2. 单个参数可以多次输出,参数顺序可以不同

3. 填充方式灵活,对齐方式强大

所以,我们要着重掌握format()的方法,下面讲解一个实例。

在实际开发中,数值类型有多种显示需求,比如货币形式、百分比形式等,使用 format() 方法可以将数值格式化为不同的形式。相关代码如下:

import math                                                                # 导入Python的数学模块
print('1251+3950的结果是(以货币形式显示):¥{:,.2f}元'.format(1251+3950)) # 以货币形式显示
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))    # 输出百分比,并且不带小数

运行结果为:

1251+3950的结果是(以货币形式显示):¥5,201.00元
120000.1用科学计数法表示:1.200001E+05
π取5位小数点:3.14159
100的16进制结果是:0x64
天才是由 1% 的灵感,加上 99% 的汗水 。
>>>

到此为止,本文主要内容《在Python中格式化字符串详解》中的新老方法:使用%操作符格式化字符串和使用format()方法格式化字符串,在这一点希望大家会举一反三,灵活掌握,格式化字符串掌握了,以后在实践Python爬虫的时候才会使用,要不然不会格式化字符串,在Python爬虫实践的时候,就不知所措了。

站长在线Python精讲:在Python中格式化字符串的两种方法详解相关推荐

  1. 站长在线Python精讲:在Python中匹配字符串的3个方法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中匹配字符串的3个方法详解>.本知识点主要内容有:使用match()方法进行匹配.使用search()方法进行 ...

  2. python右对齐格式化输出_Python中格式化输出的两种方法介绍

    本篇文章给大家带来的内容是关于Python中格式化输出的两种方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 方式一:使用占位符 % 常用占位符:% s (s = string ...

  3. Redis中持久化的两种方法详解

    Redis提供了两种不同的持久化方法来将数据存储到硬盘里面.一种方法叫快照(snapshotting),它可以将存在于某一时刻的所有数据都写入硬盘里;另一种方法教只追加文件(append-only f ...

  4. android中bitmap压缩的几种方法详解

    Android图片压缩(质量压缩和尺寸压缩) 在做项目中遇到一个头疼的问题,读取本地图片时,由于图片太大,奔溃,对于我这种456M内存的破手机哪里受得了几M的照片 我要总结的有这么几点: 1.尺寸压缩 ...

  5. Qt中线程同步的几种方法详解

    1.QMutex类 QMutex类就像一把锁,在互斥量以前上锁(QMutex::lock()),而后在使用完互斥量以后解锁(QMutex::unlock()).好比下面的代码:函数 void some ...

  6. python 执行shell 事务_python中执行shell的两种方法总结

    一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...

  7. deliphi 字符串分割_Delphi中 分割字符串(两种方法)

    对一个有分隔符的字符串如何分割成几个单一小字符串 1.使用CommaText Var Stl:TStringList; Const S:='20071018085500   155.30  220.6 ...

  8. python去重复排序_Python实现删除排序数组中重复项的两种方法示例

    本文实例讲述了Python实现删除排序数组中重复项的两种方法.分享给大家供大家参考,具体如下: 对于给定的有序数组nums,移除数组中存在的重复数字,确保每个数字只出现一次并返回新数组的长度 注意:不 ...

  9. python中的class怎么用_对python 中class与变量的使用方法详解

    python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...

最新文章

  1. SQL2005CLR函数扩展-正则表达式
  2. 微信小程序————经纬度转化为具体位置(逆地址解析)
  3. 指定应用程序网络连接_总结Java开发Web应用程序应该理解的几个知识点
  4. Python 之glob模块
  5. 第一次申请信用卡额度太低,怎么办?
  6. 光动能表怎么维护_西铁城手表推荐,西铁城光动能表推荐选购指南
  7. 从Windows计算机上完全删除iTunes和其他Apple软件
  8. python 3d渲染_python老司机带你玩玩炫酷的3D渲染,酷毙了!
  9. 服务器补丁 系统,操作系统补丁服务器
  10. android 各版本市占率,Android各版本市占率:果冻豆遥遥领先
  11. Sizeof的计算看内存分配
  12. Mysql数据库远程授权
  13. 团队协助 开源项目_适合小团队的协作工具,良心开源项目管理工具
  14. jQuery和CSS3炫酷滚动页面内容元素动画特效
  15. 西门子1200fb284
  16. 通过使用 NTLite 工具实现精简Windows系统
  17. mysql reconnect_在设置了MYSQL_OPT_RECONNECT之后,mysql_ping是否还有必要?
  18. lottie库动画方案
  19. WFP实现侧边栏导航菜单
  20. 改变IDEA模板光标停留的位置

热门文章

  1. 苹果手机关闭自动更新_极客修:苹果手机不关闭后台应用真的省电吗 内含秘诀...
  2. 人生苦短,我用Manjaro || 愿你Manjaro半天,归来仍是Deepin
  3. word2010中统一调整表格格式
  4. 工业网络交换机选购时的一些关键参数
  5. 焊锡条的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  6. 窄幅震荡突破前高选股公式,选出突破前期高点的标的
  7. YAHOO的YUI框架
  8. Python学习实践----比较字典中是否有相同键值的方法之一
  9. 209 长度最小的子数组(双指针)
  10. Vue搭建项目:ESLint: clear(vue/comment-directive)