python中的format函数用于格式化字符串。接下来,通过本文,我们将介绍一个在python中使用format()函数的简单教程。让我们看一看。
目录
调用格式函数调用格式函数及其占位符格式占位符及参数设置位置/键填充参数对齐参数符号参数宽度参数精度参数精度-类型参数摘要
format函数的调用
可以直接调用format函数,也可以将format调用实现为print函数中的占位符。
在**2.6**版本之前,占位符仍然像其他语言(如C)一样使用%。但在以后的版本中,format函数的占位符改为{}(花括号)。
优化的目的目前总结出了4个:
1.花括号闭包可以实现更多的格式化和更强大的功能。
2.让代码更具可读性。
3.单个参数可以输出多次,参数的顺序可以不同。
4.不用担心数据类型,%s只能替换%方法中的字符串类型。
好了,进入正文吧。格式功能的使用将分为两部分。
1.格式函数及其占位符的调用格式
2.占位符格式和参数设置
Ps:在介绍的时候,每个内容都会稍微穿插一下,其实是为了更容易理解~
format函数及其占位符的调用格式
format函数可以直接调用,比如在shell中。
例1
{} {}'.格式(' hello ',' world') #占位符不指定顺序。
“你好,世界”
{0} {1}'.格式(' hello ',' world') #占位符顺序
“你好,世界”
{1} {0}'.format ('hello ',' world') #尝试更改顺序。
“世界你好”
比较常见的方法是将其放入print()函数中进行打印格式。
例2
Print('{}获得S8冠军')。格式(“IG”)
#结果:
#IG获得S8冠军。
占位符以及参数设定
第一部分简要介绍了调用format函数的两种方法。可以清楚的发现,你还可以在占位符中输入一些参数来设置打印格式的参数。下面详细介绍占位符中参数的顺序和设置。
占位符中每个参数的格式如下
示例3(伪代码)
{位置/键:填充、对齐、符号、宽度、精度、类型}”。格式(.)
position/key
Position/key指定从占位符处的格式函数的参数中调用哪个值。立场很好理解。例如,上面示例1中引入的最后两个调用指定了占位符中两个参数hello和world in format的调用顺序。请注意,此顺序是在数组排序中从“0”开始计算的。当然也可以用键值对来操作。例如,下面的例子4:
例4
打印(
S8的冠军是{S8},S9的冠军是{S9}。格式(S8='IG ',S9='FPX '))
#结果:S8的冠军是ig,S9的冠军是fpx。
有些写作的朋友可能要问了,这里使用键值对(字典)有什么好处吗?你不觉得跟填个数字一样快吗?
请看下面的代码:
例5:
dic={'S8':'IG ',' S9':'FPX'}
打印(
S8的冠军是{S8},S9的冠军是{S9}。格式(**dic))
#结果:S8的冠军是ig,S9的冠军是fpx。
例5中,有几点需要特别说明。第一,如果要调用format的括号里的字典,记得在字典名前面加* *,这是字典的函数调用方法!从例5中可以发现,我们不需要在格式中列出字典,但是我们可以调用之前定义的字典,这使得它具有重复调用的优势。想象一下这一点上的区别,这是%方法做不到的。
也可以用数组的形式填充,如例6所示:
例6:
names=['希拉里','维吉尔','尼禄']
places=['成都','石家庄','东京']
打印(
您好,{names[0]}。我是{names[1]},这位是{names[2]}。格式(名称=名称)
#嗨,希拉里。我是维吉尔,这是尼禄。
相信大家都会明白第一个位置的参数,也是冒号前唯一的参数。
以下参数都是并列的,我们一一解释。首先要说清楚这些参数是如何并列或者分离的。
也就是不需要分开。没错,下面的参数,你需要定义哪些要按顺序写下来,不用加任何逗号或空格分隔。你可能会想,这不是容易造成歧义吗?我读书的时候也想过这个问题。事实是,当开发人员编辑函数逻辑时,他们将这些参数的设置值与不会产生任何歧义的符号或数字组合在一起。这个你用的时候也会发现。
fill参数
fill参数用于指定填充符,默认值是一个空格。实际体验是,这个参数很少用在场景中,除非是国际通用的三位逗号,用来分隔数字和其他场景。
例7:
打印(' {:} ')。格式(12345678))
12,345,678
align参数
align参数用于格式化文本的对齐方式。当你填写宽度时,这个参数非常有用。当然,如果在句子中无缝插入格式化文本,这个参数的设置是没有意义的。
^
右对齐
左对齐
居中对齐
例8:
在shell中运行下面的代码(代码中的数字30表示宽度,目的是加宽整体宽度以显示对齐的效果,后面会提到宽度的用法)
打印(' {:30} ')。格式('位置')
刷卡机
打印(' {:30} ')。格式('位置')
刷卡机
print('{:^30}'.格式('位置')
刷卡机
sign参数
sign参数用于指定是否保留符号,它适用于格式中的数字。
-
空间
保留标志
只保留负号。
正数留空,负数保留负号。
例9:
打印(' {0: } {0:-} {0: } ')。格式(123))
123 123 123
打印(' {0: } {0:-} {0: } ')。格式(-123))
-123 -123 -123
Ps:注意,第一行代码的最后一个运行结果中预留了一个空格
width参数
宽度参数控制输出的长度。经过我的测试,这个长度是最小长度,即当设置的宽度参数小于format中调用的值时,不会生效;当设定值较大时,会用空格(默认)或零填充。如果要用0填充,需要在宽度前加0。如示例10所示使用宽度参数。在示例8中,当显示对齐参数时,也使用宽度参数。可以看出,对齐对我们的填充方法有影响,其具体影响也在示例10中给出。
例10:
打印(“{0: 12} {0: 05} {0: 2}”。format (123)) #后跟12位宽的空格填充、5位宽的0填充和2位宽。
#结果:
# 123 00123 123
print('{0:012},{0:012},{0:^012}的。格式(123))
#结果:
#123000000000,000000000123,000012300000
print('{0:^012},{1:^012},{0:^011},{1:^011}的。格式(123,1234))
#结果:
#000012300000,000012340000,00001230000,00012340000
可见空格的填充也是通过对齐方式的不同来表现的,但是0的填充往往会改变我们数字的表示方式,所以在使用的时候要注意。还有一点需要注意的是,当你的总宽度和数据的有效宽度的奇偶性不同时,对中的方式也会不一样,这就是例10中第三行代码想要表达的意思。可以看出,奇偶不同时,总是倾向于左移一位。
precision参数
如在%方法中,%.3f表示保留三位小数,而[。保留有效位数(f)]表示数据的准确性。如果加f,表示保留小数点后的位数;如果不是,则意味着保留了有效位数。实施例11很好地显示了这种差异。
例11:
打印(“{0:2f}、{0:7f}、{0:2}、{0:2%}”。格式(123.123456789))
#结果:
123.12,123.1234568,1.2e 02,12312.35%
其实朋友们应该注意到了,这里的f,%其实是precision参数后面type参数控制的内容,是——数据类型。所以我们简单介绍精度,具体介绍精度型参数的联合参数,因为它们是强相关的。
precision-type参数
首先,引入所有类型参数,如下表所示:
类型参数
意义
例子
系统默认值
十进制整数
123
f
浮点数
123.123
%
百分比格式
12312.3%
e
指数形式
1.2e01
-
d
十进制整数
123
十六进制转换
十进制
123
b
二进制
1101111
o
八进制的
157
x
十六进制的
6f
#x
小写的十六进制表示
0x6f
#X
大写的十六进制
0X6F
c
字符,在打印前转换为Unicode代码
'123'
这篇文章是这项研究的总结,并附有一份参考代码。文章中有参考号,参考链接放在下面:
https://www.jb51.net/article/226500.htm
总结
本文到此为止。希望能帮到你,也希望你能多关注我们的更多内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。