Python十六进制到整数转换错误

Python十六进制到整数转换错误,python,int,hex,Python,Int,Hex,81 这是正确的 >>> print(int(0x51)) 但为什么这是不正确的? I get ValueError:以10为基数的int()的文本无效:“0x51”是Python整数文本,它本身已经生成一个整数: >>> str = 51 >>> cmd = "0x%s" %(str) >>> print(int(cmd)) 详情请参阅:;这是hexinteger表单。对该整数对象调用int(),只会再次返回相同的整数

81

这是正确的

>>> print(int(0x51))
但为什么这是不正确的?
I get ValueError:以10为基数的int()的文本无效:“0x51”是Python整数文本,它本身已经生成一个整数:

>>> str = 51
>>> cmd = "0x%s" %(str)
>>> print(int(cmd))
详情请参阅:;这是
hexinteger
表单。对该整数对象调用
int()
,只会再次返回相同的整数值

您可以对前缀为
0x
的字符串使用
int()
,但需要告诉它使用
0
作为基础:

>>> 0x51
81
0
是这里的特例;它告诉
int()。从:

基数0表示将字符串精确解释为整数文本,因此实际基数为2、8、10或16


0x51
是一个Python整数文本,它本身已经生成一个整数:

>>> str = 51
>>> cmd = "0x%s" %(str)
>>> print(int(cmd))
详情请参阅:;这是
hexinteger
表单。对该整数对象调用
int()
,只会再次返回相同的整数值

您可以对前缀为
0x
的字符串使用
int()
,但需要告诉它使用
0
作为基础:

>>> 0x51
81
0
是这里的特例;它告诉
int()。从:

基数0表示将字符串精确解释为整数文本,因此实际基数为2、8、10或16


0x51
已经是一个整数(以十六进制表示),
51
也是一个整数,但具有不同的值。
0x51
已经是一个整数(以十六进制表示),
51
也是一个整数,但具有不同的值。