2015-10-18 4 views
2

Я определил эти две функции, и мне нужно вызвать доход и учет в функции 2 из первой функции, в основном я хочу рассчитать finalIncome в функции 2 (прокомментирована эта строка кода) , Heres код:Вызов переменной из другой функции в python

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() 

ответ

2

Сохранить ссылки на те значения, а затем вычесть их:

income, allowance = personalAllowance() 
finalIncome = income - allowance 
+0

Спасибо большое mate :) – user3926730

2

Вам просто нужно позвонить personalAllowance и присвоить возвращаемое значение к чему-то.

Например:

income, allowance = personalAllowance() 
+0

сейчас работает. Спасибо друг! – user3926730

1

Так как вы на самом деле не нужен «доход» или «надбавку», вместо того, чтобы вернуться кортеж, просто верните разницу, как показано здесь, где я созрел

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() 
+0

Вещь - мне придется делать другие вычисления, а также в других функциях, но для этого она отлично работает. Благодаря! – user3926730

Смежные вопросы