Python学习04-格式化

查看所有Python相关学习笔记

格式化学习

格式化

  • %

    数字代表长度,正数是右对齐,负数是左对齐

    • %s -->str
    • %d -->int
    • %f -->float
    • %x -->十六进制(%x -->输出时加上0x)
    >>>'%10d'% 56 # 最少显示10位,不满足时,填充空格
    '        56'
    >>>'%010d'% 56 # 最少显示10位,不满足时,填充0
    '0000000056'
    >>> '%-010d'% 56 # 左对齐时不填充0
    '56        '
    >>> '%9.2f' % 3.145 #小数点后显示两位(四舍五入),总长度为9(包含小数点)
    '     3.15'
    
    >>>vs = [('hasen1',89898),('hasen1112',4444)]
    >>>fs = '''
    >>>%-10s salary: %10d $
    >>>%-10s salary: %10d $
    >>>'''
    >>>print(fs % (vs[0][0],vs[0][1],vs[1][0],vs[1][1])) # %后面必须是元组
    hasen1     salary:      89898 $
    hasen1112  salary:       4444 $  
    
  • format
    • format参考1

    • format参考2

    • format参考3

      位置参数和关键字参数结合使用时,位置参数必须在关键字参数之前

      • 顺序填坑
      >>> print('{},{}'.format(1,2))
      1,2
      
      • 下标填坑
      >>> print('{0},{1}'.format(1,2))
      1,2
      >>> print('{1},{0}'.format(1,2))
      2,1
      >>> print('{0},{1},{0}'.format(1,2))
      1,2,1
      
      • 变量填坑
      >>> print('{a},{b}'.format(a=1,b=2))
      1,2
      >>> print('{b},{a}'.format(a=1,b=2))
      2,1
      >>> 
      
      • 基本格式
      # 数值(int/float)默认右对齐,字符串(str)默认左对齐
      >>>print('{}'.format(56))
      >>>print('{:>10}'.format(56)) # 右对齐
      >>>print('{:<10}'.format(56)) # 左对齐
      >>>print('{:^10}'.format(56)) # 中间对齐
      >>>print('{:010}'.format(56)) #补0
      56
              56
      56        
          56    
      0000000056
      >>>a = 3.45666
      >>>print('原始:{}'.format(a))
      >>>print('保留一位小数:{:.1f}'.format(a))
      >>>print('最少10位:{:10.1f}'.format    (a))
      >>>print('最少10位左对齐:{:<10.1f}'.format(a))
      >>>print('最少10位右对齐:{:>10.1f}'.format(a))
      原始:3.45666
      保留一位小数:3.5
      最少10位:       3.5
      最少10位左对齐:3.5       
      最少10位右对齐:       3.5
      
      a = 'a'
      b = 3
      print(f"右对齐,不足位数(10)时填充‘-’:\t{a:->10}")
      print(f'左对齐,不足位数(10)时填充‘-’:\t{a:-<10}')
      print(f'中间对齐,不足位数(11)时填充‘-’:\t{b:-^10}')
      print(f'中间对齐,不足位数时(11)填充‘-’:\t{b:-^11}')
      
      # 执行结果:
      右对齐,不足位数(10)时填充‘-’: ---------a
      左对齐,不足位数(10)时填充‘-’: a---------
      中间对齐,不足位数(11)时填充‘-’:    ----3-----
      中间对齐,不足位数(11)时填充‘-’:    -----3-----
      
      • 如果字符串内本身含有{},则需要用两个
      >>>print('{} 他说{{你好}}'.format(123.222))
      123.222 他说{你好}
      
      • 简易格式(python 3.6以后)
      >>>name = 'hasen'
      >>>print(f'he said his name is {name}')
      he said his name is hasen
      
      >>>print(f'{123.444:.2f}')
      123.44
      
      • 多行的f-string
      >>>name = 'hasen'
      >>>age = '28'
      >>>message = (
      >>>f'hello,my name is {name}\n'
      >>>f'my age is:{age}。')
      >>>print(message)
      hello,my name is hasen
      my age is:28。
      
      
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容