How to define a long hex literal over several lines?
在Python中,如何在多行上定义一个非常长的十六进制文字?例如。
1 2 3 4 5 6 | p = 0xB10B8F96 A080E01D DE92DE5E AE5D54EC 52C99FBC FB06A3C6 9A6A9DCA 52D23B61 6073E286 75A23D18 9838EF1E 2EE652C0 13ECB4AE A9061123 24975C3C D49B83BF ACCBDD7D 90C4BD70 98488E9C 219A7372 4EFFD6FA E5644738 FAA31A4F F55BCCC0 A151AF5F 0DC8B4BD 45BF37DF 365C1A65 E68CFDA7 6D4DA708 DF1FB2BC 2E4A4371 |
如果我也能保留空格或其他分隔符,那就太好了。
1 2 3 4 5 6 7 8 | p = int(''.join(''' B10B8F96 A080E01D DE92DE5E AE5D54EC 52C99FBC FB06A3C6 9A6A9DCA 52D23B61 6073E286 75A23D18 9838EF1E 2EE652C0 13ECB4AE A9061123 24975C3C D49B83BF ACCBDD7D 90C4BD70 98488E9C 219A7372 4EFFD6FA E5644738 FAA31A4F F55BCCC0 A151AF5F 0DC8B4BD 45BF37DF 365C1A65 E68CFDA7 6D4DA708 DF1FB2BC 2E4A4371 '''.split()), 16) |
您可以使用int(str,16)来翻译十六进制。
这里有一个尝试,它将其保存为字符串,然后使用
1 2 3 4 5 6 7 8 9 10 11 | from ast import literal_eval hex_string_literal = ( "0xB10B8F96""A080E01D""DE92DE5E""AE5D54EC""52C99FBC""FB06A3C6" "9A6A9DCA""52D23B61""6073E286""75A23D18""9838EF1E""2EE652C0" "13ECB4AE""A9061123""24975C3C""D49B83BF""ACCBDD7D""90C4BD70" "98488E9C""219A7372""4EFFD6FA""E5644738""FAA31A4F""F55BCCC0" "A151AF5F""0DC8B4BD""45BF37DF""365C1A65""E68CFDA7""6D4DA708" "DF1FB2BC""2E4A4371") p = literal_eval(hex_string_literal) |
定义上面的字符串文字使用字符串文字串联。
编辑
正如@nneonneo在下面的评论中所说,您也可以在上面的示例中使用