関数とスコープ・ラムダ応用問題

以下のコードを実行したときの出力を選択してください。 ```python def outer(): x = 10 def inner(): nonlocal x x = 20 inner() return x result = outer() print(result) ```

A.10
✗ nonlocal文により外側のスコープの変数が参照されるため、inner()実行後xは20に変更されます
B.20← 正解
✓ 正解です。nonlocal x により内側の関数が外側スコープのxを変更でき、outer()は変更後の値20を返します
C.NameError例外が発生する
✗ nonlocal文が正しく使用されており、変数xは外側スコープに存在するため例外は発生しません
D.UnboundLocalError例外が発生する
✗ inner()内でxは宣言されており、nonlocal文により適切にバインドされているため例外は発生しません

Python 3 エンジニア認定基礎試験 の問題一覧