2016-12-16 4 views
0

を修正することができないように私のコードです:TypeError: 'int'オブジェクトは呼び出し可能ではありませんか?私は自分のコードを書き換える複数回試してみましたが、私はここで線16上のエラーを取得しておく。このエラー

choice = input("fc; cf; fk;?") 
 
if (choice == 'fc'): 
 
\t def fc(): 
 
\t \t fahrenheit = int(input("enter temp: ")) 
 
\t \t celsius = (fahrenheit - 32)/1.8 
 
\t \t print(celsius) 
 
\t fc() 
 
elif (choice == 'cf'): 
 
\t def cf(): 
 
\t \t celsius = int(input("enter temp: ")) 
 
\t \t fahrenheit = (celsius * 1.8) + 32 
 
\t \t print(fahrenheit) 
 
\t cf() 
 
elif (choice == 'fk'): 
 
\t def fk(): 
 
\t \t fahrenheit = int(input("enter temp: ")) 
 
\t \t kelvin = 5/9(fahrenheit - 32) + 273 
 
\t \t print(kelvin) 
 
\t fk()

+0

ランダムなその他のコメント:関数を 'if'ブロックではなくグローバルに定義し、' if'文で '()'を使わない方が簡単ですあなたのPythonのバージョンは何ですか? –

+0

あなたはどのバージョンのPythonを使用していますか?スタックトレースを投稿してその行を見ることができるときに、問題を見つけるために16行をカウントするのはなぜですか?あなたはエラーを得るためにどのような入力を使いますか?より少ないコード行でこの問題を再現することを検討してください。私たちは、データを入力して再現するための選択をする必要はありません。 – tdelaney

答えて

2
kelvin = (5/9)*(fahrenheit - 32) + 273 

代わりの

kelvin = 5/9(fahrenheit - 32) + 273 

それを修正する必要があります

編集:5/9の代わりにPython 2.7を使用している場合は、結果を強制的に強制するには5.0/9にする必要があります。

+0

理由を説明してください。 – tdelaney

+0

乗算には演算子が必要です。私が知る限り、ほとんどの一般的なプログラミング言語に暗黙のうちではありません。ここで起こるのは、Pythonインタプリタは引数が9であると仮定しているということです(fahrenheit - 32)。 9は関数ではないが、intとそのfloatオブジェクトは呼び出し可能ではないため、エラーであることがわかります。 –

0

問題は9(fahrenheit - 32)です。 Pythonはこれを関数呼び出しと見なし、乗算はしません。演算子は常に明示的に記述する必要があります。

kelvin = 5/9 * (fahrenheit - 32) + 273 
関連する問題