関数に「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)
二重に戻すのを忘れhttp://stackoverflow.com/q/15340281/3001761、http://stackoverflow.com/q/22311440/3001761、http://stackoverflow.com/q/17778372/3001761 - あなたは 'return'ではありません再帰的な場合。また、 'return'は関数ではなく' return 1'だけの文であることにも注意してください。 – jonrsharpe
こんにちは、申し訳ありません、ここではnoobie、これは非常に把握していません。だから、再帰的なケースは、関数がそれ自身を呼び出す、節点の条件付きelseです。条件付きで値を返す必要があると言っていますか? –