こんにちは、かつコーチです。
Pythonでプログラムを組んでいくと、必ず登場するのが演算子です。
「/と//の違いが分からない」
「**って何の記号?」
そんな初心者がつまずきやすいポイントを中心に、算術演算子・比較演算子・論理演算子をまとめて解説します。
算術演算子の基本
四則演算
Pythonの算術演算子は、他の言語とほぼ同じです。
a = 10
b = 3
print(a + b)
print(a - b)
print(a * b)
print(a / b)
13
7
30
3.3333333333333335
/は常にfloat型(小数)で結果を返す点に注意してください。
切り捨て除算(//)
//は、割り算の結果を切り捨てて整数にする切り捨て除算の演算子です。
a = 10
b = 3
print(a // b)
3
10÷3は3.33…ですが、//を使うと小数部分を切り捨てた「3」だけが返ります。
在庫を人数で均等に分けるときなど、割り切れない余りを無視したい場面でよく使います。
累乗(**)
**は、累乗(べき乗)を計算する演算子です。
a = 2
b = 10
print(a ** b)
1024
2の10乗は1024になります。
平方根を求めたいときは、** 0.5のように指数を小数にすることでも計算できます。
number = 16
print(number ** 0.5)
4.0
剰余(%)
%は、割り算の余りを求める演算子です。
a = 10
b = 3
print(a % b)
1
偶数・奇数の判定などでよく使われます。
比較演算子の基本
比較演算子は、2つの値を比べてTrueかFalseを返す演算子です。
| 演算子 | 意味 |
|---|---|
== | 等しい |
!= | 等しくない |
> | より大きい |
< | より小さい |
>= | 以上 |
<= | 以下 |
a = 10
b = 3
print(a == b)
print(a != b)
print(a > b)
print(a <= b)
False
True
True
False
論理演算子の基本
and・or・not
論理演算子は、複数の条件を組み合わせて判定するための演算子です。
age = 20
has_ticket = True
# 20歳以上、かつチケットを持っている
print(age >= 18 and has_ticket)
# 未成年、またはチケットを持っていない
print(age < 18 or not has_ticket)
True
False
and:両方ともTrueのときだけTrueor:どちらか一方でもTrueならTruenot:TrueとFalseを反転させる
論理演算子は、次の記事で扱うif文の条件式でも頻繁に使うため、ここでしっかり慣れておきましょう。
よくあるつまずきポイント・エラー対処
/と//を混同して意図しない結果になる
これは筆者が業務スクリプトを書いていて、実際にやらかしたミスです。
「合計金額をチェックしてグループ分けする」処理で、/を使うべきところを//で書いてしまい、結果がすべてずれるというバグを起こしました。
❌ Before(意図と違う結果になる書き方)
total_price = 1000
people = 3
# 一人あたりの金額を計算したいのに、切り捨て除算を使ってしまった
price_per_person = total_price // people
print(price_per_person)
333
一人あたりの正確な金額(333.33…円)が必要な場面で、切り捨てられた「333」しか得られず、合計金額が合わなくなってしまいました。
✅ After(正しい書き方)
total_price = 1000
people = 3
price_per_person = total_price / people
print(f"{price_per_person:.2f}円")
333.33円
「端数を切り捨てて整数で扱いたいのか」「正確な小数値が欲しいのか」を、コードを書く前に明確にしておくことが大切だと痛感しました。
まとめ
この記事のポイント
/は常にfloatを返し、//は切り捨てて整数を返す**は累乗、%は余りを求める演算子- 比較演算子は
True/Falseを返す - 論理演算子(and/or/not)は複数条件の組み合わせに使う
/と//の使い分けを誤ると計算結果がずれるので注意する
次に読むべき記事
- 変数とデータ型の基本
- if文・elif・elseで条件分岐
- for文・while文で繰り返し処理
タグ: Python, 初心者向け, 基本文法