Python の意思決定用演算子

PythonBeginner
オンラインで実践に進む

はじめに

このラボでは、Python のさまざまな種類の演算子の使用方法を練習します。具体的には、比較演算子、論理演算子、および混合演算子を扱います。このラボを終える頃には、これらの演算子を使用して Python コード内で意思決定や計算を行えるようになります。

学習目標

  • Python の比較演算子
  • Python の論理演算子
  • Python の混合演算子

比較演算子

このステップでは、Python で比較演算子を使用する方法を学びます。比較演算子を使用すると、2 つの値を比較して、それらが等しいか、大きいか、小さいかを判断できます。 まず、ターミナルを開き、Python インタープリタを起動します。

python3

次に、以下の比較演算子を試してみましょう。

## 等しい
print(1 == 1)  ## True
print(1 == 2)  ## False

## 等しくない
print(1 != 1)  ## False
print(1 != 2)  ## True

## より大きい
print(1 > 2)  ## False
print(2 > 1)  ## True

## より小さい
print(1 < 2)  ## True
print(2 < 1)  ## False

## 以上(より大きいか等しい)
print(1 >= 2)  ## False
print(2 >= 1)  ## True
print(1 >= 1)  ## True

## 以下(より小さいか等しい)
print(1 <= 2)  ## True
print(2 <= 1)  ## False
print(1 <= 1)  ## True

比較演算子を使用して、整数、浮動小数点数、文字列を比較できます。例:

print(1.0 == 1)  ## True
print(1.5 > 1)  ## True
print("a" < "b")  ## True

Python で比較演算子を使用してさまざまな値を比較してみてください。どの値が等しいか、大きいか、小さいかを判断できますか?

論理演算子

このステップでは、Python で論理演算子を使用する方法を学びます。論理演算子を使用すると、andornotを使用して複数の比較を組み合わせることができます。 まず、以下の論理演算子を試してみましょう。

## 論理積 (and)
print(True and True)  ## True
print(True and False)  ## False
print(False and True)  ## False
print(False and False)  ## False

## 論理和 (or)
print(True or True)  ## True
print(True or False)  ## True
print(False or True)  ## True
print(False or False)  ## False

## 否定 (not)
print(not True)  ## False
print(not False)  ## True

論理演算子を使用して複数の比較を組み合わせ、より複雑な条件を作成できます。例:

## x が y より大きく、かつ z が y より小さいかを確認
x = 5
y = 10
z = 15
print(x > y and z < y)  ## False

## x が y より大きいか、または z が y より小さいかを確認
print(x > y or z < y)  ## False

## x が y と等しくないかを確認
print(x != y)  ## True

Python で論理演算子を使用して複数の比較を組み合わせてみてください。True または False と評価される複雑な条件を作成できますか?

混合演算子

このステップでは、Python で混合演算子を使用する方法を学びます。混合演算子を使用すると、比較演算子と論理演算子を組み合わせて、さらに複雑な条件を作成できます。 まず、以下の混合演算子の例を試してみましょう。

## x が y より大きく、かつ z 以下であるかを確認
x = 5
y = 10
z = 15
print(y < x <= z)  ## False

## x が y より大きくなく、かつ z 以下でもないかを確認
print(not (y < x <= z))  ## True

混合演算子を使用すると、一見すると理解しにくい条件を作成できます。演算の順序を明確に示すために、括弧を使用することが重要です。

## x が y より大きく、かつ (z が y より小さいか、または z が x と等しい) かを確認
x = 5
y = 10
z = 15
print(x > y and (z < y or z == x))  ## False

Python で混合演算子を使用して複雑な条件を作成してみてください。比較演算子と論理演算子を組み合わせて、意図したロジックを正確に反映する条件を作成できますか?

セイウチ演算子

セイウチ演算子 := は、Python 3.8 で導入された新しい機能で、式の中で変数に値を代入できます。この演算子は代入演算子 = と同じ構文を使用しますが、式の左側に現れます。

セイウチ演算子の使用方法を示すコード例をいくつか紹介します。

例 1

## セイウチ演算子を使用してリスト内の最初の偶数を見つける
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers:
    if (even := num % 2 == 0):
        print(f"最初の偶数は:{even}")
        break

## 出力:
## 最初の偶数は:True

この例は、セイウチ演算子を使用してリスト内の最初の偶数を見つける方法を示しています。リスト numbers には 1 から 10 までの整数が含まれています。for ループ内で numbers リストを反復処理し、セイウチ演算子 := を使用して式 num % 2 == 0 の結果を変数 even に代入しています。evenTrue の場合、num が偶数であることを意味します。この場合、if 文が満たされ、最初の偶数とともにメッセージが表示されます。break 文は、最初の偶数が見つかったときにループを停止するために使用されます。

例 2

## while ループでセイウチ演算子を使用する
counter = 0
while (counter := counter + 1) <= 10:
    print(counter)

## 出力:
## 1
## 2
## ……
## 10

この例では、while ループでセイウチ演算子を使用しています。変数 counter は 0 に初期化され、counter が 10 以下である限り while ループが実行され続けます。ループの各反復で、セイウチ演算子を使用して counter の値を 1 ずつ増やして更新します。更新された counter の値は、ループの次の反復で使用されます。ループは各反復で counter の値を出力し、結果として 1 から 10 までの数字が表示されます。

例 3

## リスト内包表記でセイウチ演算子を使用する
squared_numbers = [num * num for num in range(10) if (even := num % 2 == 0)]
print(squared_numbers)

## 出力:
## [0, 4, 16, 36, 64]

この例では、リスト内包表記でセイウチ演算子を使用しています。リスト内包表記は、0 から 9 までの偶数の二乗のリストを作成するために使用されます。リスト内包表記は、式 num * num と条件句 if (even := num % 2 == 0) の 2 つの部分で構成されています。式 num * num はループ内の現在の数値 num の二乗を計算します。条件句はセイウチ演算子を使用して、式 num % 2 == 0 の結果を変数 even に代入します。evenTrue の場合、num が偶数であることを意味し、その二乗がリスト squared_numbers に含まれます。リスト内包表記はリスト [0, 4, 16, 36, 64] を生成します。

セイウチ演算子は、式の中で値を代入し、その同じ値を複数回使用する必要がある特定のケースで使用することを目的としていることに注意してください。従来の代入文を置き換えるためのものではなく、コードの可読性を向上させるために控えめに使用することをお勧めします。

まとめ

このラボでは、Python での比較演算子、論理演算子、および混合演算子の使用方法を学びました。これらの演算子を使用して、コード内で意思決定や計算を行うことができます。これらの演算子を練習して、習熟度を高めてください。