如何用Python3 f-string生成带指定前导零的四位十六进制字符串?
解决Python f-string十六进制四位数字格式化问题
问题出在格式说明符的长度计算逻辑上:#04x里的4是指整个输出字符串的总长度,包含了0x这两个前缀字符,所以留给十六进制数字的只有2位,最终得到0x0a。
要实现带0x前缀且十六进制部分为四位的格式,有两种实用方法:
方法1:调整总长度为6
把总长度设为6(2位前缀+4位数字),使用格式说明符#06x:
$ python3 -c 'TVAR=0x000a; print(f"{TVAR:#06x}")' 0x000a
方法2:分开拼接前缀和数字
直接格式化出四位十六进制数字,再手动拼接0x前缀,这种方式更直观,无需额外计算总长度:
$ python3 -c 'TVAR=0x000a; print(f"0x{TVAR:04x}")' 0x000a
内容的提问来源于stack exchange,提问作者sdbbs
相关产品推荐
相关产品推荐

