フィボナッチ数列を出力するメソッドを定義したかったのですが、平文で記述すると想定通りに動く(Ⅰ)のに対し、関数で定義するとエラーが出力されます(Ⅱ)。
エラーログを見ると、関数内で定義したはずのa,bが消えているようにも見受けられます。
非常に初歩的な質問で申し訳ないのですが、解決方法をご教授ください。
ちなみに実行にはgoogle Colaboratoryを使用しています。
python
1#(Ⅰ) 2a, b = 0, 1 3for i in range(10): 4 print(a, end = ", ") 5 a, b = b, a+b 6#0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
python
1#(Ⅱ) 2fib(10) 3 4def fib(n): 5 a, b = 0, 1 6 for i in range(10): 7 print(a) 8 a, b = b, a+b 9#local variable 'a' referenced before assignment
python
1#エラーログ 2 3UnboundLocalError Traceback (most recent call last) 4 5<ipython-input-22-a3ab9e201878> in <module>() 6 1 7 2 8----> 3 fib(10) 9 4 10 5 def fib(n): 11 12<ipython-input-11-d518b30094ce> in fib(n) 13 7 def fib(n): 14 8 for i in range(n): 15----> 9 print(a) 16 10 a, b = b, a+b 17 11 18 19UnboundLocalError: local variable 'a' referenced before assignment
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。