zoukankan      html  css  js  c++  java
  • 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!!!!!!!!!!!!!!'
                >>> 
  • 相关阅读:
    18.VUE学习之-v-for操作对象与数值
    17.VUE学习之- v-for指令的使用方法
    16.VUE学习之-v-show的使用与v-if的差异对比
    Ubuntu系统操作
    虚拟机乌班图系统安装 VMware tools 工具
    ubuntu中如何切换普通用户、root用户
    在Ubuntu18.04安装docker之后,以登陆用户身份执行docker pull jenkins,报错:connect: permission denied
    安装VM-TOOLS,解压tar包时提示目录磁盘空间不足
    超详细的VMware安装ubuntu教程
    如何快速下载ubuntu镜像
  • 原文地址:https://www.cnblogs.com/LouisZJ/p/5674548.html
Copyright © 2011-2022 走看看