前提
ここに質問の内容を詳しく書いてください。
初学者です。次のコードが何故動かないのかわかりません。
実現したいこと
比べたい
発生している問題・エラーメッセージ
エラーメッセージ
エラーが出ない。
該当のソースコード
python
1def f1(a=10, b=10): 2 while True: 3 if a > b: 4 return f1(a, b) 5 else: 6 return f1(b, a)
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
いまいちreturnの意味、役割が理解しきれていません。
pythonのコードの一番最初の行のすぐ上に
```python
だけの行を追加してください
また、pythonのコードの一番最後の行のすぐ下に
```
だけの行を追加してください
または、
https://teratail.storage.googleapis.com/uploads/contributed_images/56957fe805d9d7befa7dba6a98676d2b.gif
を見て、そのようにしてみてください
現状、コードがとても読み辛いです
質問にコードを載せる際に上記をやってくれたら、他人がコードを読みやすくなり、コードの実行による現象確認もやりやすくなるので、回答されやすくなります
例えば、
f1()
を実行すると、無限ループ(infinite recursive call)になります。任意のパラメータを入れても同様です。
質問に記載のコードは、「return f1(a, b) 」で自分(f1)自身を実行してます
それがさらに自分自身を実行して、、、が永久に繰り返されます
このコードでやりたいことは何でしょうか?
たとえば「a > b」の場合は、本当は「何を」関数から「return」したいのでしょうか?
「return」したい「何か」を、素直にそのまま「return」すればいいのですけど

回答3件
あなたの回答
tips
プレビュー