python中的perl hex()模拟

Sir*_*r D 4 python perl hex

perl hex()在python中的模拟怎么样?
我有下一个perl代码:

my $Lon = substr($Hexline,16,8);
say $output_f "Lon: " . hex($Lon) . "";
Run Code Online (Sandbox Code Playgroud)

哪里$Hexline有"6a48f82d8e828ce82b82 ..."格式

我试试python

Lon = int(Hexline[16:24], 16)
f.write('lon = %s' % str(Lon)+'\n')
Run Code Online (Sandbox Code Playgroud)

这样对吗?

编辑:在perl的情况下,hex()给我一个十进制值.

jco*_*ado 7

是的,将十六进制字符串转换为您使用的整数int(hex_str, 16).

请注意,在您的write方法调用中:

  • 您不需要连接两个字符串来添加新行字符,您可以直接将其添加到格式字符串.
  • 要打印整数,您应该使用%d而不是%s.
  • 您实际上不需要调用str将整数转换为字符串.

因此,写调用可以写成:

f.write('lon = %d\n' % Lon)
Run Code Online (Sandbox Code Playgroud)

或者,您也可以使用format这种方式:

f.write('lon = {0}\n'.format(Lon))
Run Code Online (Sandbox Code Playgroud)

  • 如果你坚持在%-formatting中使用%d,你不应该坚持在str.format中使用'd'吗?:) (2认同)