• python基础之格式化字符串


    一、格式化字符功能介绍

      应用场景:一般在print的时候提供占位符;python中提供两种格式化字符串方式:第一种是古老的利用百分号的方式,第二种是增强的格式化字符串、format 函数。

    二、古老的百分号方式

    1、常见用法

              常见占位符:%s   -------------字符串占位符

                %d   -------------数字占位符

                %f    -------------浮点型数字占位符

    例如:输入用户的信息,并打印出来

     1 name= raw_input('input your name: ')
     2 age= raw_input ('input your age: ')
     3 job = raw_input ('input your job: ')
     4 msg='''                                             #定义变量msg,字符串中提供占位符
     5 Information of user %s:
     6 -------------------------------
     7 Name: %s
     8 Age:  %s
     9 #特别注意这里,像age这种通过raw_input方式定义的变量,python默认都为字符串,因此这里不用%d,而是用%s
    10 #如果非要用%d的话,那么可以在定义age的时候用函数转换 age= int(raw_input ('input your age: '))                          
    11 Job:  %s
    12 --------------End--------------
    13 '''%(name,name,age,job)                   #把3个用户定义的变量依次赋给msg字符串中的各个占位符,实现替换,注意4个要按顺序一一对应
    14 print msg         
    15 
    16 结果:
    17 
    18 Information of user Mr.Mangood:
    19 -------------------------------
    20 Name: Mr.Mangood
    21 Age:  27
    22 Job:  Engineer
    23 --------------End--------------

    2、更多高级用法

    占位符结构: %[(name)][flags][width].[precision]typecode

    其中:

      (name)    可选,用于选择指定的key   

    1 >>> info = '''联系人%(name)s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':23} # 这里可以用字典{'name':'Mr.Mangood','age':23}来对占位符传值
    2 >>> print info
    3 联系人Mr.Mangood的年龄是23

      [flags]        可选,当占位符设定了宽度的时候比如设定20个字符,但我们传值的时候只写了4个字符,这时对齐的概念就出现了,一般我们会配合着[width]来说

        +      右对齐

        -       左对齐

        空格      右对齐

        0      右对齐 

      [width]     可选,定义占位符宽度

     1 >>> info = '''联系人%(name)20s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':23}   # 这里的20就是宽度[width],不写[flags]默认右对齐
     2 >>> print info
     3 联系人         Mr.Mangood的年龄是23
     4 
     5 >>> info = '''联系人%(name)+20s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':25}  # 这里的+20就是右对齐
     6 >>> print info
     7 联系人          Mr.Mangood的年龄是25
     8 
     9 >>> info = '''联系人%(name)-20s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':23}   # 这里的-20就是代表左对齐
    10 >>> print info
    11 联系人Mr.Mangood          的年龄是23

      .precision    小数点后保留的位数

    1 >>> info = '''学生%(name)s的年龄是%(age)d平均成绩为%(avgscore).2f'''%{'name':'Mr.Mangood','age':25,'avgscore':85.2479} #这里的.2就代表%f这个浮点型占位符保留两位小数
    2 >>> print info
    3 学生Mr.Mangood的年龄是25平均成绩为85.25

      typecode    必选

          c    %c将传进来的整数数字转换成其unicode对应的值

          o    将整数转换成八进制表示

          x    将整数转换成十六进制表示

    1 >>> s = '''测试ASCII码转换%c测试八进制转换%o测试16进制转换%x'''%(65,9,15)
    2 >>> print s
    3 测试ASCII码转换A测试八进制转换11测试16进制转换f

          e    将整数、浮点数转换成科学计数法(科学计数法中的e为小写的e)

          E    将整数、浮点数转换成科学计数法(科学计数法中的E为大写的E)

    1 >>> test = '''测试科学技术法%e测试科学技术法%E'''%(98888888,98888888)
    2 >>> print test
    3 测试科学技术法9.888889e+07测试科学技术法9.888889E+07

          g            自动识别数字大小是否需要转换成科学计数法(如果超过6位数,就用科学计数法来表示),科学计数法中的e为小写

          G            自动识别数字大小是否需要转换成科学计数法(如果超过6位数,就用科学计数法来表示),科学计数法中的G为大写

    1 >>> test = '''测试科学技术法%e测试科学技术法%g'''%(123456,123456)
    2 >>> print test
    3 测试科学技术法1.234560e+05测试科学技术法123456

          %           当字符串中出现了格式化标志时,需要用%%表示一个%

    1 >>> zhenli = '''%s是%d%%纯爷们'''%('Mr.Mangood',100)
    2 >>> print zhenli
    3 Mr.Mangood是100%纯爷们

     三、先进的format()方式

  • 相关阅读:
    5.0、Android Studio调试你的应用
    4.4、Android Studio在命令行运行Gradle
    4.3、Android Studio突破64K方法限制
    4.2、Android Studio压缩你的代码和资源
    4.1、Android Stuido配置你的Build Variant
    【java多线程系列】java中的volatile的内存语义
    【java多线程系列】java内存模型与指令重排序
    4.0、Android Studio配置你的构建
    HashMap
    zk常用命令
  • 原文地址:https://www.cnblogs.com/mangood/p/6028183.html
Copyright © 2020-2023  润新知