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进制,其中字母大写,%表示百分数

  • 相关阅读:
    Java框架-mybatis02基本的crud操作
    Java框架-mybatis01查询单个数据
    MAC常用命令
    性能测试工具Jmeter13-Jmeter跨线程组调用token
    性能测试工具Jmeter12-Jmeter连接配置带跳板机(SSH)的mysql服务器
    Java基础29-子父类中的成员变量
    Java基础28-继承
    Java基础27-单例设计模式
    启动项目时报spawn cmd ENOENT
    npm安装教程
  • 原文地址:https://www.cnblogs.com/jiachuantang/p/8378071.html
Copyright © 2011-2022 走看看