zoukankan      html  css  js  c++  java
  • Python格式化、显示颜色

    显示颜色

    Print a string that starts a color/style, then the string, then end the color/style change with '33[0m':

    print('33[6;30;42m' + 'Success!' + '33[0m')

    这样就可以输出 Success!

    显示颜色格式:
    33[显示方式;字体色;背景色m String 33[0m

    -------------------------------------------
    字体色     |       背景色     |      颜色描述
    -------------------------------------------
    30        |        40       |       黑色
    31        |        41       |       红色
    32        |        42       |       绿色
    33        |        43       |       黃色
    34        |        44       |       蓝色
    35        |        45       |       紫红色
    36        |        46       |       青蓝色
    37        |        47       |       白色
    -------------------------------------------
    -------------------------------
    显示方式     |      效果
    -------------------------------
    0           |     终端默认设置
    1           |     高亮显示
    4           |     使用下划线
    5           |     闪烁
    7           |     反白显示
    8           |     不可见
    -------------------------------

    打印所有可用颜色:

     1 def print_format_table():
     2     """
     3     prints table of formatted text format options
     4     """
     5     for style in range(8):
     6         for fg in range(30, 38):
     7             s1 = ''
     8             for bg in range(40, 48):
     9                 fmt = ';'.join([str(style), str(fg), str(bg)])
    10                 s1 += '33[%sm %s 33[0m' % (fmt, fmt)
    11             print(s1)
    12         print('
    ')
    13 
    14 
    15 print_format_table()

    格式化输出

    参考官方文档: https://docs.python.org/3/library/string.html#formatstrings

    语法格式

    replacement_field ::=  "{" [field_name] ["!" conversion] [":" format_spec] "}"
    field_name        ::=  arg_name ("." attribute_name | "[" element_index "]")*
    arg_name          ::=  [identifier | integer]
    attribute_name    ::=  identifier
    element_index     ::=  integer | index_string
    index_string      ::=  <any source character except "]"> +
    conversion        ::=  "r" | "s" | "a"
    format_spec       ::=  <described in the next section>
    format_spec     ::=  [[fill]align][sign][#][0][width][grouping_option][.precision][type]
    fill            ::=  <any character>
    align           ::=  "<" | ">" | "=" | "^"
    sign            ::=  "+" | "-" | " "
    width           ::=  integer
    grouping_option ::=  "_" | ","
    precision       ::=  integer
    type            ::=  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"

    示例

    通过位置

    >>> '{0}, {1}, {2}'.format('a', 'b', 'c')
    'a, b, c'
    >>> '{}, {}, {}'.format('a', 'b', 'c')  # 3.1+ only
    'a, b, c'
    >>> '{2}, {1}, {0}'.format('a', 'b', 'c')
    'c, b, a'
    >>> '{2}, {1}, {0}'.format(*'abc')      # unpacking argument sequence
    'c, b, a'
    >>> '{0}{1}{0}'.format('abra', 'cad')   # arguments' indices can be repeated
    'abracadabra'

    通过关键字参数

    >>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')
    'Coordinates: 37.24N, -115.81W'
    >>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'}
    >>> 'Coordinates: {latitude}, {longitude}'.format(**coord)
    'Coordinates: 37.24N, -115.81W'

    通过对象属性

    >>> c = 3-5j
    >>> ('The complex number {0} is formed from the real part {0.real} '
    ...  'and the imaginary part {0.imag}.').format(c)
    'The complex number (3-5j) is formed from the real part 3.0 and the imaginary part -5.0.'
    >>> class Point:
    ...     def __init__(self, x, y):
    ...         self.x, self.y = x, y
    ...     def __str__(self):
    ...         return 'Point({self.x}, {self.y})'.format(self=self)
    ...
    >>> str(Point(4, 2))
    'Point(4, 2)'

    通过下标

    >>> coord = (3, 5)
    >>> 'X: {0[0]};  Y: {0[1]}'.format(coord)
    'X: 3;  Y: 5'

    填充与对齐

    填充常跟对齐一起使用
    ^、<、>分别是居中、左对齐、右对齐,后面带宽度
    :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

    1 '{:>8}'.format('189')
    >>> '     189'
    2 '{:0>8}'.format('189')
    >>> '00000189'
    3 '{:a>8}'.format('189')
    >>> 'aaaaa189'
    >>> '{:<30}'.format('left aligned')
    'left aligned                  '
    >>> '{:>30}'.format('right aligned')
    '                 right aligned'
    >>> '{:^30}'.format('centered')
    '           centered           '
    >>> '{:*^30}'.format('centered')  # use '*' as a fill char
    '***********centered***********'
    >>> for align, text in zip('<^>', ['left', 'center', 'right']):
    ...     '{0:{fill}{align}16}'.format(text, fill=align, align=align)
    ...
    'left<<<<<<<<<<<<'
    '^^^^^center^^^^^'
    '>>>>>>>>>>>right'

    精度与类型f

    精度常跟类型f一起使用

    1 '{:.2f}'.format(321.33345)
    >>> '321.33'

    其他

    字母b、d、o、x分别是二进制、十进制、八进制、十六进制。

    1 width = 5
    2 for num in range(16):
    3     for base in 'dXob':
    4         print('33[1;31m{0:{width}{base}}33[0m'.format(num, base=base, width=width), end=' ')
    5     print()
    >>> # 高亮显示红色字体, 背景颜色默认.
        0     0     0     0 
        1     1     1     1 
        2     2     2    10 
        3     3     3    11 
        4     4     4   100 
        5     5     5   101 
        6     6     6   110 
        7     7     7   111 
        8     8    10  1000 
        9     9    11  1001 
       10     A    12  1010 
       11     B    13  1011 
       12     C    14  1100 
       13     D    15  1101 
       14     E    16  1110 
       15     F    17  1111 
  • 相关阅读:
    连接上三星C5,播放音乐断音
    连接上LG NEXUS4播放音乐无声音输出,关机再开机回连再播放OK
    连接上LG G5时,“连接”提示音能听到明显拖尾杂音
    WebRTC原生开发和混合开发优缺点分析对比
    Safari即将支持WebRTC
    WebRTC通话过程中如何避免其它进程音量下降
    WebRTC 中RTT实现方法
    开发Rtmp推流端开发库的几种选择方案
    WebRTC中OPUS编码相关设置和分析
    WebRTC手记之初探
  • 原文地址:https://www.cnblogs.com/hugengfeng/p/7338433.html
Copyright © 2011-2022 走看看