我关于python的工作中的错误类型

我关于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("

我学习了几天python,我尝试了这个python工作,我不明白“0xffff”的形状是什么,它是str还是int?而且“result”是str是正确的?

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'