#python
#python
Вопрос:
Я написал код для калькулятора подоходного налога, который вычисляет подоходный налог человека в соответствии с его полом. Во время выполнения он выдает ошибку. Я не знаю, почему он показывает ошибку. Я новичок, поэтому, пожалуйста, игнорируйте, если в коде есть какие-либо глупые ошибки
Вот прикрепленное изображение ошибки
def incometax_calc():
income = int(input("Enter your total annual income in lakhs: "))
gender = str(input("Enter m if Male, f if Female: "))
if gender == m:
if 1<(income)<(2.5):
tax = 0
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
if 2.5<=(income)<5:
tax = 10
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
if 5<=(income)<10:
tax = 20
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
if (income)>10:
tax = 30
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
elif gender == f:
if 1<(income)<(2.5):
tax = 0
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
if 2.5<=(income)<5:
tax = 5
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
if 5<=(income)<10:
tax = 10
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
if (income)>10:
tax = 20
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
else:
print("Wrong input!!")
print(incometax_calc())
Комментарии:
1. Вам нужна строка
"m"
.2. Терминологическая придирка: ошибка имени не является синтаксической ошибкой. Синтаксические ошибки обычно возникают, когда вы пропускаете отступ, круглую скобку или что-то подобное. Забыть присвоить значение переменной перед ее использованием — это совершенно другая категория проблем.
3. Кроме того, вы скоро попадете в
NameError: name f is not defined
. Так что лучше это тоже исправить 🙂
Ответ №1:
Ваше сравнение строк неверно. Это должно быть
gender == 'm'
В противном случае интерпретатор считает, что это переменная, а не строка.
Ответ №2:
if gender == m:
Здесь вы сравниваете с переменной с именем m, а не со строкой ‘m’.
Чтобы исправить это, преобразуйте эту переменную в строку, например:
if gender == 'm':
Ответ №3:
Python считает m
, что это имя переменной. Заключите это в кавычки, чтобы сравнить переменную gender
со значением 'm'
.
if gender == 'm':
...
Ответ №4:
Ошибка здесь:
if gender == m:
Если вы пишете таким образом, он выглядит, если m
это переменная, но вы хотите "m"
в виде строки.
Ответ №5:
Из вашей трассировки стека:
строка 8: имя ‘m’ не определено
Оператор if gender == m
выдает ошибку, потому что программа ищет переменную m
, которая не определена. Если вы хотели сравнить переменную gender со строковым значением m
, то вам следует заключить ее в двойные или одинарные кавычки.
Ответ №6:
Это ошибка простого определения.
if gender == m:
Переменная m
не была определена в вашем коде до того, как вы ее использовали.
Попробуйте что-то вроде:
m = "m"
if gender == m
или
if gender == 'm'
если m является глобальной переменной, на которую вы ссылаетесь в этом методе, укажите
global m
перед m
первым использованием.
Ответ №7:
m
не определено. Здесь вы вызываете m как объект python. То, что вы ищете, это "m"
Ваш код будет выглядеть следующим образом.
def incometax_calc():
income = int(input("Enter your total annual income in lakhs: "))
gender = str(input("Enter m if Male, f if Female: "))
if gender == "m":
if 1<(income)<(2.5):
tax = 0
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
if 2.5<=(income)<5:
tax = 10
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
if 5<=(income)<10:
tax = 20
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
if (income)>10:
tax = 30
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
elif gender == "f":
if 1<(income)<(2.5):
tax = 0
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
if 2.5<=(income)<5:
tax = 5
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
if 5<=(income)<10:
tax = 10
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
if (income)>10:
tax = 20
tax_ded = ((tax/100)*income)
final_amt = (income)-(tax_ded)
print("Your annual income: ",income)
print("Tax percentage applied: ",tax)
print("Tax deducted: ",tax_ded)
print("Final amount: ",final_amt)
else:
print("Wrong input!!")
print(incometax_calc())