您现在的位置是:群英 > 开发技术 > Python语言
Python的两种格式化输出哪个好,不同在哪?
Admin发表于 2021-12-29 18:30:351165 次浏览

    这篇文章我们来了解Python格式化输出的内容,格式化输出是Python学习中的基础知识,在Python有两种格式化输出方式,那么他们的区别究竟是什么呢?哪种方式好?下面我们一起来分析一下。

    1、python格式化输出历史起源

     python2.5之前,我们使用的是老式格式化输出:%s。从python3.0开始起(python2.6同期发布),同时支持两个版本的格式化,多出来的一个新版本就是利用format()函数,进行格式化输出。

    2、为什么要学习python3支持的新式格式化输出呢?

    虽然老式的语法,兼容性很好,但是它的功能很少,很难完成复杂的任务,而format()函数进行格式化输出,功能更加强大,从下面的学习中你会慢慢体会到。

    3、基本用法

a = "%s张飞%s关羽%s刘备%s赵云" % (1,2,3,4)
display(a)

b  = "{}张飞{}关羽{}刘备{}赵云".format(1,2,3,4)
display(b)

    结果如下:

    format()支持位置格式化填充,%s不支持;

    第一种方式:大括号{ }中写的是format()传入值所对应的下标。第二种方式:大括号{ }中的变量,和format()传入值是一一对应的。

# --------------------方式一-----------------------
c = "{3}张飞{1}关羽{2}刘备{0}赵云".format(1,2,3,4)
display(c)
# --------------------方式二-----------------------
def my_hobbies(fruit,ball,drink):
    hobbies = "我喜欢水果{fruit},我也喜欢球类{ball},我还喜欢饮料{drink}".format(ball=ball,fruit=fruit,drink=drink)
    return hobbies

fruit = "apple"
ball = "basketball"
drink = "milk"
my_hobbies(fruit,ball,drink)
# --------------------方式二-----------------------
fruit = "apple"
ball = "basketball"
drink = "milk"
hobbies = "我喜欢水果{fruit},我也喜欢球类{ball},我还喜欢饮料{drink}".format(ball=ball,fruit=fruit,drink=drink)
display(hobbies)

    结果如下:

    4、填充和对齐

    1)填充(只能用一个字符进行填充)

    ① 什么是填充?

    概念:当指定了字符串最终的长度,但是现有的字符串没有那么长,那么我们就用某种字符(填充字符)来填满至这个长度,这就是“填充”。

    ② %s:实现填充功能;

a = "%s" % ("张飞")
display(a)

b = "%10s" % ("张飞")
display(b)

    结果如下:

    ③ format():实现填充功能;

c = "{}".format("张飞")
display(c)

d = "{:10}".format("张飞")
display(d)

    结果如下:

    总结如下:通过上述案例结果呈现,当使用的是%s,进行字符串填充的时候,默认是在原字符串左侧进行填充;当使用的是format(),进行字符串填充的时候,默认是在原字符串右侧进行填充。这就是我们下面要讲述的"对齐"。

    2)对齐

    ① 什么是对齐?

    概念:"对齐"要与"填充"一起使用,才会显得有意义。当我们进行填充的时候,我们可以选择只在字符串左侧填充,也可以选择只在字符串右侧填充,还可以选择在字符串两侧填充(字符串居中显示的填充方式)。

    ② %s:实现对齐功能,只有左对齐和右对齐;

# 左填充
a = '%10s' % ('张飞')
display(a)
# 右填充
b = '%-10s' % ('张飞')
display(b)

    结果如下:

    ③ format():实现对齐功能,不仅有左对齐和右对齐,还有居中对齐;

# 左填充
a = '{:>10}'.format('张飞')
display(a)

# 右填充
b = '{:<10}'.format('张飞')
display(b)

