【问题标题】:Printing values with tabulate in hex用十六进制制表打印值
【发布时间】:2021-03-01 19:17:32
【问题描述】:

我一直在关注this answer,将数组打印为漂亮的表格。这有效,只是它以十进制打印值。如何以十六进制打印值?代码如下:

from tabulate import tabulate

headers = ['array #', 'TX', 'RX']
tx_buffer = [0xCA, 0xFE, 0x80, 0x80, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00, 0x00, 0x00]

rx_buffer = [0]*54

idx = range(0, 54, 1)
table = zip(idx, tx_buffer, rx_buffer)

print("\n")
print(tabulate(table, headers=headers))
print("\n")

【问题讨论】:

  • tx_buffer=[hex(i) for i in tx_buffer] 压缩之前可以使用

标签: python arrays python-3.x


【解决方案1】:

您可以使用hexformat

tx_buffer=[hex(i) for i in tx_buffer] 
             or

tx_buffer=[format(i, '#x') for i in tx_buffer]

hex(x):

将整数转换为前缀为小写的十六进制字符串 用“0x”

format(value[, format_spec]):

将值转换为“格式化”表示,由 格式规范

输出:

array #  TX      RX
---------  ----  ----
        0  0XCA     0
        1  0XFE     0
        2  0X80     0
        3  0X80     0
        4  0X0      0
        5  0X0      0
        6  0X0      0
        7  0X0      0

【讨论】:

  • 这很有帮助。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-22
  • 1970-01-01
  • 1970-01-01
  • 2015-02-14
相关资源
最近更新 更多