Я продолжаю получать эту ошибку: ошибка типа: ошибка int object not iterable при попытке запустить это. кажется, я не понимаю, почему

#python-2.7 #iterable

#python-2.7 #итерируемый

Вопрос:

 def calculate_tax(income_input):
  income_inpu = {}
  for item in income_input:
    tax = '0'
    income = income_input[item]      
    if income in range(0, 1001):
      tax = (0*income)
    if income in range(1001, 10001):
      tax = (0.1 * (income-1000))
    if income in range(10001, 20201):
      tax = ((0.1*(10000-1000))   (0.15*(income-10000)))
    if income in range(20201, 30751):
      tax = ((0.1*(10000-1000))   (0.15*(20200-10000))   (0.2*(income-20200)))
    if income in range(30751, 50001):
      tax = ((0.1*(10000-1000))   (0.15*(20200-10000))   (0.2*(30750-20200))   (0.25*(income-30750)))
    if (income > 50000):
      tax = ((0.1*(10000-1000))   (0.15*(20200-10000))   (0.2*(30750-20200))   (0.25*(50000-30750))   (0.3*(income-50000)))            
    income_inpu[item] = tax
  return income_inpu
  

Комментарии:

1. Я предполагаю, что income_inpu = {} это опечатка, и так и должно быть income_input = {} . Если да, то почему вы переназначаете его в пустой словарь, если вы получаете его в качестве аргумента функции? Если нет, то вам следует создать меньший и более чистый пример с лучшими именами переменных.

2. Я пытаюсь написать функцию, которая будет принимать в качестве аргумента словарь, содержащий пары ключ-значение имен людей в качестве ключей и их годовой доход в качестве значений. Функция предназначена для возврата словаря, содержащего пары ключ-значение с именами тех же людей, что и ключи, и их годовой налоговый счет в качестве значений. правильно ли я это сделал? на самом деле я новичок в программировании. Спасибо

3. Этот код выполняется нормально и не создает никаких исключений, когда. Какое значение вы передаете как income_input ?

4. Soln проверяется в соответствии с приведенными ниже кодами:

5. из unittest import TestCase class CalculateTaxTests(TestCase): def test_it_calculates_tax_for_one_person(self): result = calculate_tax({«Джеймс»: 20500}) self.assertEqual(результат, {«Джеймс»: 2490.0}, msg=»Должен вернуть {‘Джеймс’: 2490.0} для ввода {‘Джеймс’: 20500}»)