format格式化输出、字符串对齐

    科技2024-08-18  25

    1.按进制格式输出

    %o ---- oct 八进制 %d ---- dec 十进制 %x ---- hex 十六进制

    示例

    print('%o' % 20) ---- 24 print('%d' % 20) ---- 20 print('%x' % 20) ---- 20

    2. 浮点数输出

    (1) 格式化输出

    %f ----默认保留小数点后面六位有效数字 %.3f ----保留3位小数位 %e ----默认保留小数点后面六位有效数字,指数形式输出 %.3e ----保留3位小数位,使用科学计数法 %g ----在保证刘伟有效数字的前提下,使用小数方式,否则使用科学计数法 %.3g ----保留3位小数位,使用小数或科学计数法

    示例

    print('%f' % 1.11) # 默认保留6位小数 >>>1.110000 print('%.1f' % 1.11) # 取1位小数 >>> 1.1 print('%e' % 1.11) # 默认6位小数,用科学计数法 >>> 1.110000e+00 print('%.3e' % 1.11) # 取3位小数,用科学计数法 >>> 1.110e+00 print('%g' % 1111.1111) # 默认6位有效数字 >>> 1111.11 print('%.7g' % 1111.1111) # 取7位有效数字 >>> 1111.111 print('%.2g' % 1111.1111) # 取2位有效数字,自动转换为科学计数法 >>> 1.1e+03

    3、字符串输出

    %s %10s——右对齐,占位符10位 %-10s——左对齐,占位符10位 %.2s——截取2位字符串 %10.2s——10位占位符,截取两位字符串

    示例

    print('%s' % 'hello world') # 字符串输出 >>> hello world print('%20s' % 'hello world') # 右对齐,取20位,不够则补位 >>> hello world print('%-20s' % 'hello world') # 左对齐,取20位,不够则补位 >>> hello world print('%.2s' % 'hello world') # 取2位 >>>he print('%10.2s' % 'hello world') # 右对齐,取2位 >>> he print('%-10.2s' % 'hello world') # 左对齐,取2位 >>> he

    4. format用法

    相对基本格式化输出采用‘%’的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’ 位置匹配   (1)不带编号,即“{}”   (2)带数字编号,可调换顺序,即“{1}”、“{2}”   (3)带关键字,即“{a}”、“{tom}”

    示例

    1. print('{} {}'.format('hello','world')) # 不带字段 hello world 2. print('{0} {1}'.format('hello','world')) # 带数字编号 hello world 3. print('{0} {1} {0}'.format('hello','world')) # 打乱顺序 hello world hello 4. print('{1} {1} {0}'.format('hello','world')) world world hello 5. print('{a} {tom} {a}'.format(tom='hello',a='world')) # 带关键字 world hello world

    4.1 左中右对齐及位数补全

    (1)< (默认)左对齐、> 右对齐、^ 中间对齐、= (只用于数字)在小数点后进行补齐 (2)取位数“{:4s}”、"{:.2f}"等]

    示例1

    1.print('{} and {}'.format('hello','world')) # 默认左对齐 hello and world 2.print('{:10s} and {:>10s}'.format('hello','world')) # 取10位左对齐,取10位右对齐 hello and world 3.print('{:^10s} and {:^10s}'.format('hello','world')) # 取10位中间对齐 hello and world 4.print('{} is {:.2f}'.format(1.123,1.123)) # 取2位小数 1.123 is 1.12 5. print('{0} is {0:>10.2f}'.format(1.123)) # 取2位小数,右对齐,取10位 1.123 is 1.12

    示例2

    1.'{:<30}'.format('left aligned') # 左对齐 'left aligned ' 2. '{:>30}'.format('right aligned') # 右对齐 ' right aligned' 3. '{:^30}'.format('centered') # 中间对齐 ' centered ' 4. '{:*^30}'.format('centered') # 使用“*”填充 '***********centered***********' 5.'{:0=30}'.format(11) # 还有“=”只能应用于数字,这种方法可用“>”代替 '000000000000000000000000000011'
    Processed: 0.009, SQL: 8