Python環境を起動中... 初回のみ数秒かかります
Lesson 3 / 20

演算子と計算

このレッスンで学ぶこと

  • + - * / // % ** で算術計算ができる
  • == != < > などの比較演算子で True/False を得られる
  • and or not で複数の条件を組み合わせられる
  • += などの代入演算子で変数を更新できる

1. 算術演算子

算術演算子は数値を使った計算に使います。 Pythonには基本的な四則演算に加え、整数除算・余り・べき乗も1つの記号で書けます。

演算子意味結果
+加算10 + 313
-減算10 - 37
*乗算10 * 330
/除算(小数)10 / 33.333...
//整数除算(切り捨て)10 // 33
%余り(モジュロ)10 % 31
**べき乗2 ** 8256
sample_1.py
Ctrl+Enter
出力

💡 ポイント: / は常に小数(float)を返します。整数同士でも 10 / 25.0 です。 整数の答えが欲しいときは // を使いましょう。

💡 print(),(カンマ)は型が違っても使えます:
レッスン2では "文字" + 数値TypeError になると学びました。 しかし print() にカンマで渡すと、Pythonが自動で各値を文字列に変換してスペース区切りで表示してくれます。

bmi = 22.14
print("BMI:", bmi)        # ✅ → BMI: 22.14(カンマ区切りはOK)
print("BMI: " + bmi)      # ❌ → TypeError(+ での連結はNG)
print("BMI: " + str(bmi)) # ✅ → BMI: 22.14(str() で変換すればOK)

💡 演算子の優先順位(数学と同じルール):
複数の演算子が混在するとき、Pythonは「どの順番で計算するか」を決まったルールで処理します。 基本は数学と同じく 「べき乗 → 乗除 → 加減」 の順です。

優先度(高い順) 演算子 計算結果
1(最高)**(べき乗)2 + 3 ** 211(3²=9 を先に計算)
2* / // %(乗除)2 + 3 * 414(3×4=12 を先に計算)
3(最低)+ -(加減)(2 + 3) * 420(() で先に計算)
# BMI計算: weight / height ** 2
# → height ** 2 が先に計算される(**の優先順位が高い)
# → その後 / で割る
bmi = weight / height ** 2     # ✅ 正しい(height を2乗してから割る)
bmi = weight / (height ** 2)   # 同じ意味(() で明示するとより読みやすい)
bmi = (weight / height) ** 2   # ❌ 意味が変わる!(割ってからべき乗)

迷ったときは () で明示的にグループ化するのが最も安全です。

2. 比較演算子

比較演算子は2つの値を比べ、結果を True(真)または False(偽)で返します。 次のレッスン「条件分岐」で if 文と組み合わせて使います。 AIモデルの精度評価(予測値 == 正解か?)でも毎回登場します。

sample_2.py
Ctrl+Enter
出力

=== の違いに注意:
=(1つ)は代入演算子で、変数に値をセットするときに使います。
==(2つ)は等値比較演算子で、左右が等しいか確認し True/False を返します。
次回学ぶ条件式では必ず == を使いましょう。

3. 論理演算子

論理演算子を使うと、複数の条件を組み合わせられます。 and(両方真)・or(どちらか真)・not(反転)の3つです。 機械学習では「精度が高く、かつ再現率も高い」といった複合条件の評価でよく使います。

sample_3.py
Ctrl+Enter
出力

4. 代入演算子

+=-= は変数の値を更新する省略形です。 たとえば epoch += 1epoch = epoch + 1 とまったく同じ意味で、右辺を省略して短く書けるようにしたものです。 ループの中でカウントや累積を行うときに多用します。 後で学ぶ機械学習のコードでも毎回登場するパターンです。

🤖 次のコードに出てくるAI用語について:
コード例では機械学習に関する用語が登場しますが、今の段階で意味を完全に理解する必要はありません。

  • epoch(エポック):AIが全データを学習する1回分の繰り返しを指します
  • loss(損失):AIの予測がどれくらい外れているかを表す数値(小さいほど良い)

ここでは「+= を使うと変数の値が毎回積み上がっていく」という動きの流れだけを確認しましょう。用語の詳細はAIコースで改めて学びます。

sample_4.py
Ctrl+Enter
出力

5. 練習問題

問題 1

BMIを計算しよう

体重 weight = 58.0(kg)・身長 height = 1.65(m)からBMIを計算し、表示してください。BMI = 体重 ÷ 身長²

exercise_1.py
出力
ヒントを見る(答え+解説)
weight = 58.0   # kg
height = 1.65   # m

# BMIを計算してprintしてください
bmi = weight / height ** 2
print(bmi)           # 21.30...
print(f"BMI: {bmi:.2f}")  # BMI: 21.30

** がべき乗演算子です。height ** 2height * height と同じ。/ の結果は必ず小数(float)になります。

問題 2

複合条件で判定しよう

年齢 age = 55、喫煙歴 is_smoker = True の患者について、「40歳以上 かつ 喫煙者」かどうかを論理演算子で判定し、結果を表示してください。

exercise_2.py
出力
ヒントを見る(答え+解説)
age = 55
is_smoker = True

# 「40歳以上 かつ 喫煙者」かどうかを and で判定して表示してください
high_risk = (age >= 40) and is_smoker
print(high_risk)   # True
print(f"ハイリスク: {high_risk}")

and は左右両方が True のときだけ True になります。比較演算子の結果を and/or でつなぐことで複数条件を一度に評価できます。

問題 3

奇数・偶数を判定しよう

患者ID patient_id = 47 が奇数かどうかを %(余り)を使って判定してください。余りが 0 なら偶数、1 なら奇数です。

exercise_3.py
出力
ヒントを見る(答え+解説)
patient_id = 47

# % 2 の結果を表示して、奇数かどうか確認してください
remainder = patient_id % 2
print(remainder)            # 1
print(remainder == 1)       # True(奇数)
print(remainder == 0)       # False(偶数ではない)

% は割り算の余りを返します。% 2 の結果が 0 なら偶数、1 なら奇数です。データの均等分割やバッチ処理でも頻繁に使います。

6. まとめ

このレッスンのポイント

  • ** はべき乗(2乗・3乗)。BMIや正規化計算で頻出
  • // は切り捨て除算、% は余り。バッチ分割やデータ均等化でも使う
  • 比較演算子は True/False を返す。次の「条件分岐」の基礎
  • and/or/not で複雑な条件を表現できる
  • += などの代入演算子は学習ループのカウント更新で多用する

自由に計算を試してみましょう。

free_practice.py
出力

完了するとコース一覧に進捗が記録されます