Python | 論理演算子(ブール演算子)

Python
スポンサーリンク

演習問題(全12問)+ 解答解説つき

初心者向け → 中級準備レベルまで、理解がしっかり定着するように
「やさしい問題 → 少し考える問題 → 実務でよく使う問題 → 応用」
の順に演習問題と 詳しい解答解説 を用意しました。


【基礎①:True / False の理解】

問1

次の式の結果は True と False のどちら?

3 > 1

問2

次の式の結果は?

5 == "5"

問3

変数 x = 0 のとき、次は True?False?

x == False

【基礎②:and / or / not の組み合わせ】

問4

次の式の結果は?

True and False or True

問5

次の式を人間の言葉で説明すると?

age >= 18 and age < 65

問6

次の式の結果は?

not (3 < 5) and (2 == 2)

【応用①:チェーン比較・複数条件】

問7

x が 10〜20 の 範囲外 のとき True になる条件式を書きなさい。


問8

y が偶数で なおかつ y が 0 以上 100 以下のとき True になる条件式を書きなさい。


【応用②:実務でよくあるチェック】

問9

変数 name が 空文字でない とき True になる条件式を書きなさい。

(ヒント:空文字 "" は False と評価される)


問10

password が8文字以上 または 数字を含むとき OK としたい。
次の条件式を完成させよ(空欄 ___ を埋める)。

len(password) >= 8 or ___

数字を含むかどうかは password.isdigit() で調べられるとする。


【応用③:ショートサーキットの理解】

次の2つの関数がある:

def A():
    print("A called")
    return False

def B():
    print("B called")
    return True
Python

問11

A() and B()

実行したとき、何が表示される?


問12

A() or B()

実行したとき、何が表示される?


解答 & 詳しい解説【基礎①】

問1:3 > 1

True

3 は 1 より大きいので真。


問2:5 == “5”

False

数値の 5 と、文字列 "5"型が違う
Python は型が違うと基本的に「等しくない」と判定する。


問3:x == False(x = 0 のとき)

True

0 は「Falsy」なので False と等しいと評価される。

ただし実務では 0 と False を == で比較するのは推奨されない
(紛らわしいバグを生むため)。


解答 & 詳しい解説【基礎②】

問4:True and False or True

優先順位は

and → or

なので:

(True and False) or True
→ False or True
→ True

問5:age >= 18 and age < 65

意味は:

「年齢が18歳以上 かつ 65歳未満」

つまり「働ける一般的な年齢」の判定に使える。


問6:not (3 < 5) and (2 == 2)

3 < 5True
not TrueFalse
2 == 2True

False and TrueFalse
Python

解答 & 詳しい解説【応用①】

問7:x が 10〜20 の範囲“外”

範囲外 = 10 未満 または 20 より大きい

x < 10 or x > 20

(1つでも外れていれば範囲外)


問8:y が偶数 かつ 0〜100 の範囲

偶数条件:y % 2 == 0

範囲条件:0 <= y <= 100

両方満たすので:

y % 2 == 0 and 0 <= y <= 100

解答 & 詳しい解説【応用②】

問9:name が空でない

空文字は False と評価されるので、

if name:

で「空でない」になる。

条件式だけ書くと:

name != ""

または Python 的には:

bool(name)

問10:数字を含む条件式を埋める

password.isdigit() → すべて数字なら True
※「数字を含む」ではなく「数字だけ」の場合 True(本来少し違うが問題の前提に従う)

len(password) >= 8 or password.isdigit()

解答 & 詳しい解説【応用③:ショートサーキット】

問11:A() and B()

A() が False を返すと、and はそこで終了(B を評価しない)

表示されるのは:

A called
False

(B は呼ばれない)


問12:A() or B()

A() が False → or なので B() を評価する

よって:

A called
B called
True
タイトルとURLをコピーしました