0
誰も最初の動作しない理由を説明してもらえますか?最初に関数または値を返す:再帰的なpython関数
、関数は最終的な調整値を算出し、...
# returns None
def _pareRotation(degs):
if degs > 360:
_pareRotation(degs - 360)
else:
print "returning %s" % degs
return degs
...しかしNone
を返します。しかし
print _pareRotation(540)
>> returning 180
>> None
、我々は物事を少しとリターンを反転場合機能...
# returns expected results
def _pareRotation(degs):
if degs < 360:
print "returning %s" % degs
return degs
else:
return _pareRotation(degs - 360)
...それが期待どおりに動作:
print _pareRotation(540)
>> returning 180
>> 180
ほとんどの場合、None
が再帰的ループから排出される原因は何ですか?
まだ標準化されていない場合は、標準的な質問があります。この種類の再帰の失敗は、少なくともこのタグでは5回発生します。 –
良い悲しみがあり、そこにあります。ありがとうございました。私は@ Two-BitAlchemistに同意しますが、質問に微妙な違いがあるかもしれません。私は、目標変数 - 「final_degs」と言うことにしよう - という意味で、再帰関数になるという考え方に悩まされました。私が 'final_degs = _pareRotation(540)'を実行し、 'final_degs'を表示または使用すると、私は実際にはいくつかの変換(intから関数)を経た変数を使用しています。それはそれについての正確な考え方ですか? – ghukill