2016-06-16 2 views
-2

Хорошо, поэтому у меня есть небольшая проблема с вызовом функции 4 на главный. Я сижу здесь больше часа и не могу понять.вызов нескольких функций для основной проблемы

Я продолжаю получать эту ошибку:

(total) = total(num, num2) UnboundLocalError: local variable 'total' referenced before assignment

def main(): 

    num = float(input(" Enter a number: ")) 
    num2 = float(input(" Enter another number: ")) 

    (total) = total(num, num2) 
    (diff) = difference(num, num2) 
    (product) = product(num, num2) 
    (quot) = quotient(num, num2) 

    print(" The total is: ", format(total, ".1f"), sep="") 
    print(" The difference is: ", format(diff, ".1f"), sep="") 
    print(" The product is: ", format(product, ".2f"), sep="") 
    print(" The quotient is: ", format(quot, ".2f"), sep="") 

def total(num, num2): 
    total = (num + num2) 
    return(total) 


def difference(num, num2): 
    diff = abs(num - num2) 
    return(diff) 


def product(num, num2): 
    product = num * num2 
    return(product) 


def quotient(num, num2): 
    quot = num/num2 
    return(quot) 

main() 
+0

Язык тегов и формат вашего кода. – m0skit0

+0

Почему вы думаете, что это хорошая идея вызвать функцию с именем X и сохранить результат в переменной X ('' 'total = total()' '')? Конечно, это не сработает. И как вы думаете, '' '(X) = что-то''' делает (относительно дополнительных скобок)? – sascha

+0

Ну ладно, это имеет смысл. Вы не можете вызывать функцию, когда переменная в этой функции имеет одно и то же имя. (tot) = total (num, num2) вызывает переменную из общей функции, если я прав. Оцените ввод. –

ответ

0

Вашей функция описывает то, что вы пытаетесь сделать, нет никаких оснований для создания локальных переменных в ваших функциях, если вы не будете даже используй их.

def total(num, num2): 
    return num+num2 

def difference(num, num2): 
    return abs(num - num2) 

def product(num, num2): 
    return num*num2 

def quotient(num, num2): 
    return num/num2 

def main(): 
    num = float(input(" Enter a number: ")) 
    num2 = float(input(" Enter another number: ")) 

    summa = total(num, num2) #try to not use the same name for a variable and a function 
    diff = difference(num, num2) 
    prod = product(num, num2) 
    quot = quotient(num, num2) 

    print(" The total is: ", format(summa, ".1f"), sep="") 
    print(" The difference is: ", format(diff, ".1f"), sep="") 
    print(" The product is: ", format(prod, ".2f"), sep="") 
    print(" The quotient is: ", format(quot, ".2f"), sep="") 

main() 
Смежные вопросы