#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')
, вы получите сообщение об ошибке.