2016-06-16 7 views
-2

さて、主に4関数を呼び出す際に少し問題があります。私は1時間以上ここに座っていて、それを理解できません。主な問題に複数の関数を呼び出す

私はこのエラーを取得し続ける:

(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

ああ大丈夫だよ。その関数内のviariableが同じ名前を持つ場合、関数を呼び出すことはできません。 (tot)=合計(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() 
関連する問題