输入为float或int

时间:2017-12-05 10:53:07

标签: python input integer

我希望能够显示用户输入的任意数字值的两倍。

spam = int(input('choose any number: '))
print('Your number doubled is: ' + str(spam*2))

问题是用户输入小数,即3.4。它会出现错误,因为它变为浮点值。

Traceback (most recent call last):
  File "<pyshell#66>", line 1, in <module>
    spam = int(input('choose any number: '))
ValueError: invalid literal for int() with base 10: '3.4'

是否有一种简单的方法让用户输入任何数字(是整数还是浮点值)?

这是在python 3中,所以raw_input不起作用。

2 个答案:

答案 0 :(得分:1)

您可以使用float

spam = float(input('choose any number: '))
print('Your number doubled is: ' + str(spam*2))

答案 1 :(得分:0)

这样做:

spam = input('choose any number: ')

try:
        print('Your number doubled is: ' ,int(spam)*2)


except ValueError:
        print('Your number doubled is: ' ,float(spam)*2)

它的工作方式是它会尝试转换为整数,如果它不起作用,它会将它转换为浮点数。