#python
Вопрос:
Я пытаюсь сделать вызов для практики. Я пытаюсь использовать входные данные, чтобы решить, сколько вы заплатили бы по кредиту. Действительно основные вещи — но когда я печатаю, я получаю все, что было написано во входных данных, повторяясь снова и снова, и я не могу понять, в чем я ошибаюсь. Код, который я пытаюсь запустить, таков:
# $200 a month at 1.7% interest a year. Automate total based on months using user input.
months_given = input("How many months? ")
monthly_base = 200
yearly_tax = (1.7 / 100 / 12)
monthly_tax = (200 * yearly_tax)
monthly_total = int(monthly_tax 200)
total = int(months_given * monthly_total)
print(f"You will need to pay: ${round(total, 2)}")
Я пробовал использовать циклы for/while, но я еще не разбираюсь в них и все еще пытаюсь понять, как именно они работают.
Комментарии:
1. Попробуйте использовать
months_given = int(input("How many months? "))
, т. е. Преобразовать входные данные вint
. В вашем кодеmonths_given
этоstr
,months_given * 2
например, равноmonths_given
повторяется дважды.2. Это сработало идеально. Я добавил
(monthly_tax * months_given)
в конец своей общей строки, и это добавило процент. Вероятно, шагов было больше, чем нужно, но это сработало. Спасибо!
Ответ №1:
Вам нужно сначала разобрать свой input
, а затем использовать его. когда вы используете input
его, вернитесь str
.
в этой total = int(months_given * monthly_total)
строке. months_given
является str
и когда вы используете *
оператор , а второй операнд является int
, str
значение повторяется.
правильный:
months_given = input("How many months? ")
months_given = int(months_given) # <-- here
monthly_base = 200
yearly_tax = (1.7 / 100 / 12)
monthly_tax = (200 * yearly_tax)
monthly_total = int(monthly_tax 200)
total = int(months_given * monthly_total)
print(f"You will need to pay: ${round(total, 2)}")