# 居中填充
c = '{:^10}'.format('张飞')
display(c)

    结果如下:

    ④ 使用"特定符号"进行填充;

    旧版语法中(%s),使用"特定符号"填充,很麻烦,不直接,你也不用去管。这里主要看新版语法中(format()函数),进行"特定符号"填充。

 

    5、截断

    概念:如果我们指定的"截断长度",比实际给出的"字符串"的长度要短,会发生截断。 1)长度和截断长度的区别

    ① 什么是长度?

    “{:8}”.format(“xishi is beautiful”)中,这个8表示的是填充长度,又成为长度,当字符串长度小于这个长度8的时候,会发生填充;当字符串长度大于这个长度8的时候,长度无效,返回的仍然是原来的字符串。

    操作如下:

a = "{:8}".format("xishi")
display(a)

b = "{:8}".format("xishi is beautiful")
display(b)

    结果如下:

    ② 什么是截断长度?

    “{:10.8}”.format(“xishi is beautiful”)中,这个".8"叫做截断长度,这个10叫做填充长度。注意:只有字符串的长度大于这个阶段长度的时候,才会发生截断。当既有截断长度,又有填充长度的时候一般先进行截断,截断后再进行填充。

    操作如下:

a = "{:.8}".format("xishi is beautiful")
display(a)

# 当字符串长度,小于截断长度,返回原始字符串,截断长度无效;
b = "{:.8}".format("abc")
display(b)

    结果如下:

    ③ 填充长度和截断长度的联合使用

a = "{:*>15.8}".format("xishi is beautiful")
display(a)

    结果如下:

    注意:当既有截断长度,又有填充长度的时候一般先进行截断,截断后,再进行填充。

    ④ 使用%s完成截断

a = "%.8s" % ("xishi is beautiful")
display(a)

b = "%15.8s" % ("xishi is beautiful")
display(b)

    结果如下:

    6、格式化输出中,与数字相关的语法

    1)引入案例

a = '{}-{}'.format("1","2")
display(a)

b = '{}-{}'.format(1,2)
display(b)

    结果如下:

    存在的问题:

    2)填充整数,使用d

    ① 使用%s完成整数的填充;

a = '%5d' % (3000)
display(a)

b = '%d' % ("3000")
display(b)

    结果如下:

    ② 使用format()完成整数的填充;

a = '{:$>5d}'.format(3000)
display(a)

b = '{:¥>5d}'.format(3000)
display(b)

    结果如下:

    3)填充浮点数,使用f(这个才是最常用的,用于保留小数点的位数);

    ① 引入案例

a = '{:f}'.format(3.14159268)
display(a)

b = '{:f}'.format(3.1415921)
display(b)

c = '{:f}'.format(312)
display(c)

d = '{:d}'.format(12,34)
display(d)

    结果如下:

    存在的问题:

    ② 使用%s完成浮点数填充,保留2位有效数字;

a = '%.2f' % (3.1415)
display(a)

    结果如下:

    ③ 使用format()完成浮点数的填充,保留2位有效数字;

b = '{:.2f}'.format(3.1415)
display(b)

c = '{:$>5.2f}'.format(3.1415)
display(c)

    结果如下:

    注意:在使用浮点数填充的时候,用的最多的就是保留几位有效数字,由于返回值默认是保留6位小数,因此需要配合使用"截断"。

    关于python格式化输出的内容就介绍到这,本文对比了%和format()这两种格式化输出方式,对两者的区别不是很了解的朋友可以参考看看,希望能对大家有帮助。最后,想要了解更多大家可以关注其它的相关文章。

文本转载自脚本之家

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

相关信息推荐
2022-12-24 11:04:59 
摘要:判断步骤:1、用array_unique()去除数组中的重复值,语法“array_unique(原数组)”,会返回一个去重数组;2、用count()分别获取原数组和去重数组的数组长度,并判断两个数组长度是否相等,语法“count(原数组)==count(去重数组)”,如果两个数组长度相等,则数组里没有相同元素,反之则数组里有相同的元素。
2021-11-24 17:53:59 
摘要:这篇文章给大家分享的是关于python的format函数的内容,下文介绍了format函数的作用和使用等等,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。
2021-11-01 17:56:43 
摘要:这篇文章给大家分享的是PHP中的命名空间的相关内容 ,下文将会从简单的代码角度来解析一下命名空间的概念和使用,对大家学习和理解命名空间的使用有一定的帮助,感兴趣的朋友接下来一起跟随小编看看吧。
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部