目录
6.4.1 理解格式化
6.4.2 使用f-string进行格式化
6.4.3 使用格式化符号进行格式化
6.4.4 使用format方法进行格式化
6.4.5 上山打老虎
6.4.1 理解格式化
同学们比较熟悉的是磁盘格式化,将磁盘格式化以后,磁盘中的文件全部被清除。那么,什么是字符串的格式化?对字符串进行格式化,不会清除字符串中的字符。字符串的格式化是指按照特定的格式对字符串进行输出。
举个简单的例子,在字符串"{1}{2}{3}"中, 在{1}位置处输出为整数,{2}位置处输出为字符串,{3}位置处输出为浮点数,那么格式化后的字符串输出为:"整数字符串浮点数"。在Python中对字符串进行格式化,主要有三种方式: 一种是通过f-string来进行格式化,一种是使用格式化符号配合操作符%进行格式化,最后一种则是通过字符串的format方法进行格式化。
6.4.2 使用f-string进行格式化
f-string是Python3.6版本后引入的格式化方法,这种格式化方法语法简单,易于使用,是笔者在开发Python程序时最常用的格式化方法, 薯条老师也建议大家使用这种最新的格式化方法。在学习f-string的格式化方法前,我们先来掌握f-string的基本概念: 所谓f-string,是指在字符串的引号前面带一个f的前缀。
代码实例:
"""
@author: 大神薯条老师
@desc: fstring
"""
# 普通的字符串
name = "薯条老师"
# f-string
author = f"薯条老师"
使用f-string进行格式化非常简单,在字符串中使用{}来输出表达式的值,即可实现格式化:
"""
@author: 大神薯条老师
@desc: f-string格式化的简单例子
"""
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"
对于f-string,Python还提供了其它更多复杂的格式化操作,由于在工作中并不常用,所以不再赘述。对此感兴趣的读者可以查阅Python官方文档。
6.4.3 使用格式化符号进行格式化
(1) 格式化基本语法
Python中常用的格式化符号:
更多的格式化符号,同学们可以查阅Python官方文档,同学们在初学Python时,只需掌握核心概念以及学习方法,在理解基本原理和基本操作之后再进行进一步地学习。
在Python中使用格式化符号配合%操作符来对字符串进行格式化,对字符串进行格式化,返回一个特定格式的字符串。字符串格式化语法为:
str % (argument,...)
字符串str中包含相应的格式化符号,括号里面的格式化参数须与格式化符号一一对应。格式化语法中的括号()不是必须的。
代码实例
# 现在开始答记者问
# 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元。
我理想中的恋爱女友是玛丽亚
(2) 指定浮点类型的精度
在进行字符串格式化时,可以指定浮点小数的精度。格式化符号写法:
%m.n f
m指的是显示的最少总宽度,总宽度包含后面的小数点,如果格式化内容的宽度不足m位,则会在格式化输出中补空格。n指的是小数点后面显示的位数,小数点后的位数大于n时会进行四舍五入。
代码实例:
# 记者突然化身小学数学老师,在婚礼中进行捣乱
"""
恭喜你程序员,在单身N年后,你终于迈入婚姻的殿堂。
就在今天,你的两只脚已经踏入爱情的坟墓。
那么,我最后再问你最后一个问题。
......
......
你知道圆周率的值是多少吗?
"""
answer = "%12.10f" % (3.1415926535)
# 程序员不假思索地回答出圆周率的值,然后将数学老师轰出了酒店
(3) 特殊格式化符号:%s
在对字符串进行格式化操作时,如果格式化符号为%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的输出为 "携手相伴,一生一世"
6.4.4 使用format方法进行格式化
使用字符串类型的format方法进行格式化时,主要有以下两种方法:
(1) 位置占位符
(2) 关键词占位符
所谓的位置占位符是指通过位置编号来指定格式化参数的输出位置,位置以{索引}的形式来进行指定。例如字符串"{0}{1}{2}"中,索引0对应的是format方法中的第一个参数,索引1对应的是format方法中的第二个参数,以此类推。关键词占位符的基本语法:
"{index}".format(argument)
待格式化字符串中的{}符号是必须的,index从0开始编号,用来指定format方法中参数的位置。{}中不指定位置时,自动按照format方法中的参数位置进行格式化。
代码实例:
# 定义oath变量,表示爱的誓言
oath = """{0},我将这个戒指给你,戴上我的喜乐与爱心。我选择你做我的妻子。
从今以后,无论是顺境或逆境,富足或贫穷,健康或疾病,我都将爱护你、珍惜你,直到天长地久。
{1},我将这个戒指给你,戴上我的喜乐与爱心。我选择你做我的丈夫。
从今以后,无论是顺境或逆境,富足或贫穷,健康或疾病,我都将爱护你、珍惜你,直到天长地久。
"""
# 执行format方法,对oath进行格式化
oath = oath.format("情投意合", "情比鹣鲽")
代码讲解:
(1) 在代码实例中,{0}对应的是format方法中的"如意新娘"参数,{1}对应的是format方法中的"如意郎君"参数。
(2) 在{}中不指定位置时,与format方法中的参数的顺序(从左到右的顺序)一一对应。
6.4.5 上山打老虎
跟薯条老师学后端开发,高级爬虫(JS逆向+安卓逆向),数据分析,大数据开发,量化交易,以及机器学习+深度学习算法。坚定自己的学习目标,保持学习的热情,那你成为高手只是时间问题。
薯条老师的学生在南方电网,林氏家居,京东,阿里等大厂。想系统学习Python和Java的同学,可以移步薯条老师的个人技术博客:薯条老师的个人技术博客http://www.chipscoco.com/ 对本节教程有任何不懂的同学,亦可在评论区中进行评论。薯条老师会详细解答你们提出的每一个问题。