Как умножить переменную на переменную?

#python

#питон

Вопрос:

Поэтому я пытаюсь выполнить проект, в котором мне нужно умножить переменную на переменную, и я получаю ошибку.

 sprite = codesters.Sprite("person1") choice = sprite.ask("What is the thing you want to log?") my_var=choice choice2 = sprite.ask("amount of times you "   my_var   " a day?") my_var2=choice2 AmountPerYear=choice2*365 choice3=sprite.ask("How much money per day") MoneyPerYear=choice3*365 Choice3= sprite.ask("How long does it take to "   my_var   " in seconds") my_var3=Choice3 TimePerDay = my_var3 * my_var2  

Эта последняя строка не работает:

 Oops! can't multiply sequence by non-int of type 'str' on line: 12   TimePerDay = my_var3 * my_var2  

Ответ №1:

По умолчанию передача входных данных в Python принимает ваш ввод в виде a string . Из-за этого ваша программа пытается умножить две строки, что недопустимо, например "5" * "6" . Вы хотите преобразовать свои значения в int типы перед умножением, чтобы он мог правильно выполнить такую операцию, как 5 * 6 :

 TimePerDay = int(my_var3) * int(my_var2)  

Возможно, вы также захотите заранее проверить, что пользователь вводит правильный ввод int

Ответ №2:

Это происходит потому my_var2 , что и my_var3 являются строками. Это могут быть строки, содержащие число, но это не гарантируется. Предположим, ваш пользователь вводит apple и pear . Что такое apple x pear ? Это бессмысленно.

Вам нужно «привести» переменные к целым числам. Попробуйте это:

TimePerday = int(my_var3) * int(my_var2)

Это будет работать, если строки содержат числа , например int('2') = 2 , но если они этого не делают , например int('apple') , вы получите сообщение об ошибке.