我在python 2.7中遇到了hex()问题
我想用用户输入将“ 0777”转换为十六进制。
但是在用户输入中使用整数存在问题。
In [1]: hex(0777)
Out[1]: '0x1ff'
In [2]: hex(777)
Out[2]: '0x309'
In [3]: z = raw_input('enter:')
enter:0777
In [4]: z
Out[4]: '0777'
In [5]: hex(z)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-3682d79209b9> in <module>()
----> 1 hex(z)
TypeError: hex() argument can't be converted to hex
In [6]: hex(int(z))
Out[6]: '0x309'
In [7]:
我需要0x1ff,但显示0x309,我该如何解决?
最佳答案
int
类的基本参数默认为10
int(x, base=10) -> integer
前导零将被剥离。请参阅以下示例:
In [1]: int('0777')
Out[1]: 777
明确指定以8为底,然后
hex
函数将为您提供所需的结果:In [2]: hex(int('0777', 8))
Out[2]: '0x1ff'
关于python - 如何在python中使用hex()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30286256/