Вам необходимо преобразовать все числовые входные данные в числа с плавающей запятой или в целые числа, если вы хотите делать численные вычисления на них.Вы забыли a
и p
:
a = float(input("Balance: "))
...
p = float(input("Other: "))
Два общих совета на будущее: дайте своим переменным значимые имена (вы можете пропустить гласные или что угодно для скорости, но кроме индексов одинпеременные буквы не велики) и читайте сообщения об ошибках!Здесь 'can't multiply sequence by non-int of type 'float''
означает именно это!Результатом любого вызова input()
является строка (тип последовательности), и когда вы умножаете последовательность на целое число, Python интерпретирует это так, как вы хотите повторить, например:
>>> 'a' * 4
'aaaa'
Ночто делать с поплавком?Я, конечно, не знаю, и при этом это не так:
>>> 'a' * 4.0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'float'
И если худшее подходит к худшему, и вы не можете интерпретировать жалобы Python, тогда у вас все еще есть номер строки - иди туда и посмотри, чтовсе, что делается: f = a * l
, поэтому следующим шагом должен быть анализ a
, l
и почему Python не может их умножить!
Моя точка зрения - да, отладкаэто сложно, но это навык, и пробовать что-то не всегда правильно - иногда методичность ускоряет процесс.