第111問Pythonで関数を定義するために使用する正しいキーワードはどれですか。
- Adef
- Bfunction
- Cdefine
- Dfunc
defキーワードによる関数の定義と呼び出しを学ぶ分野です。ローカル変数とグローバル変数のスコープ、global文の使い方、位置引数とキーワード引数の違いや併用時のルールが頻出です。引数のデフォルト値の評価タイミングや、可変オブジェクト(リストなど)をデフォルト値にしたときに値が引き継がれる有名な落とし穴も繰り返し問われます。誤った呼び出しで起きるTypeErrorやNameErrorなど、例外の種類とあわせて整理すると理解が深まります。実務でも必須となる基本を確実に固めましょう。出題数40問。
この分野の問題40問を、選択肢・正解・解説つきで掲載しています。まず自分で解答を考えてから「正解と解説を見る」を開いて答え合わせをしてください。
クイズモードで挑戦 →正解:B.function("spam", "ham", y="foo", z="eggs")
仮引数に位置引数として""ham""を渡した後にキーワード引数でy=""foo""を重複して指定することはできません。
この問題の解説ページを開く →正解:B.デフォルト値を「None」にして関数内で空リストを代入する
引数の省略時に空のリストにするには、デフォルト値をNoneにして関数内で判定し空リストを代入するのが避けるべき挙動を防ぐ方法です。
この問題の解説ページを開く →正解:A.{'kwarg1': 'eggs', 'kwarg2': 'spamhameggs'}
キーワード引数として指定された部分がディクショナリとして**kwargsに格納されます。
この問題の解説ページを開く →正解:A.無名関数と呼ばれる種類の関数で単一の式しか持てないという特徴がある
lambda式は無名関数と呼ばれる種類の関数で、通常の関数定義とは異なり、単一の式しか持てない特徴があります。
この問題の解説ページを開く →正解:C.1行目には簡潔な要約を書き呼び出し方などの詳細な説明は1行空けて3行目から書き始める
docstringは1行目に簡潔な要約を書き、詳細な説明は1行空けて3行目から書き始めます。
この問題の解説ページを開く →