【Python入門②】条件分岐

共テ情報I – 最小限のPython入門

解説動画

【MENU】
00:00 要項:データ型の確認とブール型変数
06:40 要項:比較演算子
14:31 要項:論理演算子
20:00 Sample 2-1
35:29 Sample 2-2
46:04 if-else文についての補足
END 52:27

◆ ブール型変数

ブール型は,真偽の状態を表すデータ型である.この型の変数は True (真)と False (偽)の2つの値のみを取る.ブール型は条件分岐やループ処理の制御.論理演算でよく使用される.

my_flag = True
print(my_flag)

is_valid = False
print(type(is_valid))  # <class 'bool'>

※ 数値をブール型に変換する場合, 0False になり,0 以外の数値はすべて True になる.

◆ 比較演算子

比較演算子は2つの値を比較し,結果としてブーリアン値(TrueまたはFalse)を返す.

等しい (==):左辺が右辺と等しければTrueを返す(そうでなければFalseを返す).
等しくない (!=):左辺が右辺と等しくなければTrueを返す.
より大きい (>):左辺が右辺より大きければTrueを返す.
より小さい (<):左辺が右辺より小さければTrueを返す.
以上 (>=):左辺が右辺以上であればTrueを返す.
以下 (<=):左辺が右辺以下であればTrueを返す.

### 2つの値を比較した結果を変数に代入する

a = 5
b = 2

result = (a == b)
print(result)  # 出力:False

result = (a != b)
print(result)  # 出力:True

result = (a > b)
print(result)  # 出力:True

result = (a < b)
print(result)  # 出力:False

result = (a >= b)
print(result)  # 出力:True

result = (a <= b)
print(result)  # 出力:False

◆ 論理演算子

論理演算子は真(True)または偽(False)の論理値を操作し,複数の条件を組み合わせたり,条件の真偽を反転させたりするために使用される.Pythonでよく使われる論理演算子は以下の3つである.

論理積・かつ (and):両方ともTrueである場合にのみTrueを返す.
論理和・または (or):少なくとも一方がTrueであればTrueを返す.両方ともFlaseの場合にのみFalseを返す.
否定 (not):論理値を反転する.

### 色々な論理演算の例

print(True and False)  # 出力: False
print(True and True)   # 出力: True

print(False or True)   # 出力: True
print(False or False)  # 出力: False

print(not True)        # 出力: False
print(not False)       # 出力: True

x = True
y = False
print(x and y)     # 出力:Falase

a = 5
b = 10
print((a < 7) and (b < 7))   # 出力: False
# a < 7 and b < 7 でもよいが括弧をつけることで読みやすくなる

◆ 条件文(if-else文)

if-else文は条件式に基づき,異なるコードブロックを実行するための条件分岐の制御構造である.条件が真(True)の場合,その条件に対応するコードブロックが実行され,偽(False)の場合は次の条件の評価へと進む.

if 条件式1:
# 条件式1がTrueの場合に実行するコード
elif 条件式2:
# 条件式1がFalseで条件式2がTrueの場合に実行するコード
else:
# ここまでの全ての条件がFalseの場合に実行するコード

※ elifelse は必要に応じて省略でき, elif は複数設定できる.
※ 正確なコロンとインデント(半角空白4つ分を推奨)の使用が必要.

### 入力した数字が条件を満たす場合にのみ出力する.

x = float(input("数字を入力してください."))

if x > 7:
    print("7より大きい")
### 入力した数字が条件を満たすかどうかにより異なる出力する.

x = float(input("数字を入力してください."))

if x > 7:
    print("7より大きい")
else:
    print("7以下")
### 気温を入力し,その温度に応じて異なるメッセージを出力する.

kion = float(input("気温は何度ですか?"))

if kion > 25:     # 条件1 
    print("暑い")  # 条件1を満たす場合の処理
elif kion > 15:   # 条件2
    print("快適")  # 条件1を満たさず,条件2を満たす場合の処理
else:
    print("寒い")  # 条件1も条件2も満たさない場合の処理

※ if 文は他の if 文の内部にネスト(入れ子)することも可能.

◆ サンプルコード

Sample 2-1

ユーザ入力の数値に応じて異なるメッセージを表示する.
【学習項目】if-else文の基本

print("私の好きな数を当ててください,")

# ユーザに数値を入力させる.
kazu = int(input("0から9までの数字を1つだけ入力してください:"))

# 入力された数に応じてメッセージを変える.
if kazu == 7:
    print("正解!")
    print("なかなかやるね")
elif (0 <= kazu) and (kazu <= 9):
    print("ハズレ〜")
else:
    print("0から9までの数字って言ったでしょ?!")

Sample 2-2

2次方程式 ax^2 + bx + c = 0 の解の判別.
【学習項目】if-else文のネスト

print("2次方程式の係数を入力してください.")
a = float(input("a="))
b = float(input("b="))
c = float(input("c="))

# 判別式 D = b^2 - 4ac を計算
D = b ** 2 - 4 * a * c
print(D)

# 判別式による解の個数の判別(詳細版)
if a == 0:
    if b == 0:
        print("方程式になっていません.")
    else:
        print("1次方程式なので1つの実数解を持ちます.")
else:
    if D > 0:
        print("異なる2つの実数解が存在します.")
    elif D == 0:
        print("重解が存在します.")
    else:
        print("実数解は存在しません.")

if-else文についての補足

セミコロンやインデントに注意.

flag = True

flag = (not flag)

if flag:
    print("条件が真のときの処理")
else:
    print("条件が偽のときの処理")

◆ 演習問題

作成中

STORE