Types 检查列表中的值是否为整数
我正在尝试制作一个十六进制到十进制的计算器,我正在尝试检查输入是整数还是字符 我怎样才能做到这一点Types 检查列表中的值是否为整数,types,int,python-3.6,Types,Int,Python 3.6,我正在尝试制作一个十六进制到十进制的计算器,我正在尝试检查输入是整数还是字符 我怎样才能做到这一点 def hex2dec(value): dict = {'A':10,'B':11,'C':12,'D':13,'E':14,'F':15} strVal = str(value) length = len(strVal) decimal = 0 for i in range(0,length): try: int(s
def hex2dec(value):
dict = {'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}
strVal = str(value)
length = len(strVal)
decimal = 0
for i in range(0,length):
try:
int(strval[i:i+1])
val = "int"
except ValueError:
val = "not int"
return val
value = int(input("Enter Hexadecimal Value: "),16)
print("Value in Hexadecimal : ", hex2dec(value))
每当我运行代码并输入从A到F的任何单个数字或字母时,它都返回int
有人知道这个问题的解决方法吗?用这句话
value = int(input("Enter Hexadecimal Value: "),16)
您已经将提供的值转换为整数
如果您想自己执行转换,首先接受他们输入的字符串(在上述语句中不要使用int()
)
还请注意,提交的“12”
是一个有效的十六进制值,十进制值为18
,您总是会得到“int”
,因为函数总是用int
调用。变量值
被转换为整数,因为输入
行中的int(..)
如果要先检查,请将原始字符串输入馈送到函数中:
value = input("Enter Hexadecimal Value: ")
您不需要一次检查一个字符,这也可以:
try:
int(strVal)
val = "int"
except ValueError:
val = "not int"
请注意,没有很好的理由签入您的函数!即使您似乎输入了一个整数--
123
,也必须将其作为十六进制数处理。检查它是否也是一个整数在那一点上没有用。扩展前面的答案,您可以执行以下操作:
if (strval[i:i+1] in dict.keys()) or (type(strval[i:i+1]) == int):
val = 'int'
else
'val = 'not int'
为了检查值是int还是dict中的值(另外,您还可以获得一些扩展性)只是为了好玩(没有答案):尝试打印(“十进制值:”,value)。(当然,假设提示是错误的。)@usr2564301是的,但我不想使用内置函数进行转换,我正在尝试将我自己的“是”设置为“坏”。当我搜索以前的问题时,我遇到一篇帖子,提到在输入中输入基数16,以允许十六进制值进行int转换。是的,它可以工作,感谢您指出我将输入转换为int的错误