or の評価
次のコードを実行したときの出力として、正しいものを1つ選べ。
string1, string2, string3 = "", "Trondheim", "Hammer Dance"
non_null = string1 or string2 or string3
print(non_null)
- A
True - B
Trondheim - C
Hammer Dance - D
空の文字列
正解と解説を見る
正解:B
and と or は短絡評価を行い、最後に評価した値を返す。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `string1, string2, string3 = "", "Trondheim", …` | string1 = '', string2 = 'Trondheim', string3 = 'Hammer Dance' |
| 2 | `non_null = string1 or string2 or string3` | non_null = 'Trondheim', string1 = '', string2 = 'Trondheim', string3 … |
| 3 | `print(non_null)` | non_null = 'Trondheim' |
| 結果 | 実際の出力 | Trondheim |
- A
誤り。or は、真偽値ではなく、最後に評価した値を返す。
- B
正しい。or は左から順に評価し、最初に真とみなされる値(空でない文字列)を返す。空の文字列は偽とみなされる。
- C
誤り。string2 が真とみなされた時点で評価が終わる(短絡評価)。
- D
誤り。空の文字列は偽とみなされるので、次の値が評価される。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。