【发布时间】:2020-05-05 13:10:39
【问题描述】:
我想做一个简单的转换器,打印十六进制的浮点数或整数。我的代码是:
number = input("Please input your number...... \n")
if type(number) == type(2.2):
print("Entered number is float and it's hexadecimal number is:", float.hex(number))
elif type(number) == type(2):
print("Entered number is, ", number,"and it's hexadecimal number is:", hex(number))
else:
print("you entered an invalid number")
但它总是跳过前两个语句,只打印 else 语句。有人可以找出问题吗?
【问题讨论】:
-
因为
number的类型总是str。注意,类型/类是对象。您可以直接使用它们int而不是type(2)等 -
@juanpa.arrivillaga 感谢您的回复,但我之前检查过这个但它没有工作。正如你所说,我再次对其进行了更改,但它跳过了 if 和 elif 语句。
-
@Ibrahim 不,我并不是说这可以解决您的问题。我已经向您解释过
input将总是返回str类型的对象,这就是它被跳过的原因。 -
@Ibrahim 我已经编辑了您的标题以匹配您刚才描述的内容。如果您认为它不正确,请随时进一步调整。
标签: python-3.x