【问题标题】:Formatting hex to be printed with 2 digits?格式化十六进制以打印 2 位数字?
【发布时间】:2020-07-06 18:40:24
【问题描述】:

python 中的内置函数 hex() 以 0xf 或 0x0 的形式返回给我一个数字,但我希望它们为 0x00。我找到了this on the python docs,但我真的不知道如何解释它。

谢谢

【问题讨论】:

    标签: python hex


    【解决方案1】:

    在python3中,使用这种f字符串格式:

    f"0x{variable:02x}"
    

    为了最大限度地兼容python2/3,请使用.format()

    "0x{:02x}".format(variable)
    

    【讨论】:

      【解决方案2】:

      您可以为此目的使用字符串格式:

      >>> "0x{:02x}".format(13)
      '0x0d'
      

      这里有更详细的例子:

      How can I format an integer to a two digit hex?

      【讨论】:

        【解决方案3】:

        方法如下:

        print('0x'+hex(4)[2:].zfill(2))
        

        输出:

        '0x04'
        


        分解:

        • hex(4),如您所知,将返回 '0x4'hex(4)[2:] 表示获取字符串中第二个之后的所有字符,所以会是'4'

        • str.zfill() 方法将使用我们传递到括号中的指定数量的零填充字符串,因此 hex(4)[2:].zfill(2) 将是 '04'

        • 最后,将我们在开头切掉的前两个字符 ('0x') 放回字符串的开头。

        【讨论】:

          猜你喜欢
          • 2020-05-14
          • 1970-01-01
          • 2016-01-24
          • 1970-01-01
          • 1970-01-01
          • 2014-07-05
          • 2013-10-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多