Как можно добавить к этому коду условие, что, если работник младше 30 лет, он должен платить только половину своего налогооблагаемого дохода? - PullRequest
0 голосов
/ 23 сентября 2019
income_input = {"Gerard": 120000, "Tom": 60000, "Roos": 40000}

def calculate_tax(income_input):
    for item in income_input:
        income = income_input[item]
        # print(income)

        if (income <= 50000):
            tax = (0.3*income)

        elif (income > 50000) and (income <= 100000):
            tax = (0.4 * income)

        elif (income > 100000):
            tax = (0.5*income)  
        else:
            pass
        income_input[item] = int(tax)
    return income_input

print(calculate_tax(income_input))

Вывод: {'Gerard': 60000, 'Tom': 24000, 'Roos': 12000}

Так что я могу получить простой калькулятор, используя словари.Тем не менее, как я могу добавить условие «возраст» к этому?Как я понимаю, возраст должен быть сначала добавлен в словарь примерно так:

income_input  = {'Gerard': 
            {'age': 50, 'salary': 120000},
            'Tom':
         {'age': 28,'salary': 60000},
          'Roos':
         { 'age': 25,'salary': 40000}
} 

Затем я должен сделать условие для расчета, что если «возраст» <= 30, то работник должен платить только половинуего налогооблагаемого дохода?</p>

Таким образом, TOM и ROOS должны заплатить 12.000 и 6.000 соответственно.

Пожалуйста, кто-нибудь может помочь с этим?

Спасибо!

Ответы [ 3 ]

0 голосов
/ 23 сентября 2019

Используя указанную выше структуру вложенного словаря, вы можете получить доступ к возрасту сотрудника с помощью:

income_input['Gerard']['age']  # returns 50 

Лично использование вложенного словаря, содержащего только два поля на сотрудника, кажется мне немного излишним.Вместо этого можно использовать кортеж и получить доступ к возрасту с индексом 0 и окладу с индексом 1, например:

income_input = {'Gerard': (50, 120000), 'Tom': (28, 60000), 'Roos': (25, 40000)}
income_input['Gerard'][0]  # returns 50
0 голосов
/ 23 сентября 2019
income_input = {"Gerard": (50, 120000), "Tom": (28, 60000), "Roos": (25,40000)}

for k in income_input:
    age, income = income_input[k]
    if (age <=30):
        if (income <= 50000):
            tax = (0.3*income)*0.5
        elif (income > 50000) and (income <= 100000):
            tax = (0.4*income)*0.5
        elif (income > 100000):
            tax = (0.5*income)*0.5 
        else:
            pass

Я добавил возраст в словарь как переменную

0 голосов
/ 23 сентября 2019

Вы можете использовать income_input.items(), чтобы получить доступ к диктату в income_input, который содержит и доход, и возраст (см. info диктат ниже).Затем вы можете получить к ним доступ по их ключам.

income_input = {
    'Gerard': {'age': 50, 'salary': 120000},
    'Tom': {'age': 28,'salary': 60000},
    'Roos': { 'age': 25,'salary': 40000}
}

def calculate_tax(income_input):
    tax_dict = {}
    for name, info in income_input.items():
        income = info['salary']
        age = info['age']
        tax = 0.0
        if income <= 50000:
            tax = 0.3 * income
        elif income > 50000 and income <= 100000:
            tax = 0.4 * income
        elif income > 100000:
            tax = 0.5 * income

        # check for age
        if age <= 30:
            tax = tax/2.0

        tax_dict[name] = int(tax)

    return tax_dict

tax_dict = calculate_tax(income_input)
print(tax_dict)
...