Python之字符串格式化

    技术2023-07-08  80

    有时候在实际开发当中,需要执行原生sql语句或者想打印某些带变量参数的字符串,那么就需要对字符串进行格式化处理!

    字符串格式化的种类

    ‘+’ 加法拼接方式% 格式符方式format 方式f 方式
    1、加法拼接
    >>> name = 'Thomas' >>> data = 'My name is ' + name >>> data 'My name is Thomas'
    2、% 格式符方式
    %s :占位符 str()%d :十进制 整数%x :十六进制%f :浮点型 指定长度:%5d :右对齐,不足左边补空格%-5d:- 代表左对齐,不足右边默认补空格%05d:右对齐,不足左边补0 浮点数:%f :默认是输出6位有效数据, 会进行四舍五入 如:指定小数点位数的输出 %.2f—保留小数点后2位‘%4.8f’ 4代表整个浮点数的长度,包括小数,只有当字符串的长度大于4位才起作用.不足4位空格补足,可以用%04.8使用0补足空格 >>> name = 'Thomas' >>> height='170' >>> data = 'My name is %s, height %scm'%(name, height) >>> data 'My name is Thomas, height 170cm' 指定长度: >>> data = 'My name is %s, height %-5dcm'%(name, int(height)) >>> data 'My name is Thomas, height 170 cm' >>> data = 'My name is %s, height %05dcm'%(name, int(height)) >>> data 'My name is Thomas, height 00170cm' 浮点数: >>> data = 'My name is %s, height %04.4fcm'%(name, 170.59) >>> data 'My name is Thomas, height 170.5900cm'
    3.format 格式
    顺序赋值 >>> data = 'My name is {}, height {}cm'.format(name, 170.59) >>> data 'My name is Thomas, height 170.59cm' 指定下标赋值 >>> data = 'My name is {1}, height {0}cm'.format(172.56, name) >>> data 'My name is Thomas, height 172.56cm' 指定名称赋值 >>> data = 'My name is {name}, height {height}cm'.format(height=172.56, name=name) >>> data 'My name is Thomas, height 172.56cm' 指定字符串长度 如: 字符串 {:3}–左对齐 数值 {:3}–右对齐 使用**><**可以避免字符串/数值对齐方法不一致 > 右对齐 < 左对齐 >>> dt = 'My name is Thomas, height 172.56cm, age{:5}'.format(15) >>> dt 'My name is Thomas, height 172.56cm, age 15' >>> dt = 'My name is Thomas, height 172.56cm, age{0:#>5}'.format(15) >>> dt 'My name is Thomas, height 172.56cm, age###15' >>> dt = 'My name is Thomas, height 172.56cm, age{0:#<5}'.format(15) >>> dt 'My name is Thomas, height 172.56cm, age15###' 中间对齐 中间对齐**^**不足的长度用#表示 >>> data = 'My name is {name:#^11}, height {height:*^11}cm'.format(height=172.56, name=name) >>> data 'My name is ##Thomas###, height **172.56***cm'
    4.f 格式化

    注意:这种很方便,但是python版本需要在python3.6后的版本才支持该写法,否者会报以下错误:

    可以说这种写法是format的升级,format支持一般也都支持

    >>> data = f'My name is {name}, height {height}cm' >>> data 'My name is Thomas, height 172.65cm' >>> data = f'My name is {name:#^11}, height {height:*^11}cm' >>> data 'My name is ##Thomas###, height **172.65***cm'
    Processed: 0.011, SQL: 9