関数とスコープ・ラムダ誤り発見
以下の記述で誤っているものはどれか
A.関数内でglobal文を使用して宣言した変数は、関数内で新しい値を割り当てるとグローバルスコープの変数が変更される
✓ この記述は正しい。global文で宣言した変数への割り当ては、グローバルスコープの変数を変更する
B.ネストされた関数内でnonlocal文を使用すると、その関数のローカル変数が外側の関数のローカル変数として扱われる
✓ この記述は正しい。nonlocal文により、外側の関数のローカルスコープの変数を変更できる
C.lambda式はdefで定義した関数と完全に同等な機能を持つため、どの場合でも置き換え可能である← 正解
✓ 正解です。この記述が誤りで、lambda式はdef文での関数定義と完全には等等ではありません。lambda式は単一の式のみ含むため、複雑な処理、複数の文、制御フロー、ドキュメント文字列を必要とする場合はdef文を使用する必要があります
D.関数オブジェクトは他の値と同じように変数に割り当てることができ、引数として渡すこともできる
✓ この記述は正しい。関数オブジェクトは値として扱え、変数への割り当てや引数渡しが可能である
「関数とスコープ・ラムダ」の他の問題
以下のコードを実行したときの出力結果として正しいものはどれか。
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):
…