提问人:Sir D 提问时间:2/13/2012 最后编辑:Sir D 更新时间:2/13/2012 访问量:372
Python 中的 perl hex() 模拟
perl hex() analog in python
问:
Python中的perl hex()模拟如何?
我有下一个perl代码:
my $Lon = substr($Hexline,16,8);
say $output_f "Lon: " . hex($Lon) . "";
哪里有“6a48f82d8e828ce82b82...”格式$Hexline
我在python上尝试
Lon = int(Hexline[16:24], 16)
f.write('lon = %s' % str(Lon)+'\n')
这是对的吗?
编辑:在 perl 的情况下,hex() 给了我一个十进制值。
答:
7赞
jcollado
2/13/2012
#1
是的,要将十六进制字符串转换为整数,请使用 。int(hex_str, 16)
请注意,在方法调用中:write
- 您无需连接两个字符串即可添加新行字符,您可以直接将其添加到格式化字符串中。
- 要打印整数,您应该使用 代替 。
%d
%s
- 您实际上不需要调用即可将整数转换为字符串。
str
因此,写入调用可以写成:
f.write('lon = %d\n' % Lon)
或者,您也可以通过以下方式使用格式
:
f.write('lon = {0}\n'.format(Lon))
评论
0赞
Sir D
2/13/2012
谢谢!格式这就是我所需要的。
2赞
Thomas Wouters
2/13/2012
如果你坚持在%格式中使用%d,你不应该坚持在str.format中使用'd'吗?:)
1赞
jcollado
2/13/2012
@ThomasWouters 我同意这些例子不是对称的。但是,在第一种情况下,我发现使用(称为)有点误导,而在第二种情况下,我发现不使用特定类型并不违反格式的使用方式(称为)。%s
int.__str__
int.__format__
评论