2016-01-12 2 views
-1

Python будет умножать переменные, если я установить значение в моем коде, например
wage=10
hours=35
wage*hours
350 #return from python
Однако если определить переменные с входом, эти переменные не будут размножаться, например
Wage=input ("What is your wage?")
What is your wage?20
Hours=input("How many hours did you work this week?")
How many hours did you work this week?40
Wage*Hours #Here is where the problem is
На данный момент питона появится сообщение об ошибке:Выполнение расчетов с входными переменными python3.x

TypeError: can't multiply sequence by non-int of type 'str' 

Есть ли способ, чтобы использовать вход в качестве переменной? Чем проще, тем лучше, поскольку у меня нет опыта программирования, и я только начинаю с python.

ответ

0

Что происходит ввод вы получаете в виде строки. Мы хотим получить его как целое число, чтобы его можно было умножить.

Wage = input("What is your wage?") 
Wage = int(Wage) 

Hours = input("How many hours did you work this week?") 
Hours = int(Hours) 

Wage*Hours 

Вернет правильное значение как целое число, как вы хотите.

Это не самый эффективный, конечно, просто понятный :)

0

На Python 3.x, input функция возвращает строки. Поэтому вам нужно явно преобразовать значения в int.

Это работает:

Wage=input ("What is your wage?") 
Hours=input("How many hours did you work this week?") 
print(int(Wage)*int(Hours)) 
0

Предполагая, что вы используете python3. Вам необходимо преобразовать ввод в целое число для вычислений перед их использованием, как упоминается в поднятой ошибке. Потому что все входные значения принимаются как строки.

Например, вы не можете сделать это

print("5" + 5) 

или это

print("3" * "4") # Which is now happening. 

даст вам ошибку.

Вместо этого используйте:

Wage = int(input("What is your wage?")) 

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

0

ввод возвращает строку. Вы должны попробовать это и брось переменные int:

int (wage) * int(hours)