zoukankan      html  css  js  c++  java
  • python之格式化输出

    字符串格式化有两种方式,%和format

    先介绍下%号的方法

    #%s的语法结构,叫做占位符,就是先占一个位置,然后我们用真实的要显示的数据替换占位符即可
    #最简单的用法就是下面的方式,其实%s还有其他的功能
    # s = '我的名字是%s,我的年龄是%d' %('alex',2)
    # print(s)

    # 我的名字是alex,我的年龄是2


    #%[(name)][flags][width].[precision]typecode
    #第一个参数[(name)],默认情况下%是按照顺序进行格式化的,用了name,我们可以用name来进行字符串格式化,比如下面的例子,
    #可以根据名字来做格式化
    # s = '我的名字是%(name)s,我的年龄是%(age)d' %{'name':'alex','age':12}
    # print(s)

    # 我的名字是alex,我的年龄是12


    #flags,可以是 + - 空格 0,这个一般和width配合起来使用,%没有居中的功能
    #+号,右对齐,正数前加+号,负数前加-号
    # s = 'my age is %(age1)+10dDDDD,my brother age is%(age2)+10d' %{'age1':12,'age2':-12}
    # print(s)
    # my age is +12DDDD,my brother age is -12
    #-号,左对齐,正数前无符号,负数前加-号
    # s = 'my age is %(age1)-10dDDDD,my brother age is%(age2)-10d' %{'age1':12,'age2':-12}
    # print(s)
    # my age is 12 DDDD,my brother age is-12
    #0 ,右对齐,正数前无符号,负数前加-号,用0填补空白处
    #空格,右对齐,正数前加空格,负数前加-号





    #width,占的位置的长度


    #precision 小数点后显示多少位,这里会做四舍五入
    # s = 'my age is %(age1)-10fDDDD,my brother age is%(age2)-10d' %{'age1':12.1234445,'age2':-12}
    # print(s)

    # my age is 12.123444 DDDD,my brother age is-12

    # s = 'my age is %(age1)-10.4fDDDD,my brother age is%(age2)-10d' %{'age1':12.1234445,'age2':-12}
    # print(s)

    # my age is 12.1234 DDDD,my brother age is-12


    # typecode
    #s:是字符串
    #o:将传入的值转换为八进制,然后把转换后的值做字符串格式化
    #x:将传入的值转换为16进制,然后在把转换后的值做字符串格式化
    #d,正数
    #f,浮点数
    # s = 'aaaaaadd %d------------%o----------%x' %(15,15,15)
    # print(s)
    # aaaaaadd 15------------17----------f

    #e|E科学计数法,一个是显示小写的e,一个是大写的E
    # s = '%e--------------%E' %(100000000000000000000,100000000000000000)
    # print(s)
    # 1.000000e+20--------------1.000000E+17

    #%
    # s = 'football %'
    # print(s)
    # s = 'football %%'
    # print(s)

    # football %
    # football %%


    # s = 'name is %s,%' %('dddd')
    # print(s)

    #这样会报错的
    # s = 'name is %s,%%' %('dddd')
    # print(s)

    # name is dddd,%




    下面介绍下format的方法
    # [(fill)align][sign][#][0][width][,][.precision][type]


    #fill:【可选】空白处填充的字符,这里只能写一个字符


    #align,对齐方式,需要配合width使用
    #<:内容右对齐
    #>:内容左对齐
    #=:
    #^:内容居中



    #sign 【可选】有无符合数字、
    # + 正号加正,负数加负
    #- 正号不变,负数加负
    #空格,正号加空格,负数加负


    # #号,【可选】对于二进制,八进制,16进制,如果加上#号,会显示0b 0o 0x,如果不加,则不显示前面的符号




    #,号,如果比较大数字,可以每三位加一个逗号100,000,,000

    #width,格式化位所占的宽度


    #.precision,小数点的保留位


    #type,格式化的类型

    #b,将传入的数字转换成二进制



    #format的常用的用法,这个是按照顺序来格式化的
    # s = 'aaaaaaaadd{0},dddd{0}----{1}' .format('AAA','BBBB')
    # print(s)

    # aaaaaaaaddAAA,ddddAAA----BBBB


    #按照名字做字符串格式化
    # s = '-------{name:s},-------{age:d}------{name:s}' .format(name = 'AAA',age = 23)
    # print(s)
    # -------AAA,-------23------AAA

    #[(fill)align][sign][#][0][width][,][.precision][type],这些全部都要放在冒号后面,冒号前面只能有一个字段,就是name

    # s = '-------------{:@^10s}-----------' .format('AAA')
    # print(s)

    # -------------@@@AAA@@@@-----------

    # s = '-------------{name:@^10s}-----------' .format(name = 'AAA')
    # print(s)

    # -------------@@@AAA@@@@-----------

    # s = '--------{:%}' .format(1.345566677)
    # print(s)

    # --------134.556668%


    #format必须要掌握的几种方式
    # s = 'i am {},age {},{}' .format('foot',12,'boy')
    # print(s)

    # i am foot,age 12,boy

    # s = 'i am {},age {},{}' .format(*['foot',12,'boy'])
    # print(s)

    # i am foot,age 12,boy

    # s = 'i am {0},age {1},{1}' .format('foot',12)
    # print(s)

    # i am foot,age 12,12

    # s = 'i am {0},age {1},{1}' .format(*['foot',12])
    # print(s)

    # i am foot,age 12,12

    # s = 'i am {name},age is {age}' .format(name = 'foot',age = 12)
    # print(s)

    # i am foot,age is 12


    # s = 'i am {name},age is {age}' .format(**{'name':'football','age':12})
    # print(s)

    # i am football,age is 12

    # s = 'i am {name:s},age is {age:d}' .format(name = 'foot',age = 12)
    # print(s)

    # i am foot,age is 12


    # s = '--{:b}--{:d}--{:x}--{:X}--{:%}' .format(15,15,15,15,15)
    # print(s)

    # --1111--15--f--F--1500.000000%

    # s = '--{0:b}--{0:d}--{0:x}--{0:X}--{0:%}' .format(15)
    # print(s)

    # --1111--15--f--F--1500.000000%

    s = '--{num:b}--{num:d}--{num:x}--{num:X}--{num:%}' .format(num = 15)
    print(s)

    # --1111--15--f--F--1500.000000%
  • 相关阅读:
    [你必须知道的.NET] 第四回:后来居上:class和struct
    [你必须知道的.NET]第十回:品味类型值类型与引用类型(下)-应用征途
    [你必须知道的.NET]第十一回:参数之惑传递的艺术(上)
    [你必须知道的.NET] 第一回:恩怨情仇:is和as
    [Anytao.History] 排名进入1000,未来值得努力
    [你必须知道的.NET] 第三回:历史纠葛:特性和属性
    [你必须知道的.NET] 第八回:品味类型值类型与引用类型(上)-内存有理
    [你必须知道的.NET] 第五回:深入浅出关键字把new说透
    [你必须知道的.NET]第十二回:参数之惑传递的艺术(下)
    .NET 3.5
  • 原文地址:https://www.cnblogs.com/bainianminguo/p/6395864.html
Copyright © 2011-2022 走看看