目录
9.4.1 理解格式化
9.4.2 使用f-string进行格式化
9.4.3 使用格式化符号进行格式化
9.4.4 使用format方法进行格式化
9.4.5 知识要点
9.4.6 系统学习python
9.4.1 理解格式化
同学们比较熟悉的是磁盘格式化,将磁盘格式化以后,磁盘中的文件全部被清除。那么,什么是字符串的格式化?对字符串进行格式化,不会清除字符串中的字符。字符串的格式化是指按照特定的格式对字符串进行输出。
举个简单的例子,在字符串"{1}{2}{3}"中, 在{1}位置处输出为整数,{2}位置处输出为字符串,{3}位置处输出为浮点数,那么格式化后的字符串输出为:"整数字符串浮点数"。在Python中对字符串进行格式化,主要有三种方式: 一种是通过f-string来进行格式化,一种是使用格式化符号配合操作符%进行格式化,最后一种则是通过字符串的format方法进行格式化。
9.4.2 使用f-string进行格式化
f-string是Python3.6版本后引入的格式化方法,这种格式化方法语法简单,易于使用,是笔者在开发Python程序时最常用的格式化方法, 薯条老师也建议大家使用这种最新的格式化方法。在学习f-string的格式化方法前,我们先来掌握f-string的基本概念: 所谓f-string,是指在字符串的引号前面带一个f的前缀。
代码实例:
Python
# 普通的字符串
name = "薯条老师"
# f-string
author = f"薯条老师"
使用f-string进行格式化非常简单,在字符串中使用{}来输出表达式的值,即可实现格式化:
Python
author = "薯条老师"
# Python在扫描f-string时会先输出{}中的表达式的值
content = f"跟{author}学Python" # content为跟薯条老师学Python
x,y = 1, 2
# Python在扫描f-string时会先计算{}中的表达式的值,然后进行文本替换
value = f"x+y的值等于{x+y}" # value为"x+y的值等于3"
9.4.3 使用格式化符号进行格式化
(1) 格式化基本语法
Python中常用的格式化符号:
更多的格式化符号,同学们可以查阅Python官方文档,同学们在初学Python时,只需掌握核心概念以及学习方法,在理解基本原理和基本操作之后再进行进一步地学习。
在Python中使用格式化符号配合%操作符来对字符串进行格式化,对字符串进行格式化,返回一个特定格式的字符串。字符串格式化语法为:
Python
str % (argument,...)
字符串str中包含相应的格式化符号,括号里面的格式化参数须与格式化符号一一对应。格式化语法中的括号()不是必须的。
代码实例:
Python
# __desc__ = 通过格式化符号以及%操作符对字符串进行格式化
# 现在开始答记者问
# 1.你学习Python有多久了?
answer = "我学习Python有%d天了" % (5)
# answer的输出为"我学习Python有5天了"
# 2.谈了女朋友以后,你银行卡里还剩多少钱?
answer = "我银行卡里还剩%f元" % (20.1314)
# answer的输出为"我银行卡里还剩20.1314元"
# 3.你理想中的恋爱女友是谁?
answer = "我理想中的恋爱女友是%s" % ("橘梨纱")
# answer的输出为"我理想中的恋爱女友是橘梨纱" ...oh,no!
# 4.现在对你的回答进行总结,可以吗?
answer = """好的。我学习Python有%d天了。
谈女朋友以后,我的银行卡里只剩%f元。
我理想中的恋爱女友是%s。
""" % (5, 20.1314,"橘梨纱")
"""
answer的输出为:
好的。我学习Python有5天了。
谈女朋友以后,我的银行卡里只剩20.1314元。
我理想中的恋爱女友是橘梨纱
"""
代码讲解:
(1) 格式化参数须与格式化符号的数目保持一致且与格式化符号表示的数据类型一致。
如果类型不一致,那么必须可以通过隐式转换的方式来进行类型匹配。
例如%d符号表示格式化整型类型,那么传递的参数为浮点类型或布尔类型时,参数会自动地转换为整型。
代码实例:
Python
# __desc__ = 字符串格式化时需要注意的地方
# 现在继续答记者问
# 1.你和你女朋友交往多久了?
answer = "我们已经交往了%d天了" % (20.1314)
# 2.为什么你的理想恋爱对象不是你女朋友?
# 某程序员由于过度紧张,导致多输出了个%d的格式符
answer = "%s %d" % ("俺瞎说的")
# Python抛出异常信息,格式化参数须与格式化符号数目一致
# 3.你和你女朋友打算什么时候结婚?
answer = "我们打算%d年结婚" % ("2022")
# Python抛出了异常信息,"2022"不能隐式地转换为整型
(2) 指定浮点类型的精度
在进行字符串格式化时,可以指定浮点小数的精度。格式化符号写法:
%m.n f
m指的是显示的最少总宽度,总宽度包含后面的小数点,如果格式化内容的宽度不足m位,则会在格式化输出中补空格。n指的是小数点后面显示的位数,小数点后的位数大于n时会进行四舍五入。
代码实例:
Python
# __desc__ = 对字符串进行格式化时,指定浮点类型的精度
# 记者突然化身小学数学老师,在婚礼中进行捣乱
"""
恭喜你程序员,在单身N年后,你终于迈入婚姻的殿堂。
就在今天,你的两只脚已经踏入爱情的坟墓。
那么,我最后再问你最后一个问题。
......
......
你知道圆周率的值是多少吗?
"""
answer = "%12.10f" % (3.1415926535)
# 程序员不假思索地回答出圆周率的值,然后将数学老师轰出了酒店
(3) 特殊格式化符号:%s
在对字符串进行格式化操作时,如果格式化符号为%s,那么不论格式化参数是什么数据类型,都会格式化为字符串类型。
代码实例:
Python
# __desc__ = 使用%s符号格式化为字符串类型
all_converted_to_string = "%s"
love = all_converted_to_string % (1314)
# love的输出为 "1314"
all_converted_to_string % (20.1314)
# love的输出为 "20.1314"
all_converted_to_string % (True)
# love的输出为 "True"
all_converted_to_string % ("携手相伴,一生一世")
# love的输出为 "携手相伴,一生一世"
9.4.4 使用format方法进行格式化
使用字符串类型的format方法进行格式化时,主要有以下两种方法:
(1) 位置占位符
(2) 关键词占位符
所谓的位置占位符是指通过位置编号来指定格式化参数的输出位置,位置以{索引}的形式来进行指定。例如字符串"{0}{1}{2}"中,索引0对应的是format方法中的第一个参数,索引1对应的是format方法中的第二个参数,以此类推。
对于关键词占位符,需要在学完字典类型以后,再进行详细讲解。
关键词占位符的基本语法:
Python
"{index}".format(argument)
待格式化字符串中的{}符号是必须的,index从0开始编号,用来指定format方法中参数的位置。{}中不指定位置时,自动按照format方法中的参数位置进行格式化。
代码实例:
Python
# __desc__ = 使用format方法对爱的誓言进行格式化
# 定义oath变量,表示爱的誓言
oath = """{0},我将这个戒指给你,戴上我的喜乐与爱心。我选择你做我的妻子。
从今以后,无论是顺境或逆境,富足或贫穷,健康或疾病,我都将爱护你、珍惜你,直到天长地久。
{1},我将这个戒指给你,戴上我的喜乐与爱心。我选择你做我的丈夫。
从今以后,无论是顺境或逆境,富足或贫穷,健康或疾病,我都将爱护你、珍惜你,直到天长地久。
"""
# 执行format方法,对oath进行格式化
oath = oath.format("情投意合", "情比鹣鲽")
代码讲解:
(1) 在代码实例中,{0}对应的是format方法中的"如意新娘"参数,{1}对应的是format方法中的"如意郎君"参数。
(2) 在{}中不指定位置时,与format方法中的参数的顺序(从左到右的顺序)一一对应。
9.4.5 知识要点
(1) 字符串的格式化是指按照特定的格式对字符串进行输出。
(2) 对字符串进行格式化,有两种方式,一种是通过格式化符号,一种是通过字符串类型的format方法。
(3) 格式化参数须与格式化符号的数目保持一致且与格式化符号表示的数据类型一致。如果类型不一致,那么必须可以通过隐式转换的方式来进行类型匹配。
(4) 使用format方法进行格式化,主要有位置占位符和关键词占位符的方法
9.4.6 系统学习python
薯条老师简介:资深技术专家,技术作家,著有《Python零基础入门指南》,《Java零基础入门指南》等技术教程。薯条老师的博客:http://www.chipscoco.com, 系统学习后端,爬虫,数据分析,机器学习、量化投资。