zoukankan      html  css  js  c++  java
  • 字符串的格式化输出

    一、定义:所谓字符申格式化就是要先制定个模板。 在这个模板中某个或者某几个地方留出空位来,然后在那些空位填上字符串,井且在显示结果中,字特串要符合空位置所设定的约束条件。

    二、格式化输出的方式:%、str.format、f{str}

      1、%号格式化输出

        Brith:%号格式化字符串的方式从Python诞生之初就已经存在,时至今日,python官方也并未弃用%号,但也并不推荐这种格式化方式。

         (1)用%s占位,但格式的字符串(即%s)与被格式化的字符串(即传入的值)必须按照位置一一对应

            例1:

    # a = "大金块"
    # b = "金少"
    # print("%s说那个%s好大好亮"%(b,a))
    # print("%s说%s好高好帅"%(a,b))

             例2:

    # name_str = "jack"
    # age_str = 18
    # print("我的名字是%s,我的年龄为%s"%(name_str,age_str))

         (2)可以通过字典方式格式化,既打破了位置带来的限制与困扰,又能减少代码行数,使代码看起来更整洁

                 例1:

    # dic = {"a":"大金块","b":"金少"}
    # print("%(b)s说那个%(a)s好大好亮"%(dic))
    # print("%(a)s%(b)s好高好帅"%(dic))

                  例2

    dic = {"name_str":"jack","age_str":"18"}
    print("我的名字是%(name_str)s,我的年龄是%(age_str)s"%(dic))

       2、 str.format

        Birth:format方法是在Python 2.6中引入的,是字符串类型的内置方法。因为str.format的方式在性能和使用的灵活性上都比%号更胜一筹,所以推荐使用。

          (1)用{}占位,传入参数时需按位置一一对应

              例:

    # name = "任金中"
    # ginder = "男"
    # age = "19"
    # stature = "173cm"
    # appearance = "帅气"
    # print("我是{},性别{},年龄{},身高{},外表比较{}".format(name,ginder,age,stature,appearance))

           (2)通过字典方式格式化

             例:

    # dic = {"name":"任金中","ginder":"男","age":"19","stature":"173cm","appearance":"帅气"}
    # print("我是{name},性别{ginder},年龄{age},身高{stature},外表比较{appearance}".format(**dic))

          (3)通过关键字参数格式化
           
      例:
    #print("我是{name},性别{ginder},年龄{age},身高{stature},外表比较{appearance}".format(name = "任金中",ginder = "男",age = "19",stature = "173cm",appearance = "帅气"))
          (4)使用索引取对应位置的值
             例:
    # print('{0}{0}{1}{0}'.format('x','y'))
    # print("{2}{0}{1}{0}".format("x","y","z"))、
          (5)格式化填充输出
            
    例:
    print('{0:*<10}'.format('开始执行'))  #开始执行******
    print('{0:*>10}'.format('开始执行'))  #******开始执行
    print('{0:*^10}'.format('开始执行'))  #***开始执行***
    
    

    冒号(:)前面空白或者是0,冒号(:)后边带填充字符(*),只能是一个字符,不指定的话默认是空格填充

    ^/</>分别是居中、左对齐、右对齐,后面带宽度(字符数量)

          (6)精度与进制
    print('{salary:.3f}'.format(salary=1232132.12351))  
    #精确到小数点后3位,四舍五入,结果为:1232132.124
    
    print('{0:b}'.format(123))  
    # 转成二进制,结果为:1111011
    
    print('{0:o}'.format(9))  
    # 转成八进制,结果为:11 print('{0:x}'.format(15)) # 转成十六进制,结果为:f print('{0:,}'.format(99812939393931)) # 千分位格式化(三个数标一次),结果为:99,812,939,393,931
    
    
    
     
       3、 f-string
         Birth:str.format() 比 %格式化高级了一些,但是它还是有自己的缺陷。当需要传入的字符串过多时,仍然会显得非常冗长。
    于是在Python 3.6中引入 了f-strings,不仅比str.format更简洁,性能上也更胜一筹。
         PS:f-string是以f或F开头的字符串,核心在于字符串中[]的运用
           1.{}中可以是变量名
             例:
    name = "任金中"
    ginder = ""
    age = "19"
    stature = "173cm"
    appearance = "帅气"
    print(f"我叫{name},今年{age},身高是{stature},长得比较{appearance}")
              2.{}中可以是表达式
             例:
    a = 5
    b = 50
    print(f"c是{a*b}") #c是250
     






  • 相关阅读:
    Log4j日志
    Spring和MyBatis环境整合
    Hibernatede的优缺点,Struts的工作流程,延迟加载及理解开闭原则
    Java开发中的23种设计模式
    Spring配置
    Spring框架的一些基础知识
    python打造多线程图片下载工具
    redis 主从备份服务器集群搭建
    mongoo数据库设置权限
    mongo数据库主从备份服务集群搭建
  • 原文地址:https://www.cnblogs.com/longhair/p/13786119.html
Copyright © 2011-2022 走看看