вводится в качестве поплавка или Int

голоса
1

Я хотел бы иметь возможность отображать двойное значение любого числа вводимых пользователем.

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 не работает.

Задан 05/12/2017 в 08:53
пользователем
На других языках...                            


2 ответов

голоса
1

Вы можете использовать float:

spam = float(input('choose any number: '))
print('Your number doubled is: ' + str(spam*2))
Ответил 05/12/2017 в 08:58
источник пользователем

голоса
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)

Как это работает в том, что он будет пытаться преобразовать в целое число, и если это не работает, он преобразует его в поплавок.

Ответил 05/12/2017 в 09:11
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more