zoukankan      html  css  js  c++  java
  • Python格式化字符串

    一、通过%来格式化输出。

    格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个值传递给模板,每个值对应一个格式符。

    #普通传值方法
    print('name:%s,age:%d' %('mzc',20))
    输出:name:mzc,age:20
    #使用dict进行传值
    print('my name is %(name)s,age %(age)d' %{'name':'jerry','age':20})
    输出:my name is jerry,age 20

    打印浮点数、以及选择保留小数位数

    保留的小数位数由输出控制符决定%.xf   x为保留位数

    #浮点数不更改打印
    print('width is %f' %1.337)
    输出:width is 1.337000
    
    #选择保留的小数位数
    print('width is %.2f' %1.345)
    输出:width is 1.34

    指定占位符宽度:

    print ("Name:%10s Age:%8d Height:%8.2f"%("Aviad",25,1.83))

    输出效果:Name:     Aviad Age:      25 Height:    1.83

    指定占位符宽度(左对齐)

    print ("Name:%-10s Age:%-8d Height:%-8.2f"%("Aviad",25,1.83))

    输出效果:Name:Aviad      Age:25       Height:1.83 

    指定占位符(只能用0当占位符?)

    print ("Name:%-10s Age:%08d Height:%08.2f"%("Aviad",25,1.83))

    输出效果:Name:Aviad      Age:00000025 Height:00001.83

    科学计数法

    format(0.0015,'.2e')

    输出效果:'1.50e-03'

    格式符

    格式符为真实值预留位置,并控制显示的格式。格式符可以包含有一个类型码,用以控制显示的类型,如下:

    %s    字符串 (采用str()的显示)

    %r    字符串 (采用repr()的显示)

    %c    单个字符

    %b    二进制整数

    %d    十进制整数

    %i    十进制整数

    %o    八进制整数

    %x    十六进制整数

    %e    指数 (基底写为e)

    %E    指数 (基底写为E)

    %f    浮点数

    %F    浮点数,与上相同

    %g    指数(e)或浮点数 (根据显示长度)

    %G    指数(E)或浮点数 (根据显示长度)

    %%    字符"%"

    Python中内置的%操作符可用于格式化字符串操作,控制字符串的呈现格式。Python中还有其他的格式化字符串的方式,但%操作符的使用是最方便的。

    另外python还有一个更强大的字符串处理函数  str.format()

    语法

    它通过{}和:来代替%。
    format输出控制是一种映射关系。

    1、通过位置

    print('{0},{1}'.format('kzc',18))
    输出:'kzc,18'

    print('{},{}'.format('kzc',18)) 输出: 'kzc,18'

    print('{1},{0},{1}'.format('kzc',18)) 输出:'18,kzc,18'

    2、通过关键字

    print('{name},{age}'.format(age=18,name='kzc')) 
    输出:'kzc,18'

    3、通过对象属性

    class Person: 
      def __init__(self,name,age): 
        self.name,self.age = name,age 
        def __str__(self): 
          return 'This guy is {self.name},is {self.age} old'.format(self=self) 

    str(Person('kzc',18))

    输出结果:'This guy is kzc,is 18 old'

    4、通过下标

    p=['kzc',18]
    print('{0[0]},{0[1]}'.format(p))
    

    输出结果:'kzc,18'

    有了这些便捷的“映射”方式,我们就有了偷懒利器。基本的python知识告诉我们,list和tuple可以通过“打散”成普通参数给函数,而dict可以打散成关键字参数给函数(通过和*)。所以可以轻松的传个list/tuple/dict给format函数。非常灵活。

    print('my pet name is {student[0]}'.format(student=stu_list))
    my pet name is tom
    
    
    print('my pet {d[tom]} years old'.format(d=age_dict))
    my pet 2 years old

    格式限定符

    它有着丰富的的“格式限定符”(语法是{}中带:号),比如:

    填充与对齐
    填充常跟对齐一起使用
    ^、<、>分别是居中、左对齐、右对齐,后面带宽度
    :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
    比如

    print('{:>8}'.format('189'))
    输出: '   189'print('{:0>8}'.format('189'))
    输出: '00000189'print('{:a>8}'.format('189'))
    输出: 'aaaaa189'

    精度与类型f
    精度常跟类型f一起使用

    priint('{:.2f}'.format(321.33345))
    输出: '321.33'

    其他类型
    主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。

    print('{:b}'.format(17))
    输出: '10001'print('{:d}'.format(17))
    输出: '17'print'{:o}'.format(17)
    输出: '21'print('{:x}'.format(17))
    输出: '11'

    用,号还能用来做金额的千位分隔符。

    print('{:,}'.format(1234567890))
    输出: '1,234,567,890'

    内容有一些做了修改,文章出处:http://www.jb51.net/article/108193.htm

  • 相关阅读:
    7月15日考试 题解(链表+状压DP+思维题)
    暑假集训日记
    C# .NET 使用 NPOI 生成 .xlsx 格式 Excel
    JavaSE 基础 第42节 局部内部类
    JavaSE 基础 第41节 匿名内部类
    JavaSE 基础 第40节 内部类概述
    JavaSE 基础 第39节 接口的应用
    JavaSE 基础 第38节 接口的实现
    JavaSE 基础 第37节 接口概述
    JavaSE 基础 第36节 抽象类概述与使用
  • 原文地址:https://www.cnblogs.com/mzc1997/p/7992153.html
Copyright © 2011-2022 走看看