我关于python的工作中的错误类型
我学习了几天python,我尝试了这个python工作,我不明白“0xffff”的形状是什么,它是str还是int?而且“result”是str是正确的?我关于python的工作中的错误类型,python,Python,我学习了几天python,我尝试了这个python工作,我不明白“0xffff”的形状是什么,它是str还是int?而且“result”是str是正确的?hex返回一个包含给定值的十六进制表示形式的字符串。不过,您不需要将值转换为十六进制,因为0xffff只是一个int文本 不要在Python 2中使用input;使用raw\u input获取字符串,然后显式(尝试)将字符串转换为所需类型的值 #!/usr/bin/env python # coding=utf8 value=input("
hex
返回一个包含给定值的十六进制表示形式的字符串。不过,您不需要将值转换为十六进制,因为0xffff
只是一个int
文本
不要在Python 2中使用input
;使用raw\u input
获取字符串,然后显式(尝试)将字符串转换为所需类型的值
#!/usr/bin/env python
# coding=utf8
value=input("please enter value:")
result=hex(value)
r=hex(0xffff-result)
print r
print result
TypeError: unsupported operand type(s) for -: 'int' and 'str'
当您刚开始使用Python时,只需运行一个交互式Python会话并键入代码,就可以获得大量帮助。只需输入命令
value = raw_input("Please enter a value: ")
r = 0xffff - int(value)
print r # Print the result as a decimal value
print hex(r) # Print the result as a hexadecimal value
您输入的代码可以是表达式或语句。表达式将自动求值,并打印结果(除非恰好是None
)。语句被执行
python
值周围的引号将其标记为字符串
>>> value=input("please enter value:")
please enter value:2134
>>> value
'2134'
现在得到了一个十六进制字符串。让我们把它储存起来
>>> hex(int(value))
'0x856'
通过使用这种交互式实验方法,您可以立即了解哪些有效,哪些无效(通常,在后一种情况下,为什么无效),从而节省大量时间。因此,您可以更好地编写完整的程序。hex()
返回字符串0xffff
是一个整数。不能从整数中减去字符串。是否要将十六进制字符串创建为int?检查此链接
>>> hex(int(value))
'0x856'
>>> result = hex(int(value))
>>> r=hex(0xffff-result)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'int' and 'str'
>>> result
'0x856'
>>> 0xffff - int(value)
63401
>>> hex(0xffff - int(value))
'0xf7a9'