1-3

論理・比較演算と条件分岐の基礎

真理値(bool型)

Pythonには真理値(bool型)という型があり、True(真)とFalse(偽)の2つの値があります。

python
type(True)   # <class 'bool'>type(False)  # <class 'bool'>

注意: TrueFalse は先頭が大文字です。truefalse はエラーになります。

比較演算子

2つの値を比較して True または False を返す演算子を比較演算子といいます。

python
3 < 5     # True(3は5より小さい)3 > 5     # False3 == 3    # True(等しい)3 != 4    # True(等しくない)3 <= 3    # True(以下)3 >= 4    # False(以上)

比較演算子のまとめ

| 演算子 | 意味 | 例 | 結果 | |:---:|:---:|:---:|:---:| | < | 小さい | 3 < 5 | True | | > | 大きい | 3 > 5 | False | | == | 等しい | 3 == 3 | True | | != | 等しくない | 3 != 4 | True | | <= | 以下 | 3 <= 3 | True | | >= | 以上 | 3 >= 4 | False |

注意: == は等しいかどうかの比較演算子です。= は代入演算子です。混同しないようにしましょう。

不等式の連鎖

Pythonでは不等式を連鎖させることができます。

python
x = 51 < x < 10    # True(1 < x かつ x < 10)1 < x < 5     # False(x < 5 が False)

論理演算子

複数の条件を組み合わせるために論理演算子を使います。

python
True and True    # True(両方 True のとき True)True and False   # FalseFalse and True   # FalseFalse and False  # FalseTrue or True     # True(どちらか一方でも True なら True)True or False    # TrueFalse or True    # TrueFalse or False   # Falsenot True         # False(真理値を反転)not False        # True

論理演算子のまとめ

| 演算子 | 意味 | 結果が True になる条件 | |:---:|:---:|:---:| | and | かつ | 両方が True | | or | または | 少なくとも一方が True | | not | でない | オペランドが False |

論理演算のイメージand(かつ)ABT両方TrueのときだけTrue and True → Trueor(または)ABTどちらかTrueTrue or False → Truenot(反転)TrueFalseFalseTrue真偽を反転

if文による条件分岐

if 文を使うと、条件が真のときだけ処理を実行できます。

python
x = 10if x > 5:    print("xは5より大きいです")  # 実行される

if の後ろに条件式を書き、その後ろにコロン : を書きます。条件が True のときに実行されるコードブロックはインデント(字下げ)して書きます。

if文の処理フローコード実行開始x > 5 ?条件判定Trueprint()実行するFalseスキップ次の処理へ
python
def is_positive(x):    if x > 0:        return True    return Falseis_positive(5)    # Trueis_positive(-3)   # False

様々な条件

偶数・奇数の判定

剰余演算子 % を使って偶数・奇数を判定できます。

python
def is_even(n):    return n % 2 == 0is_even(4)   # Trueis_even(7)   # False

範囲内かどうかの判定

python
def in_range(x, low, high):    return low <= x <= highin_range(5, 1, 10)    # Truein_range(15, 1, 10)   # False

複合条件

論理演算子を組み合わせた複合条件の例です。

python
def is_valid_age(age):    return 0 <= age <= 150def is_teenager(age):    return 13 <= age <= 19is_valid_age(25)     # Trueis_valid_age(-1)     # Falseis_teenager(16)      # Trueis_teenager(30)      # False

真理値を返す関数

条件を関数として定義しておくと、再利用しやすくなります。

python
def is_leap_year(year):    """うるう年かどうかを返す"""    # 400の倍数はうるう年    if year % 400 == 0:        return True    # 100の倍数はうるう年でない    if year % 100 == 0:        return False    # 4の倍数はうるう年    if year % 4 == 0:        return True    return Falseis_leap_year(2000)   # Trueis_leap_year(1900)   # Falseis_leap_year(2024)   # Trueis_leap_year(2023)   # False

練習: is_divisible

基礎

整数 n が整数 d で割り切れるかどうかを返す関数 is_divisible(n, d) を定義してください。

練習: absolute_value

基礎

abs() 関数を使わずに、絶対値を返す関数 absolute_value(x) を定義してください。

練習: bmi_category

標準

BMIの値を受け取り、体型カテゴリを返す関数 bmi_category(bmi) を定義してください。

  • BMI < 18.5: 「低体重」
  • 18.5 ≤ BMI < 25.0: 「普通体重」
  • 25.0 ≤ BMI < 30.0: 「過体重」
  • BMI ≥ 30.0: 「肥満」