Я пытаюсь определить условную функцию, определение которой зависит от входного значения.Я также хочу, чтобы он выполнялся на нескольких различных входных данных, содержащихся в списке.
Вывод, который я получаю, не соответствует ожиданиям.Для следующих входных данных: доход = [500, 1500, 4000] Я ожидаю, что выход будет: 50, 200, но фактические результаты: -150, 150 и 900 соответственно.Результаты, которые я ожидал:Я получаю правильную информацию, когда вписываю в список только одно значение дохода.
incomes = [500, 1500, 4000]
for current_income in incomes:
income = current_income
if income <1000:
def tax(income):
return income*0.1
elif 1000<=income<2000:
def tax(income):
return 1000*0.1 +(income-1000)*0.2
else:
def tax(income):
return 1000*0.1+ 1000*0.2 + (income-2000)*0.3
for i in incomes:
result = tax(i)
print(result)
Кажется, что порядок значений в списке имеет значение: я изменил порядок доходов в списке, я получаю выходные данные: 400, 150, 50. Я понимаю, что проблема заключается ввзаимодействие цикла for и if, elsif и другие условия, но я не вижу, что на самом деле не так в моем коде.