共テ情報I – 最小限のPython入門
§2. 条件分岐
解説動画
【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'>
※ 数値をブール型に変換する場合, 0
は False
になり,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の場合に実行するコード
※ elif
や else
は必要に応じて省略でき, 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("条件が偽のときの処理")
◆ 演習問題
作成中