関数とスコープ・ラムダ応用問題
以下のコードを実行したときの出力を選択してください。 ```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文により適切にバインドされているため例外は発生しません
「関数とスコープ・ラムダ」の他の問題
以下のコードを実行したときの出力結果として正しいものはどれか。
def multiply(x, y=3):
r…以下のコードを実行したときの出力結果として正しいものはどれか。
square = lambda x: x ** 2
a…以下のコードを実行したときの出力結果として正しいものはどれか。
def calculate(a, b, c=2):
…以下のコードを実行したときの出力結果として正しいものはどれか。
numbers = [2, 3, 4, 5]
resu…以下のコードを実行したときの出力結果として正しいものはどれか。
def outer(x):
def inner…以下のコードを実行したときの出力結果として正しいものはどれか。
def func(a, b, *args):
…