python格式化输出%s与format()的用法对比

目录
  • 1、python格式化输出历史起源
  • 2、为什么要学习python3支持的新式格式化输出呢?
  • 3、基本用法
    • format()支持位置格式化填充,%s不支持;
  • 4、填充和对齐
    • 1)填充(只能用一个字符进行填充)
    • 2)对齐
  • 5、截断
  • 6、格式化输出中,与数字相关的语法
    • 1)引入案例
    • 2)填充整数,使用d
    • 3)填充浮点数,使用f(这个才是最常用的,用于保留小数点的位数);

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格式化输出%s与format()的用法对比的详细内容,更多关于python格式化输出对比的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python格式化输出字符串方法小结【%与format】

    python格式化字符串有%和{}两种 字符串格式控制符. 字符串输入数据格式类型(%格式操作符号) %% 百分号标记#就是输出一个% %c 字符及其ASCII码 %s 字符串 %d 有符号整数(十进制) %u 无符号整数(十进制) %o 无符号整数(八进制) %x 无符号整数(十六进制) %X 无符号整数(十六进制大写字符) %e 浮点数字(科学计数法) %E 浮点数字(科学计数法,用E代替e) %f 浮点数字(用小数点符号) %g 浮点数字(根据值的大小采用%e或%f) %G 浮点数字(类似

  • python的格式化输出(format,%)实例详解

    皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问题.不信你往下看. # 定义一个坐标值 c = (250, 250) # 使用%来格式化 s1 = "敌人坐标:%s" % c 上面的代码很明显会抛出一个如下的TypeError: TypeError: not all arguments converted during string f

  • Python中用format函数格式化字符串的用法

    自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和:来代替%. "映射"示例 通过位置 In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.format('kzc',18) Out[2]: 'kzc,18' In [3]: '{1},{0},{1}'.fo

  • Python 中几种字符串格式化方法及其比较

    Python 中几种字符串格式化方法及其比较 起步 在 Python 中,提供了很多种字符串格式化的方式,分别是 %-formatting.str.format 和 f-string .本文将比较这几种格式化方法. %- 格式化 这种格式化方式来自于 C 语言风格的 sprintf 形式: name = "weapon" "Hello, %s." % name C 语言的给实话风格深入人心,通过 % 进行占位. 为什么 %-formatting不好 不好的地方在于,

  • python格式化输出%s与format()的用法对比

    目录 1.python格式化输出历史起源 2.为什么要学习python3支持的新式格式化输出呢? 3.基本用法 format()支持位置格式化填充,%s不支持: 4.填充和对齐 1)填充(只能用一个字符进行填充) 2)对齐 5.截断 6.格式化输出中,与数字相关的语法 1)引入案例 2)填充整数,使用d 3)填充浮点数,使用f(这个才是最常用的,用于保留小数点的位数): 1.python格式化输出历史起源 python2.5之前,我们使用的是老式格式化输出:%s.从python3.0开始起(py

  • Python格式化输出之format用法详解

    目录 format用法 一.填充 1.无参(1) 2.无参(2) 3.无参(3) 4.key value 5.列表 6.字典 7.类 8.魔法参数 二.数字格式化 三.叹号用法 总结 format用法 相对基本格式化输出采用‘%’的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’ 使用方法由两种:b.format(a)和format(a,b). 一.填充 1.无参(1) print('{} {}'.format(

  • 全网最细 Python 格式化输出用法讲解(推荐)

    一.使用 print() 函数 在 Python 中,print() 函数支持格式化输出,与 C 语言的 printf 类似. 1. 格式化输出字符串和整数 [示例1]输出字符串 AmoXiang,并计算.输出它的字符长度 str1 = "%s.length = %d" % ("AmoXiang", len("AmoXiang")) print(str1) # 输出AmoXiang.length = 8 % 在字符串中表示格式化操作符,它后面必须

  • python格式化输出实例(居中、靠右及靠左对齐)

    目录 format 方式 其他扩展写法 '%' 方式 总结 format 方式 {: >} 靠右对齐 print('{0:>5}'.format('aa')) # 占5个字符空间,0是format参数中的变量索引 >> ' aa' {: <} 靠左对齐 print('{0:<5}'.format('aa')) # 占5个字符空间,0是format参数中的变量索引 >> 'aa ' {:^} 居中对齐 print('{0:^5}'.format('aa'))

  • Python格式化输出的具体实现

    目录 “%”的使用 字符串输出(%s) 浮点数输出(%f) format的使用 位置匹配 格式转换 高阶用法 format变形用法 “%”的使用 格式符 描述 %s 字符串 (采用str()的显示) %r 字符串 (采用repr()的显示) %c 单个字符及其ASCII码 %u 整数(无符号) %b 二进制整数 %o 八进制数(无符号) %d 十进制整数 %i 十进制整数 %x 十六进制数(无符号) %X 十六进制数大写(无符号) %e 指数 (基底写为e),用科学计数法格式化浮点数 %E 指数

  • python格式化输出保留2位小数的实现方法

    我是小白就不用多说了,学习python做了个练习题,结果运行了一遍,发现输入金额后得到的有很多位小数, 虽然不知道为什么,但是看得很不舒服, 就想到应该把让小数点后只保留2位数 找到了方法:将{0}改为{:.2f} # 一家商场在降价促销.如果购买金额50-100元(包含50元和100元)之间, # 会给10%的折扣,如果购买金额大于100元会给20%折扣.编写一程序, # 询问购买价格,再显示出折扣(%10或20%)和最终价格 sum_money = float(input('请输入购买总金额

  • Python格式化输出%s和%d

    本文介绍了Python格式化输出%s和%d的实例案例.分享给大家供大家参考,具体如下: python print格式化输出 1. 打印字符串 print ("His name is %s"%("Aviad")) 效果: 2.打印整数 print ("He is %d years old"%(25)) 效果: 3.打印浮点数 print ("His height is %f m"%(1.83)) 效果: 4.打印浮点数(指定保留

  • Python格式化输出详情

    目录 1.%格式化 1.1简单格式化,不使用可选参数 1.2 复杂格式化,使用可选参数 1.2.1参数 (name),用于选择指定的key 1.2.2参数flags和width,对齐方式和宽度 1.2.3参数.precision 控制小数点后位数 2.format格式化 2.1自定义占位符 2.2自定义关键字 2.3填充与对齐(同时使用) 2.4数字格式化 3.f-String格式化 3.1简单使用 3.2复杂控制 1.%格式化 语法: %[(name)][flags][width].[prec

  • python 格式化输出百分号的方法

    python的百分号输出比较奇怪,代码如下 print('%s%%'%(5))#这样就能输出'5%' 以上这篇python 格式化输出百分号的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python格式化输出--%s,%d,%f的代码解析

    String(字符型)–%s integer(整形)–%d float(浮点型)–%f 实例 我们需要输出一个人的信息 代码: #coding=utf-8 #输出一个人的基本信息:姓名:%s 爱好:%s 年龄:%d 岁 身高:%d cm 体重:%f kg string = "输出一个人的基本信息:姓名:%s 爱好:%s 年龄:%d 岁 身高:%d cm 体重:%f kg" name1 = "周杰伦" hobby1 = "basketball" a

随机推荐