return 文の一貫性
関数の return についての PEP 8 の推奨として、最も適切なものを1つ選べ。
- A
関数のすべての経路で、値を返すか、どれも値を返さないかをそろえる。値を返さない経路では、明示的に
return Noneと書く。 - B
一部の経路だけ値を返し、他の経路は何も書かずに終わるのがよい。
- C
returnは、関数の途中には書かないのが規則である。 - D
値を返す関数では、
printで結果を出力すればreturnは不要である。
正解と解説を見る
正解:A
戻り値の有無は、関数のすべての経路でそろえる。返さない場合は return None(または return)を明示する。
| 場面 | 推奨 | 避ける書き方 |
|---|---|---|
| Noneとの比較 | x is None | x == None |
| 例外の捕捉 | 具体的な例外を指定する | 裸の except: |
| 型の判定 | isinstance(x, int) | type(x) == int |
| 空のシーケンスの判定 | if not seq: | if len(seq) == 0: |
| 関数を名前に束縛 | def f(x): ... | f = lambda x: ... |
| 前方一致 | s.startswith("ab") | s[:2] == "ab" |
| リソースの管理 | with open(...) as f: | close() を手で呼ぶ |
| returnの一貫性 | すべての経路で値を返す(返さないなら明示的に return None) | 値を返す経路と返さない経路の混在 |
| 文字列の連結 | ''.join(parts) | ループで s += part |
| tryの範囲 | 例外が出る文だけを囲む | 大きなブロック全体を囲む |
- A
正しい。一部の経路だけが値を返すと、意図が読み取りにくい。
- B
誤り。経路ごとに戻り値が不ぞろいになる。
- C
誤り。早期の
returnは有効。 - D
誤り。出力と戻り値は別。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。