Python中如何让hex()输出完整的十六进制值?
解决Python中十六进制输出保留固定位数的问题
这是因为Python内置的hex()函数会自动省略不必要的前导零,只输出最简洁的形式。如果想要固定输出6位十六进制数(带0x前缀就是完整的0x000000格式),可以用字符串格式化来实现,下面是几种常用的实用方法:
使用f-string(Python 3.6+推荐写法,简洁直观):
val1 = 0x000000 print(f"0x{val1:06X}") # 大写十六进制输出,结果为0x000000 # 偏好小写十六进制字符的话,把X换成x即可: print(f"0x{val1:06x}") # 结果同样是0x000000使用
str.format()方法(兼容更早的Python版本):val1 = 0x000000 print("0x{:06X}".format(val1)) # 大写输出 print("0x{:06x}".format(val1)) # 小写输出同时处理多个值时,能统一保证输出格式一致:
val1 = 0x000000 val2 = 0xFF0000 print(f"val1: 0x{val1:06X}") # val1: 0x000000 print(f"val2: 0x{val2:06X}") # val2: 0xFF0000
这里的06X参数可以拆解理解:
0:用零填充空位,而不是空格6:强制输出6位十六进制数字X:使用大写字母表示十六进制(换成x则是小写形式)
这样就能确保不管你的原始数值是多少,都会输出固定6位的十六进制字符串,加上前缀就是你想要的完整格式啦。
内容的提问来源于stack exchange,提问作者Ken Doe
相关产品推荐
相关产品推荐

