zoukankan      html  css  js  c++  java
  • 字符串格式化(format和%)

    字符串格式化指的是在定义一个字符串的时候,字符串有的地方的字符序列事先并不一定能知道,此时可以用一些特殊的符号来占位,然后把内容在别处加上

    字符串格式化有两种方式,第一种是用%格式化,第二种是用format方法格式化。本文就这两种格式化方法进行讨论。

    一.%格式化方法

    1.表示字符串(%s.) 

     1 msg1='I am %s my hobby is %s' %('hahha','heheh')
     2 msg2='I am %s my hobby is %s' %('hahha',123)
     3 msg3='I am %s my hobby is %s' %('hahha',[1,2,3])
     4 msg4='I am %s my hobby is %s' %('hahha',(1,3,4))
     5 msg5='I am %s my hobby is %s' %('hahha',{'key':'value'})
     6 print(msg1)
     7 print(msg2)
     8 print(msg3)
     9 print(msg4)
    10 print(msg5)

      理论上说,%s可以代表任意类型的数据类型,但是为了提高代码的可读性,建议使用%s代表字符串。

    2.表示浮点数(%.2f,%f)

    1 f1='float type %f' % 89.89783942 f2='flaot type %.2f' % 89.8978394 3 print(f1)
    4 print(f2)

      %f表示该位置是一个浮点数,一般浮点数使用%.xf来表明保留的小数位,x代表保留的小数位,上面程序中x=2代表保留两位小数,如果只使用%f而不指明保留的小数位,则是默认保留6位小数

    3.表示整数(%d)

    msg='hah %d' % 45.89 #会把小数点后面的小数部分去掉
    print(msg)

    如果后面传的是一个浮点数,%d会把浮点数的小数位全部舍弃(不会四舍五入)

    4.把数字转为百分比(%f %%,%d %%)

    1 msg='its precent %f %%' % 78.4344333443232
    2 msg1='its precent %.2f %%' % 78.434433323232
    3 print(msg)
    4 print(msg1)

    要把数字转为百分比,需要将%%配合%d或%f使用。首先使用%f或%d表示该位置是一个数字,然后用%%表示将其转为百分比。

    5.使用字典的形式格式化(%())

    1 msg='My name is %(name)s,my age is %(age)d' % {'name':'hah','age':12}
    2 print(msg)

    这种方式,用()里面的内容来表示字典的key值,后面的s,d,f等来表示key值对应的value值的类型,这样就可以用value值来代替key值了。

    6.补充:print用指定的分隔符将多个字符串连接起来

    在使用print打印数据时,可以加一个参数用来分隔不同的字符串,具体用法如下:

    print('root','x','0','0' ,sep=':')

    执行后的代码如下:

    二.format格式化:

    1.指定变量名的格式化

    tp1='I am {name},age{age},really{name}'.format(name='hahah',age=12)

    format格式化是利用{}来操作的,一个字符串调用format函数,然后将{}里面的变量赋相应的值,就可以用该值替换内容。

    2.不指定变量名的格式化

    1 tp2='I am {:s},age{:d},really{:s}'.format('nicai',12,'buhao1')
    2 print(tp2)
    3 tp3='I am {},age{},really{}'.format('nicai',12,'buhao1')
    4 print(tp3)

    tp2和tp3输出结果一致,不同的是tp2指定了每一个占位符的数据类型,建议使用tp2的形式,这样程序可读性更高

    3.将format()函数里面的内容以字典的形式展示

    1 tp3='I am {name},age{age},really{name1}'.format(**{'name':'xie','age':12,'name1':'hdhie'})
    2 print(tp3)

    如果format()里面传的参数是一个字典,那么就在前面加**号表示。这种表示法语1相同

    4.将format()函数里面的内容以列表的形式展示

    1 tp3='I am {:s},age{:d},really'.format(*['he',156])
    2 print(tp3)

    如果format()里面传的参数是一个列表,那么就在前面加*号表示。这种方式与2相同。

    5.用format将数字以特定的进制输出

    1 msg='number:{:b},{:o},{:d},{:x},{:X},{:%},{}'.format(99,99,99,99,99,99,99)
    2 print(msg)

    b表示二进制,o表示8进制,d表示10进制,x表示16进制,其中字母小写,X表示16进制,其中字母大写,%表示百分数

  • 相关阅读:
    Add Two Numbers
    Reverse Linked List II
    Reverse Linked List
    Remove Duplicates from Sorted List
    Remove Duplicates from Sorted List II
    Partition List
    Intersection of Two Linked Lists
    4Sum
    3Sum
    2Sum
  • 原文地址:https://www.cnblogs.com/jiachuantang/p/8378071.html
Copyright © 2011-2022 走看看