• 2016.07.09-10 字符串格式化


    字符串格式化
        格式化方式有两种:
        printf styleformat
    
            printf style形式:
                template % tuple 
                template % dict (当单个元素反复出现,或者需要格式化的内容很多的情况下,可以使用字典)
            example:
                >>> 'i am %s, my name is %s' % ('ZJ','ZJ')
                'i am ZJ, my name is zj'
                >>> 'i am %(name)s, my name is %(name)s' % {'name': 'ZJ'}
                'i am ZJ, my name is ZJ'
                >>> 
            格式化字符类型:
                Flag        Meaning 
                '#'        The value conversion will use the “alternate form” (where defined below). 
                '0'        The conversion will be zero padded for numeric values. 
                '-'        The converted value is left adjusted (overrides the '0' conversion if both are given). 
                ' '        (a space) A blank should be left before a positive number (or empty string) produced by a signed conversion. 
                '+'        A sign character ('+' or '-') will precede the conversion (overrides a “space” flag). 
    
                Conversion    Meaning
                'd'        Signed integer decimal.   
                'i'        Signed integer decimal.   
                'o'        Signed octal value.
                'u'        Obsolete type – it is identical to 'd'.
                'x'        Signed hexadecimal (lowercase).
                'X'        Signed hexadecimal (uppercase).
                'e'        Floating point exponential format (lowercase). 
                'E'        Floating point exponential format (uppercase).
                'f'        Floating point decimal format.
                'F'        Floating point decimal format.
                'g'        Floating point format. Uses lowercase exponential format if exponent is less than -4 or not less than precision, decimal format otherwise.
                'G'        Floating point format. Uses uppercase exponential format if exponent is less than -4 or not less than precision, decimal format otherwise.
                'c'        Single character (accepts integer or single character string).   
                'r'        String (converts any Python object using repr()).
                's'        String (converts any Python object using str()).
                'a'        String (converts any Python object using ascii()).
                '%'        No argument is converted, results in a '%' character in the result.   
    
                >>> '%d' % 18                #整形
                '18'
                >>> '%i' % 18                #整形
                '18'
                >>> '%o' % 18                #八进制
                '22'
                >>> '%u' % 18                #整形
                '18'
                >>> '%x' % 12                #十六进制(小写)
                'c'
                >>> '%x' % 12                #十六进制(大写)  
                'X'
                >>> '%e' % 0.0000123            #用科学计数法表示浮点数(小写)
                '1.230000e-05'
                >>> '%E' % 0.0000123            #用科学计数法表示浮点数(大写)
                '1.230000E-05'
                >>> '%f' % 0.00000123            #表示浮点数,默认显示小数点后6位
                '0.000001'
                >>> '%F' % 0.00000123            #表示浮点数,默认显示小数点后6位
                '0.000001'
                >>> '%g' % 0.000000000001234567        #当浮点小数,小数点后的0超过4个时使用科学计数法显示(小写)
                '1.23457e-12'
                >>> '%G' % 0.000000000001234567        #当浮点小数,小数点后的0超过4个时使用科学计数法显示(大写)
                '1.23457E-12'
                >>> '%c' % 'c'                #单个字符,如果字符是多个会抛出异常。
                'c'
                >>> '%s' % 'python is good language'    #字符串(str)
                'python is good language'
                >>> '%r' % 'python is good language'    #字符串(repr)
                "'python is good language'"
                >>> '%a' % '
    '                #字符串(ascii)
                "'\n'"
                >>>
    
    
            format方法
            example:
                >>> 'i am {}'.format('ZJ')
                'i am ZJ'
                >>> 'i am {}, my age is {}'.format('ZJ', 18)
                'i am ZJ, my age is 18'
                >>> 'i am {0}, my age is {1}'.format('ZJ', 18)
                'i am ZJ, my age is 18'
                >>> 'i am {name}, my age is {age}'.format(name='ZJ', age=18)    
                'i am ZJ, my age is 18'
                >>> 'i am {name}, my name is {name}'.format(name='ZJ')                       
                'i am ZJ, my name is ZJ'
                >>> 'i am {0}, my age is {0}'.format('ZJ')                   
                'i am ZJ, my age is ZJ'  
                >>> '{name} {} {}'.format(1,2,name='3')   #传递参数时,位置参数一定要在关键字参数前面。
                '3 1 2'
                >>> '{name} {1} {2}'.format(1,2,name='3')
                Traceback (most recent call last):
                  File "<stdin>", line 1, in <module>
                IndexError: tuple index out of range
                >>> '{name} {1} {2}'.format(1,1,2,name='3')
                '3 1 2'
                >>> '{name} {0} {1}'.format(1, 2, name='3')  
                '3 1 2'
                >>> '{name} {0} {1}'.format(1, 2, name='3')
    
                >>> l1 = [1, 2, 3]
                >>> '{0[2]}' % l1
                '{0[2]}'
                >>> '{0[2]}'.format(l1)
                '3'
                >>> 
    
                >>> '{0:^30}'.format('ZJ')        #居中
                '              ZJ              '
                >>> '{0:<30}'.format('ZJ')        #左对齐
                'ZJ                            '
                >>> '{0:>30}'.format('ZJ')
                '                            ZJ'    #右对齐
                >>> 
    
                >>> '{0:+}'.format(10)            
                '+10'
                >>> '{0:+}'.format(-10)
                '-10'
    
                >>> '{0:30}'.format('ZJ')        #设置宽度,字符串默认是左对齐
                'ZJ                            '
                >>> '{0:30}'.format(30)  
                '                            30'    #设置宽度,数字默认时右对齐
                >>>
                
                >>> '{0:d}'.format(10)            #d为指定类型为数字
                '10'
                >>>
    
                >>> '{0:{fill}^{width}}'.format(30,width=30,fill='!')    #参数是可以进行嵌套的,{full}表示对齐时用指定字符进行填充,默认是用空格进行填充。
                '!!!!!!!!!!!!!!30!!!!!!!!!!!!!!'
                >>> 
  • 相关阅读:
    后台架构设计—数据存储层
    Linux应用程序基础
    Linux文件管理命令笔记
    CentOS7搭建LAMP实战
    (ospf、rip、isis、EIGRP)常见的动态路由协议简介
    python while 循环语句
    获取linux帮助命令
    破解linux虚拟机的密码
    gawk编程语言
    MySQL触发器在PHP项目中用来做信息备份、恢复和清空的方法介绍
  • 原文地址:https://www.cnblogs.com/LouisZJ/p/5674548.html
Copyright © 2020-2023  润新知