def taxcalc(gsalary2):
tax=0
if(gsalary2 <= 10164):
tax = 0
elif gsalary2 > 10164 and gsalary2 <= 19740 :
tax1 = 10/100 * 10164
tax2 = (15/100 * (gsalary2 - 10164))
tax = tax1 + tax2
elif gsalary2 > 19740 and gsalary2 <= 29316 :
tax1 = 10/100 * 10164
tax2 = 15/100 * 9576
tax3 = (20/100 * (gsalary2 - 19740))
tax = tax1 + tax2 + tax3
elif (gsalary2 > 29316 and gsalary2 <= 38892) :
tax1 = 10/100 * 10164
tax2 = 15/100 * 9576
tax3 = 20/100 * 9576
tax4 = 25/100 * (gsalary2 - 29316)
tax = tax1 + tax2 + tax3 + tax4
elif gsalary2 > 38892 :
tax1 = 10/100 * 10164
tax2 = 15/100 * 9576
tax3 = 20/100 * 9576
tax4 = 25/100 * 9576
tax5 = 30/100 * (gsalary2 - 38892)
tax = tax1 + tax2 + tax3 + tax4 + tax5
return tax
выше функция терпит неудачу полностью только в этом разделе, кажется, работаетмой, если Elif и «и» возвращение ни один тип
elif gsalary2 > 38892 :
tax1 = 10/100 * 10164
tax2 = 15/100 * 9576
tax3 = 20/100 * 9576
tax4 = 25/100 * 9576
tax5 = 30/100 * (gsalary2 - 38892)
tax = tax1 + tax2 + tax3 + tax4 + tax5
return tax
Все 'elif's работают для меня, я не вижу, где проблема. – grael
После исправления отступов все работает нормально. –
@grael, если elif подобен ниже, он работает только для последнего блока. способ, которым я вставлял его над ним, фактически является okey и будет отлично работать elif gsalary2> 38892: tax1 = 10/100 * 10164 tax2 = 15/100 * 9576 налог3 = 20/100 * 9576 налог4 = 25/100 * 9576 tax5 = 30/100 * (gsalary2 - 38892) налог = налог1 + налог2 + налог3 + налог4 + налог5 налог на возврат –