I have defined these two functions and I need to call income and allowance in function 2 from the first function, basically I want to calculate the finalIncome in function 2 (that line of code is commented). Heres the code:
def personalAllowance():
income = int(input("Enter your annual salary: £"))
allowance = 10600
if(income>100000):
for i in range (100000, income):
if(income%2==0):
allowence = allowence - 0.5
if(allowence<0):
allowence = 0
print("Personal Allowance = " + str(allowence))
else:
print("Personal Allowance = " + str(allowence))
return (income , allowance)
def incomeTax():
print("\n")
#finalIncome = income - allowence
print(finalIncome)
taxBill = 0
if(finalIncome <= 31785):
taxBill = finalIncome * (20/100)
elif(finalIncome > 31785 and finalIncome < 150000):
taxBill = finalIncome * (40/100)
elif(finalIncome >= 150000):
taxBill = finalIncome * (45/100)
print (taxBill)
incomeTax()
asked Oct 18, 2015 at 0:55
Salman Fazal
5871 gold badge10 silver badges26 bronze badges
3 Answers 3
Save references to those values and then subtract them:
income, allowance = personalAllowance()
finalIncome = income - allowance
answered Oct 18, 2015 at 0:58
TigerhawkT3
49.4k6 gold badges66 silver badges101 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
You just have to call personalAllowance and assign the return value to something.
For example:
income, allowance = personalAllowance()
answered Oct 18, 2015 at 0:58
Morgan Thrapp
10k3 gold badges51 silver badges68 bronze badges
Comments
Since you don't actually need the "income" or "allowance", instead of returning a tuple, just return the difference as shown where I have commetned
def personalAllowance():
income = int(input("Enter your annual salary: £"))
allowance = 10600
if(income>100000):
for i in range (100000, income):
if(income%2==0):
allowence = allowence - 0.5
if(allowence<0):
allowence = 0
print("Personal Allowance = " + str(allowence))
else:
print("Personal Allowance = " + str(allowence))
return income - allowance ## Just return the difference
def incomeTax():
print("\n")
finalIncome = personalAllowance() ## This will return difference
print(finalIncome)
taxBill = 0
if(finalIncome <= 31785):
taxBill = finalIncome * (20/100)
elif(finalIncome > 31785 and finalIncome < 150000):
taxBill = finalIncome * (40/100)
elif(finalIncome >= 150000):
taxBill = finalIncome * (45/100)
print (taxBill)
incomeTax()
1 Comment
Salman Fazal
Thing is I'll have to do other calculations as well in other functions, but for this, it works fine. Thanks!
lang-py