Python

【Python】第2章第3回:複雑な条件式と論理演算子の応用

Pythonでは、複雑な条件式を構築するために論理演算子を活用できます。本記事では、条件式の作成方法と論理演算子の応用例を詳しく解説します。

0. 記事の概要

この記事を読むメリット

  • 複雑な条件式の作成スキルを習得:複数の条件を効率的に組み合わせる方法がわかります。
  • エラーを回避:論理演算子を適切に使い、バグのない条件式を構築できます。
  • 実践力を向上:実用的なプログラム作成のコツを学べます。

この記事で学べること

  • 複雑な条件式の構築方法
  • 論理演算子(and、or、not)の応用例
  • 条件式を用いた実践的なプログラムの作成

1. 複雑な条件式の構築

1.1 複数条件の組み合わせ

Pythonでは、andorを使用して複数の条件を組み合わせることができます。

# andを使用した複数条件
age = 25
is_student = True

if age > 18 and is_student:
    print("成人学生です。")
動作解説
  1. and: 両方の条件がTrueの場合に実行されます。
  2. 例では、age > 18is_studentTrueの場合にメッセージが表示されます。

1.2 ネストされた条件式

条件式を入れ子にすることで、より複雑な評価を行うことができます。

# ネストされた条件式
x = 10

if x > 0:
    if x % 2 == 0:
        print("正の偶数です。")
動作解説
  1. 最初の条件でx > 0が評価されます。
  2. 条件が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
動作解説
  1. and: 両方がTrueでなければなりません。
  2. or: 少なくとも1つがTrueであれば成立します。
  3. not: 真を偽に、偽を真に変換します。

2.2 条件式の短絡評価

論理演算子は短絡評価(ショートサーキット)を行います。条件が確定した時点で評価を終了します。

# 短絡評価の例
x = 5
y = 0

if y != 0 and x / y > 1:
    print("条件成立")
else:
    print("条件不成立")
動作解説
  1. y != 0Falseのため、x / yは評価されません。
  2. 短絡評価により、不要な計算を省略できます。

3. 実践例:複雑な条件式を活用したプログラム

年齢と学生かどうかの入力に応じて適切なメッセージを表示するプログラムを作成します。

# 実践例: 条件式を使用したメッセージ表示
age = int(input("年齢を入力してください: "))
is_student = input("学生ですか? (yes/no): ") == "yes"

if age < 18:
    print("未成年です。")
elif age >= 18 and is_student:
    print("成人学生です。")
else:
    print("成人です。")
動作解説
  1. 年齢と学生ステータスの入力を受け取ります。
  2. 入力値に基づいて条件式を評価し、メッセージを表示します。

4. 練習問題

以下の課題に挑戦してみましょう。

  1. 数値を入力させ、その値が0以上で偶数なら「正の偶数」と表示するプログラムを作成してください。
  2. 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の論理演算子を活用することで、効率的かつ柔軟な条件式を構築できます。これを基に、さらに実践的なプログラムを作成してみてください。