2017-11-19 15 views
-4

私はPythonを学んでおり、関数を作成して呼び出したいと思っていました。私がこれを実行すると、 "tax"変数に1より小さい値を入力した場合、それが動作するように動作しますが、税の変数に1より大きい数値を入力すると、次のようなエラーが表示されます:tax()を呼び出す際にエラーが発生しましたTypeError: 'int'オブジェクトが呼び出し可能ではありません

TypeError: 'int' object is not callable

私はGoogleを検索しましたが、このエラーメッセージの意味や解決方法はまだ分かりません。どんな助けでも大歓迎です!

tax = input("Enter your local tax rate: ") 

    if tax < 1: 
    hourlyWage = input("Enter your hourly wage: ") 
    hoursWorked = input("Enter number of hours worked in one day: ") 
    daysWorked = input("Enter number of days worked in one week: ") 

    print(hourlyWage * hoursWorked * daysWorked * tax) 

    else: 
    tax() 


    def tax(): 

    hourly = input("Enter your hourly wage: ") 
    workedHours = input("Enter number of hours worked in one day: ") 
    days = input("Enter number of days worked in one week: ") 

    weeklyWage = hourly * workedHours * days 
    newTax = tax/100 * weeklyWage 
    newWeeklyWage = weeklyWage - newTax 

    print(newWeeklyWage) 
+1

名前の衝突:グローバル変数 'tax'と関数' tax'は同時に存在することはできません。 –

+1

ここでは「税金」という2つの異なるものがあります。そのうちの1つに別の名前をつけてください。 –

+1

これはpython 3ですか? 'input()'は常に途中で文字列を返します –

答えて

1

tax呼び出し可能(__call__メソッドを有するオブジェクト)ではありません。

したがって、あなたはそれを呼び出すことはできません。

関数として定義する前に、taxは入力リターン、したがって文字列です。

関数を呼び出すことはできません(たとえば)。

いくつかのコメントで述べたように、tax()関数を呼び出す前に定義する必要があります。taxを他の変数の名前として使用しないでください。

関連する問題