【Python入門シリーズ②】では、データを格納する「変数」と、その性質である「データ型」について学びました。
今回は、それらの変数やデータを使って、足し算や引き算、そして「等しいか?」「より大きいか?」といった比較を行うための道具である「演算子(えんざんし)」をマスターします。
一見すると単純な計算や比較ですが、これらこそが複雑なAIアルゴリズムを構成する最も基本的な部品(ビルディングブロック)です。この回を終えれば、あなたはデータを自在に加工し、プログラムに「判断」させるための基礎を手に入れることになります。
このシリーズの目次
このシリーズでは、プログラミングの基礎から始めて、最終的にはAI・機械学習の初歩までを体験できるような構成になっています。
- 第0回: 開発環境の準備 (VS Codeで始めるPython環境構築)
- 第1回: Pythonの特徴とコードの基礎
- 第2回: 変数と型の扱い
- 第3回: 基本的な演算子と演算 ←今ここ
- 第4回: 条件分岐の仕方
- 第5回: 繰り返し処理でプログラムを自動化する
- 第6回: 関数を作ってコードを整理整頓する
- 第7回: 複数のデータを扱う「リスト」と文字列操作
- 第8回: ライブラリでPythonの能力を拡張する
- 第9回: ファイルの読み込みと書き込み
- 第10回: Matplotlib入門!データをグラフで可視化する
- 第11回: 画像データの仕組みとPillowでの基本操作
- 第12回: 画像処理の基礎(フィルタリングと特徴抽出)
- 第13回: 機械学習実践!AIによる画像分類に挑戦
- 第14回: オープンデータの取得と前処理(データクレンジング)
- 第15回: 実践データ分析!オープンデータから傾向を読み解く
Python演算子 完全ガイド
Pythonの演算子は、役割ごとに7つのカテゴリに分類できます。それぞれについて、その目的と使い方を解説します。
1. 算術演算子 (Arithmetic Operators)
数値データ(int, float)に対して、四則演算などの数学的な計算を行います。
算術演算子は、数学の計算で使う記号とほぼ同じです。int型やfloat型のデータに対して使います。
| 演算子 | 意味 | 使用例 | 結果 |
+ | 足し算 | 5 + 3 | 8 |
- | 引き算 | 5 - 3 | 2 |
* | 掛け算 | 5 * 3 | 15 |
/ | 割り算 | 5 / 3 | 1.666... |
// | 切り捨て除算 | 5 // 3 | 1 |
% | 剰余(あまり) | 5 % 3 | 2 |
** | べき乗 | 5 ** 3 | 125 |
x = 10
y = 3
print(f"x / y = {x / y}") # 3.333...
print(f"x // y = {x // y}") # 3
print(f"x % y = {x % y}") # 1PythonAIの世界ではどう使われるの? 🤖
AIが画像を認識したり、未来を予測したりするとき、その内部では膨大な数の計算が行われています。例えば、AIが家の価格を予測する単純なルールとして「価格 = (広さ * 10) + (築年数 * -5)」のような計算式を学習することがあります。複雑なAIモデルも、突き詰めればこのような単純な計算の巨大な組み合わせなのです。
3. 比較演算子 (Comparison Operators)
2つの値を比較し、その関係が正しいか (True)、間違っているか (False) を返します。
| 演算子 | 意味 | 使用例 | 結果 |
|---|---|---|---|
== | 等しい | 5 == 3 | False |
!= | 等しくない | 5 != 3 | True |
> | 大なり | 5 > 3 | True |
< | 小なり | 5 < 3 | False |
>= | 以上 | 5 >= 5 | True |
<= | 以下 | 3 <= 5 | True |
my_score = 85
pass_score = 80 # 合格点
print(my_score >= pass_score) # TruePythonAIの世界ではどう使われるの? 🤖
AIは常に「判断」をしています。「この画像は猫か?(Yes/No)」「このメールは迷惑メールか?(Yes/No)」。これらの判断は、比較演算子による質問で行われます。例えば、「猫らしさスコア > 0.9」がTrueなら「猫です」と判断する、といった具合です。AIの全ての判断は、このような単純な比較から始まります。
4. 論理演算子 (Logical Operators)
ブール値 (True, False) を組み合わせて、より複雑な条件を作成します。
| 演算子 | 意味 | 使用例 | 結果 |
|---|---|---|---|
and | 論理積 (かつ) | True and False | False |
or | 論理和 (または) | True or False | True |
not | 否定 | not True | False |
score = 95
attendance_rate = 0.7 # 出席率
# スコアが90点以上、かつ、出席率が80%以上か?
is_excellent_student = (score >= 90) and (attendance_rate >= 0.8)
print(is_excellent_student) # FalsePythonAIの世界ではどう使われるの? 🤖
より賢い判断をするには、複数の条件を組み合わせる必要があります。「送信元が不明 and 件名に”当選”という単語が含まれる」場合に「迷惑メールだ」と判断するなど、andやorを使うことで、AIはより人間らしい、 nuanced(ニュアンスのある)な判断ができるようになります。
5. メンバーシップ演算子 (Membership Operators)
ある要素が、リストや文字列などのデータの集まりの中に含まれているかどうかを判定します。
| 演算子 | 意味 | 使用例 | 結果 |
|---|---|---|---|
in | 含まれているか | 3 in [1,2,3] | True |
not in | 含まれていないか | 4 not in [1,2,3] | True |
fruits = ["apple", "banana", "orange"]
my_fruit = "apple"
print(my_fruit in fruits) # TruePythonAIの世界ではどう使われるの? 🤖
チャットボットに話しかけるとき、「てにをは」のような重要でない単語は無視してほしいですよね。AIはあらかじめ「無視する単語リスト」を持っておき、inを使って「この単語は無視リストに in 入っていますか?」と高速にチェックします。これにより、AIは文章の重要な部分にだけ集中できるのです。
6. 同一性演算子 (Identity Operators)
2つの変数が、メモリ上で全く同じモノを指しているかどうかという、少しマニアックなチェックをします。==(値が等しいか)とは意味が異なります。
| 演算子 | 意味 | 使用例 | 結果 |
|---|---|---|---|
is | 同じオブジェクトか | a is b | 参照が同じなら True |
is not | 同じでない | a is not b | 異なる参照なら True |
a = [1, 2, 3]
b = a # bはaと全く同じモノを指す
print(a is b) # TruePythonAIの世界ではどう使われるの? 🤖
プログラミングでは、変数に「まだ何も入っていない」という特別な状態 None を使うことがよくあります。この変数が本当に「何もない」状態かどうかをチェックする際に、お作法として if my_variable is None: という形で使われます。値を比べる==ではなく、モノそのものを比べるisを使うのがプロフェッショナルな書き方です。
7. ビット演算子 (Bitwise Operators)
⚠️これは上級者向けの演算子です。 数値を2進数(0と1)のレベルで直接操作する、非常に低レベルな演算子です。
| 演算子 | 意味 | 使用例 | 結果 |
|---|---|---|---|
& | ビットAND | 5 & 3 → 0101 & 0011 | 1 |
| ` | ` | ビットOR | 5 | 3 |
^ | ビットXOR | 5 ^ 3 | 6 |
~ | ビット反転 | ~5 | -6 |
<< | 左シフト | 5 << 1 | 10 |
>> | 右シフト | 5 >> 1 | 2 |
AIの世界ではどう使われるの? 🤖
自動車の設計をしたり、乗り方を教えたりするAI開発者が、エンジンの中の部品を直接いじることは滅多にありませんよね。それと同じで、ほとんどのAI開発ではこの演算子を直接使うことはありません。知っておくとカッコいいですが、今は「そんな専門的な道具もあるんだな」 くらいに考えておけば大丈夫です。

コメント