【Python】第2章第3回:複雑な条件式と論理演算子の応用
Pythonでは、複雑な条件式を構築するために論理演算子を活用できます。本記事では、条件式の作成方法と論理演算子の応用例を詳しく解説します。
0. 記事の概要
この記事を読むメリット
- 複雑な条件式の作成スキルを習得:複数の条件を効率的に組み合わせる方法がわかります。
- エラーを回避:論理演算子を適切に使い、バグのない条件式を構築できます。
- 実践力を向上:実用的なプログラム作成のコツを学べます。
この記事で学べること
- 複雑な条件式の構築方法
- 論理演算子(and、or、not)の応用例
- 条件式を用いた実践的なプログラムの作成
1. 複雑な条件式の構築
1.1 複数条件の組み合わせ
Pythonでは、and
やor
を使用して複数の条件を組み合わせることができます。
# andを使用した複数条件
age = 25
is_student = True
if age > 18 and is_student:
print("成人学生です。")
動作解説
and
: 両方の条件がTrue
の場合に実行されます。- 例では、
age > 18
とis_student
がTrue
の場合にメッセージが表示されます。
1.2 ネストされた条件式
条件式を入れ子にすることで、より複雑な評価を行うことができます。
# ネストされた条件式
x = 10
if x > 0:
if x % 2 == 0:
print("正の偶数です。")
動作解説
- 最初の条件で
x > 0
が評価されます。 - 条件が
True
の場合、次の条件x % 2 == 0
が評価されます。
2. 論理演算子の活用
2.1 論理演算子の基本
Pythonの主な論理演算子は以下の通りです。
and
: すべての条件がTrue
である場合にTrue
を返します。or
: 少なくとも1つの条件がTrue
である場合にTrue
を返します。not
: 条件を反転させます。
# 論理演算子の例
a = True
b = False
print(a and b) # 出力: False
print(a or b) # 出力: True
print(not a) # 出力: False
動作解説
and
: 両方がTrue
でなければなりません。or
: 少なくとも1つがTrue
であれば成立します。not
: 真を偽に、偽を真に変換します。
2.2 条件式の短絡評価
論理演算子は短絡評価(ショートサーキット)を行います。条件が確定した時点で評価を終了します。
# 短絡評価の例
x = 5
y = 0
if y != 0 and x / y > 1:
print("条件成立")
else:
print("条件不成立")
動作解説
y != 0
がFalse
のため、x / y
は評価されません。- 短絡評価により、不要な計算を省略できます。
3. 実践例:複雑な条件式を活用したプログラム
年齢と学生かどうかの入力に応じて適切なメッセージを表示するプログラムを作成します。
# 実践例: 条件式を使用したメッセージ表示
age = int(input("年齢を入力してください: "))
is_student = input("学生ですか? (yes/no): ") == "yes"
if age < 18:
print("未成年です。")
elif age >= 18 and is_student:
print("成人学生です。")
else:
print("成人です。")
動作解説
- 年齢と学生ステータスの入力を受け取ります。
- 入力値に基づいて条件式を評価し、メッセージを表示します。
4. 練習問題
以下の課題に挑戦してみましょう。
- 数値を入力させ、その値が0以上で偶数なら「正の偶数」と表示するプログラムを作成してください。
- 2つの文字列を入力させ、どちらかが空文字列でなければ「有効な文字列」と表示するプログラムを作成してください。
5. 練習問題の解答と解説
問1の解答例
# 0以上で偶数を判定
number = int(input("数値を入力してください: "))
if number >= 0 and number % 2 == 0:
print("正の偶数です。")
else:
print("条件を満たしません。")
問2の解答例
# 空文字列の判定
str1 = input("文字列1を入力してください: ")
str2 = input("文字列2を入力してください: ")
if str1 or str2:
print("有効な文字列です。")
else:
print("両方とも空文字列です。")
6. まとめ
Pythonの論理演算子を活用することで、効率的かつ柔軟な条件式を構築できます。これを基に、さらに実践的なプログラムを作成してみてください。