a_mboya Ответов: 5

Как получить функцию Python по налоговому вопросу, подобному приведенному ниже


Страна X рассчитывает налог для своих граждан с использованием градуированной шкалы ставок, как показано ниже:

Годовой Доход: 0-1000

Налоговая Ставка: 0%

Годовой Доход: 1,001-10,000

Налоговая Ставка: 10%

Годовой Доход: 10,001-20,200

Налоговая Ставка: 15%

Годовой Доход: 20,201-30,750

Налоговая Ставка: 20%

Годовой Доход: 30,751-50,000

Налоговая Ставка: 25%

Годовой Доход: Более 50 000 Долларов

Налоговая Ставка: 30%

Напишите функцию Python с именем calculate_tax, которая будет принимать в качестве аргумента словарь, содержащий пары ключ-значение имен людей в качестве ключей и их годовой доход в качестве значений.

Функция должна возвращать словарь, содержащий пары ключ-значение тех же имен людей, что и ключи, и их годовой налоговый счет в качестве значений. Например, учитывая пример ввода ниже:

{
‘Алекс’: 500,
"Джеймс’: 20500,
‘Кинутиа’: 70000
}

Результат будет следующим:

{
‘Алекс’: 0,
"Джеймс’: 2490,
‘Кинутиа’: 15352.5
}

Налог для Джеймса будет рассчитываться следующим образом:

Первая 1000 (1000 - 0)

Расчет: 1000 * 0%

Налог: 0

Ближайшие 9000 (10,000 - 1,000)

Расчет: 9000 * 10%

Налог: 900

На следующий 10,200 (20,200 -10,000)

Расчет: 10,200 * 15%

НДС: 1530

Остальные 300 (20 500-20 200)

Расчет: 300 * 20%

Налог: 60

Общий Доход: 20 500

Общий Налог: 0 + 900 + 1530 + 60 = 2490

Что я уже пробовал:

Я попробовал кодировать, но он не работал так, как требовалось.Поэтому я удалил строки кодов. Я действительно не специалист по питону..Начал сам себя учить

5 Ответов

Рейтинг:
2

OriginalGriff

Мы не делаем домашнее задание: оно задано не просто так. Она существует для того, чтобы вы думали о том, что вам сказали, и пытались понять это. Он также существует для того, чтобы ваш наставник мог определить области, в которых вы слабы, и сосредоточить больше внимания на корректирующих действиях.

Итак, говоря: "я попробовал кодировать, и он не работал так, как требовалось.Поэтому я удалил строки кодов" не помогает никому, и меньше всего себе.
Попробуйте еще раз, вы можете обнаружить, что это не так сложно, как вы думаете!

Если вы столкнетесь с конкретной проблемой, то, пожалуйста, спросите об этом, и мы сделаем все возможное, чтобы помочь. Но мы не собираемся делать все это для вас!


Рейтинг:
2

Richard MacCutchan

Видеть учебник по python - поиск в Google[^] для образцов, учебных пособий и т. д.


Рейтинг:
2

Member 12897325

def calculate_tax(d):
    d1={}#Dictionary for calculated tax
    income=0#Value to deduct tax from(Value in income dictionary)
    val=[]
    
    try:
        if isinstance(d,(int)):
            """Check for non -dictionary"""
            print("The provided input is not a dictionary.")
    except ValueError:
        
        raise ValueError("Invalid input of type int not allowed")
    try:
              
              """cheking for Key pairs are number"""
              if not isinstance(d,(dict)):
                    print("The provided input is not a dictionary.")
                    raise ValueError('Allow only numeric input') 
              for k,v in d.items():
                while not isinstance (v,(int,float,complex)):
                    raise ValueError('Allow only numeric input')
    except ValueError as t:
        return ValueError(t)
        while not isinstance (v,(int,float,complex)):
                    raise ValueError('Allow only numeric input')
    except ValueError as t:
        return ValueError(t)
          

    
    
    if isinstance(d,dict):#Ensures  the  argument is  a dict
      for keys in d.keys():
          income=d[keys]
          
          if (income >=0) and (income<=1000):
            tax=(0*income)
            d[keys]=tax#Updtae  the key after taxation
          elif (income > 1000) and (income <= 10000):
             tax = (0.1 * (income-1000))
             d[keys]=tax#Updtae  the key after taxation
          elif (income > 10000) and (income <= 20200):
            tax = ((0.1*(10000-1000)) + (0.15*(income-10000)))
            d[keys]=tax#Updtae  the key after taxation
          elif (income > 20200) and (income <= 30750):
            tax = ((0.1*(10000-1000)) + (0.15*(20200-10000)) + (0.2*(income-20200)))
            d[keys]=tax#Updtae  the key after taxation
          elif (income > 30750) and (income <= 50000):
            tax = ((0.1*(10000-1000)) + (0.15*(20200-10000)) + (0.2*(30750-20200)) + (0.25*(income-30750)))
            d[keys]=tax#Updtae  the key after taxation
          elif (income > 50000):
            tax = ((0.1*(10000-1000)) + (0.15*(20200-10000)) + (0.2*(30750-20200)) + (0.25*(50000-30750)) + (0.3*(income-50000)))
            d[keys]=tax#Updtae  the key after taxation
                
            """updating d1 dictionary"""   
    
    return d


Richard MacCutchan

Вы не помогаете людям, выполняя за них их работу.

Рейтинг:
1

Member 12920744

деф calculate_tax(ДВС):
my_dic = {}
if isinstance(dic, dict):
для my_var, v в dic. items():
если v < 1000:
my_dic[my_var] = v*0
"'print (my_var, "соответствует", v*0)"'
elif 1000 < v & lt; 10000:
my_dic[my_var] = в*.1
"print (my_var, "соответствует", v*.1)"
elif 10000 < v & lt; 20200:
my_dic[my_var] = в*.15
"print (my_var, "соответствует", v*.15)"
elif 20200 < v & lt; 30750:
my_dic[my_var] = в*.20
"print (my_var, "соответствует", v*.20)"
elif 30750 < v < 50000:
my_dic[my_var] = в*.25
"print (my_var, "соответствует", v*.25)"
elif 50000 < v:
my_dic[my_var] = в*.30
"print (my_var, "соответствует", v*.30)"
"печать(my_dic)"'
вернуться my_dic


Рейтинг:
1

Patrice T

Мы не делаем вашу домашнюю работу.
Домашнее задание предназначено не для того, чтобы проверить ваши навыки просить других людей сделать вашу работу, оно предназначено для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание курсов, которые вы прошли, а также проблем, с которыми вы сталкиваетесь при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по их исправлению.
Итак, попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.
Как программист, ваша задача-создавать алгоритмы это решает конкретные проблемы, и вы не можете полагаться на кого-то другого, чтобы вечно делать это за вас, поэтому есть время, когда вам придется научиться этому. И чем скорее, тем лучше.
Когда вы просто просите решение, это все равно что пытаться научиться водить машину, обучая кого-то другого.
Создание алгоритма-это в основном поиск математики и необходимая адаптация к вашей реальной задаче.