#python #automation #calculator
#python #автоматизация #калькулятор
Вопрос:
Я пытаюсь создать калькулятор комиссионных за продажу. Это роли:
Tiers | Amount | Percentage applied
1 | £84,000 - £98,000 | 7.50%
2 | £98,000 - £112,000 | 10.00%
3 | £112,000 - £126,000 | 12%
4 | £126,000- £146,000 | 15.00%
minimum amount= 84k
Это мой код, но он не возвращает никакого значения
from bisect import bisect
rates = [0, 7.5, 10, 12, 15]
brackets = [84000, # first 84k
98000, # next 14k
112000, # next 14k
126000, # next 14k
146000] # next 20k
base_tax = [0, # 84k * 0%
14000, # 14k * 7.5%
14000, # 14k * 7.5% 14000
14000, # 14k * 7.5% 14000 14000
20000] # 20k * 15% 14000 14000 14000
income = 120000
def tax(income):
i = bisect(brackets, income)
if not i:
return 0
rate = rates[i]
bracket = brackets[i-1]
income_in_bracket = income - bracket
tax_in_bracket = income_in_bracket * rate / 100
total_tax = base_tax[i-1] tax_in_bracket
return total_tax
Как я могу реализовать автоматический калькулятор, который учитывает коэффициенты и разные шины?
Ответ №1:
- Во-первых, вы не импортировали модуль, который содержит функцию bisect .
- Во-вторых, чтобы вернуть значение, должна быть вызвана функция. Вы должны вызвать эту функцию. Итак, вам нужно выполнить следующие действия:
Добавьте import bisect
в начале кода.
В i = bisect(brackets, income)
, вы должны написать i = bisect.bisect(brackets, income)
. Это способ использования функции bisect модуля bisect. Общий способ использования функции любого модуля таков module.function()
.
Чтобы вывести налог, напишите print(total_tax)
перед кодом возврата. Вы этого не написали.
И, наконец, вызовите функцию, добавив: tax(income)
PS Извините за этот способ, потому что код не был отформатирован должным образом. Надеюсь, вы понимаете.