2016-04-23 66 views
-1

関数に「x」という変数が割り当てられています(「rundown」)。この関数の内部では、2つの変数 "y,z"がランダムな値だけ減少します。条件付きステートメントは、yとzの両方が0より大きいかどうかをチェックします。そうであれば、関数は新しい値で再び実行され、1つの変数が0に達するまで繰り返します。Python関数から戻り値が返されない

これらの変数の1つが0以下になると、 yまたはzが最初に0になるかどうかに基づいて値を返します。 xはその値が割り当てられていると想定されているので、main関数内の条件は、終了関数の結果に基づくことができます。しかし、その部分は動作していないようです。

私は、条件文にトリガがあるかどうかを確認するためにprint文を追加しようとしました。しかし、xにprintステートメントを追加すると、 "none"が表示されるので、私のコードが壊れている箇所がわかります。

def main(): 
    x = rundown(y,z) 
    if x == 0: 
    #(do something) 
    elif x == 1: 
    #(do something else) 


def rundown(y,z): 
    y -= (1 + random.random()) 
    z -= (1 + random.random()) 
    if y <= 0: 
    return(0) 
    elif z <= 0: 
    return(1) 
    else: 
    rundown(y,z) 
+6

二重に戻すのを忘れhttp://stackoverflow.com/q/15340281/3001761、http://stackoverflow.com/q/22311440/3001761、http://stackoverflow.com/q/17778372/3001761 - あなたは 'return'ではありません再帰的な場合。また、 'return'は関数ではなく' return 1'だけの文であることにも注意してください。 – jonrsharpe

+0

こんにちは、申し訳ありません、ここではnoobie、これは非常に把握していません。だから、再帰的なケースは、関数がそれ自身を呼び出す、節点の条件付きelseです。条件付きで値を返す必要があると言っていますか? –

答えて

-1

機能にして値を返すために行く他の下でランダウンではないですが、あなたが持っていない:私はちょうどここに私が働いているかのJISTは、理由はわからないんだけど...それはあなたがメインでやるようなものに割り当てられています。多分

リターン(ランダウン(Y、Z))

-1

を行うことは、例えば、他の多数の他なステートメントreturn rundown(y,z)

関連する問題