2015-04-28 2 views
-1

Я хочу напечатать двойной номер.напечатать двойное число

Если я входной 5, почему этот принт 55:

number = input("Input number \n") 

double = number * 2 

print(double) 

и почему эта печать 10, как и ожидалось:

number = int(input("Input number \n")) 

double = number * 2 

print(double) 
+0

1) Спасибо. Пожалуйста, поделитесь тем, как вы это сделаете. 2) Я использовал «для этого примера, я не буду использовать его при запросе. Еще раз спасибо! –

+0

Не могу воспроизвести вашу ошибку, она работает для меня и печатает 10 – Soma

ответ

-1

Существует разница между функциями input() и python3 input().

В python2 у нас было 2 функции, raw_input() для чтения ввода в виде строки и input() для ввода числовых данных.

В python 3 нет raw_input(), но только один метод, который равен input(), который по умолчанию читается как строка.

поэтому, если вы пытаетесь ввести некоторое число, вы должны его вывести.

num = int(input("Input number \n"))

, если вы хотите, чтобы оценить выражение чисел можно использовать eval

>>> a = eval(input("Input Number: ")) 
2+3+4 
>>> a 
9 

Не используйте Eval на производстве, хотя!

+0

Не используйте eval, это ужасный совет. –

+1

есть множество вопросов и ответов на SO, связанных с тем, почему использование eval при вводе данных не является хорошей идеей –

2

Во втором случае вы преобразуете вход на целое число, которое можно умножить на два, чтобы получить ожидаемый результат. В первом случае вы умножаете строку (вместо целого) на два, что приводит к строке в два раза, следовательно, «55».

+0

Спасибо большое! Я думал, что Python определяет тип переменной по его словам, я не понял, что видел его как строку. Еще раз спасибо! –

+0

@BogdanNedelcu В Python существует больше типов, чем о вашей философии. –

Смежные вопросы