2017-07-12 13 views
-2

私はPythonにはとても新しく、何度も挫折しました。ここで私は2つのユーザー入力(マイルとガロン)を得ようとしていて、結果は(ガロンあたりのマイル)をプリントアウトしようとしています。関数の引数が混乱しています

def final(): 
    def miles_per_gallons_calculation(miles, gallons,mpg): 
     mpg=miles/gallons 
     return str(mpg)+" miles per gallons" 

    def user_input(): 
     miles = input("Miles?: ") 
     gallons = input("Gallons?: ") 
     float(miles) 
     int(gallons) 
     return miles 
     return gallons 
    user_input() 
    miles_per_gallons_calculation() 
final() 

私はエラーを取得「入力は、()(1与えられた)引数を取りません」が、私は引数を与えませんでした!私は引数を入れてみることを試みましたが、エラーが続いています。あなたは見て、関数の引数を追加してくださいできますか?

更新:エラーを避けるために提案されたように関数名を変更しました。しかし、私はまだ関数 "miles_per_gallons_calculation"を呼び出すことに問題があります。 2番目の関数は1番目の関数の出力を取るので、2番目の関数を呼び出すときに何の引数を入れますか入れませんか? (エラーは「miles_per_gallons_calculationsは2つの引数をとります(0が指定されています)」)

+0

あなたは 'input' *という独自の関数を書いています。これは組み込みのシャドーイングです。別の名前を使用してください。 – jonrsharpe

+0

でもOKです。ありがとう! –

答えて

0

これは、内部関数inputも呼び出されたために発生します。内部のinput関数は、組み込み関数を上書きします。引数をとらないため、このエラーが発生します。名前を変更するだけで、うまくいくはずです。

0

あなたはエラーが発生しているので、入力関数をオーバーライドしています。 def input():def my_input():のように変更します。これはあなたのコードで名前の競合を取り除くでしょう。

関連する問題