基礎から学ぶPython入門 90日コース | Python基礎 - Day 3:演算子

Python 90日で身につけるPython
スポンサーリンク
スポンサーリンク

Day 3:演算子 ― 「値を計算し、比較し、組み合わせて“意味のある判断”ができるようになる」

Day 3では、「演算子」を扱います。 演算子は、値同士を計算したり、比較したり、組み合わせたりするための記号です。 足し算・引き算・掛け算・割り算といった算数的なものから、比較演算子・論理演算子といった「条件を作るための道具」まで、一気に押さえていきます。 ここを理解すると、「この条件ならこうする」「この値なら警告を出す」といった“判断するプログラム”を書けるようになります。

足し算・引き算・掛け算・割り算 ― 「数値を扱うための基本の4つ」

まずは、算数でおなじみの4つの演算子から見ていきます。 Pythonでは、次の記号を使います。

足し算:+ 引き算:- 掛け算:* 割り算:/

具体的なコード例を見てみましょう。

# 基本的な四則演算の例

a = 10   # 変数aに10を入れる
b = 3    # 変数bに3を入れる

# 足し算
sum_result = a + b      # 10 + 3 → 13
print("足し算の結果:", sum_result)

# 引き算
diff_result = a - b     # 10 - 3 → 7
print("引き算の結果:", diff_result)

# 掛け算
mul_result = a * b      # 10 * 3 → 30
print("掛け算の結果:", mul_result)

# 割り算
div_result = a / b      # 10 / 3 → 3.333...(結果は小数になる)
print("割り算の結果:", div_result)
Python

ここで重要なのは、/ の結果が「小数(float)」になることです。 整数同士の割り算でも、Pythonでは小数として扱われます。

割り算にはもう1つ、「整数の割り算」をする // という演算子もあります。

# 整数の割り算(切り捨て)の例

a = 10
b = 3

int_div_result = a // b  # 10 // 3 → 3(小数点以下を切り捨て)
print("整数の割り算の結果:", int_div_result)
Python

// は、「何回入るか」を知りたいときに便利です。 例えば、「1ページに10件表示するとき、30件のデータは何ページになるか」といった計算に使えます。

剰余 ― 「割ったときの余りを求めるための演算子」

剰余(じょうよ)演算子 % は、「割り算をしたときの余り」を求めるための演算子です。 例えば、10 % 3 は「10を3で割ったときの余り」で、結果は 1 になります。

# 剰余演算子の基本

a = 10
b = 3

mod_result = a % b   # 10 % 3 → 1
print("剰余の結果:", mod_result)
Python

剰余は、偶数・奇数の判定などに非常によく使われます。

# 偶数か奇数かを判定する例

number = 7  # 判定したい数

# 2で割った余りが0なら偶数、1なら奇数
if number % 2 == 0:
    print("偶数です")
else:
    print("奇数です")
Python

ここで、number % 2 == 0 という条件は、「2で割った余りが0かどうか」をチェックしています。 余りが0なら「2で割り切れる=偶数」、そうでなければ「奇数」です。

セキュリティの世界でも、剰余は「一定回数ごとに何かをする」「周期的な処理をする」といった場面で使われることがあります。 例えば、「ログイン失敗が5回ごとに警告を出す」といったロジックに応用できます。

累乗 ― 「べき乗(○○の△△乗)を計算するための演算子」

累乗(べき乗)を計算するには、** 演算子を使います。 例えば、2 ** 3 は「2の3乗」で、結果は 8 になります。

# 累乗の基本

base = 2      # 底(もとになる数)
exponent = 3  # 指数(何乗か)

power_result = base ** exponent  # 2 ** 3 → 8
print("累乗の結果:", power_result)
Python

累乗は、数学的な計算だけでなく、暗号やハッシュ、指数的な増加・減少を扱うときにも登場します。 例えば、「パスワードの総当たり攻撃に必要な試行回数」をざっくり見積もるときに、文字種の数と桁数の累乗を使います。

# パスワードの総当たり試行回数をざっくり計算する例

charset_size = 62   # 例: 英小文字26 + 英大文字26 + 数字10
length = 8          # パスワードの長さ

total_patterns = charset_size ** length  # 62の8乗
print("総当たりのパターン数:", total_patterns)
Python

このように、** は「何かが指数的に増える・減る」場面で非常に重要な演算子です。

比較演算子 ― 「値同士を比べて、True / False を得るための記号」

比較演算子は、「2つの値を比べて、その結果を真偽値(True / False)で返す」ための演算子です。 Pythonでは、次の記号があります。

==:等しいかどうか !=:等しくないかどうか >:より大きいか <:より小さいか >=:以上か <=:以下か

具体的な例を見てみます。

# 比較演算子の基本

a = 10
b = 20

print(a == b)   # 10 == 20 → False(等しくない)
print(a != b)   # 10 != 20 → True(等しくないのでTrue)
print(a < b)    # 10 < 20 → True(aはbより小さい)
print(a > b)    # 10 > 20 → False(aはbより大きくない)
print(a <= 10)  # 10 <= 10 → True(10以下)
print(a >= 10)  # 10 >= 10 → True(10以上)
Python

比較演算子の結果は、すべて真偽値(True または False)になります。 この真偽値を、if 文などの条件分岐に使います。

# 年齢に応じてメッセージを変える例

age = 18  # 年齢

if age >= 18:
    print("成人です")
else:
    print("未成年です")
Python

ここで、age >= 18 は「age が 18以上かどうか」を判定しています。 結果が True なら「成人です」、False なら「未成年です」と表示されます。

セキュリティの観点では、「このユーザーはアクセスしてよいか」「この入力は許容範囲か」といった判定を、比較演算子で表現します。 例えば、「パスワードの長さが8文字以上かどうか」をチェックするコードは次のようになります。

# パスワードの長さをチェックする例

password = "abc123"  # 仮のパスワード

if len(password) >= 8:
    print("パスワードの長さはOKです")
else:
    print("パスワードが短すぎます(8文字以上にしてください)")
Python

論理演算子 ― 「条件を組み合わせて、複雑な判断を1つの式で表す」

論理演算子は、「複数の条件を組み合わせて、1つの真偽値にまとめる」ための演算子です。 Pythonでは、次の3つがあります。

and:両方とも True のときだけ True or:どちらか一方でも True なら True not:True を False に、False を True に反転する

まずは andor の例を見てみます。

# 論理演算子 and / or の基本

age = 20
is_student = True

# 20歳以上かつ学生であるか
print(age >= 20 and is_student)  # True and True → True

# 20歳未満か、学生であるか
print(age < 20 or is_student)    # False or True → True
Python

ここで、age >= 20 and is_student は「年齢が20以上で、かつ学生である」という条件です。 両方が True のときだけ、全体が True になります。

一方、age < 20 or is_student は「年齢が20未満、または学生である」という条件です。 どちらか一方でも True なら、全体が True になります。

not は、真偽値を反転させる演算子です。

# not の基本

is_active = True

print(is_active)        # True
print(not is_active)    # False(反転される)
Python

論理演算子は、セキュリティの条件を表現するときに非常に重要です。 例えば、「認証済みで、かつ権限があるユーザーだけが操作できる」という条件は次のように書けます。

# 認証と権限をチェックする例

is_authenticated = True   # 認証済みかどうか
has_permission = False    # 権限があるかどうか

if is_authenticated and has_permission:
    print("操作を許可します")
else:
    print("操作は許可されません")
Python

また、「認証されていないユーザーはログインページにリダイレクトする」といった条件は、not を使って書けます。

# 認証されていないユーザーをチェックする例

is_authenticated = False  # 認証済みかどうか

if not is_authenticated:
    print("ログインページに移動してください")
Python

Day 3のまとめと次へのつながり

Day 3では、

足し算・引き算・掛け算・割り算 剰余(余り) 累乗(べき乗) 比較演算子(==, !=, >, <, >=, <=) 論理演算子(and, or, not)

を学びました。

ここまで理解できると、「値を計算する」「値を比べる」「条件を組み合わせる」という、プログラムの“思考の骨格”がかなり見えてきます。 次のステップでは、これらの演算子を使って「条件分岐(if)」や「繰り返し(for / while)」をより本格的に書いていきます。

Day 3で特に重要なのは、「比較演算子と論理演算子が、True / False を作るための道具だ」という感覚です。 この感覚が身につくと、「この条件は本当に安全か」「このチェックは十分か」といったセキュリティ的な視点も、自然とコードの中に織り込めるようになっていきます。


Day 3:演算子で「簡易電卓」を作る

Day 3では、Pythonの演算子を使って「簡易電卓」を作ることを通して、 足し算・引き算・掛け算・割り算・剰余・累乗、そして比較演算子・論理演算子の意味と使い方を、 実際のコードと一緒に体験していきます。

簡易電卓の全体イメージをつかむ

まず、「簡易電卓でやりたいこと」を整理します。

  • ユーザーから2つの数値を入力してもらう
  • 足し算・引き算・掛け算・割り算・剰余・累乗の結果を表示する
  • 比較演算子で「どちらが大きいか」「等しいか」を判定する
  • 論理演算子で「条件を組み合わせた判定」をしてみる

この流れの中で、各演算子を自然に使っていきます。

四則演算と基本の演算子

足し算(+)

a = 10
b = 3

result_add = a + b  # 足し算
print("足し算:", result_add)  # 13
Python

+ は「足し算」の演算子です。 数値同士を足すだけでなく、文字列同士の連結にも使われますが、ここでは数値に集中します。

引き算(-)

result_sub = a - b  # 引き算
print("引き算:", result_sub)  # 7
Python

- は「引き算」の演算子です。 「差」を求めるときに使います。

掛け算(*)

result_mul = a * b  # 掛け算
print("掛け算:", result_mul)  # 30
Python

* は「掛け算」の演算子です。 九九や面積計算など、あらゆる場面で登場します。

割り算(/)

result_div = a / b  # 割り算(結果は小数になることが多い)
print("割り算:", result_div)  # 3.333...
Python

/ は「割り算」の演算子です。 Pythonでは、整数同士でも結果は小数(浮動小数点数)になります。

剰余(%)と累乗(**)

剰余(%)― 割ったときの「余り」

result_mod = a % b  # 剰余(余り)
print("剰余:", result_mod)  # 1(10を3で割ると3余り1)
Python

% は「剰余(余り)」を求める演算子です。 例えば、「偶数か奇数か」を判定するときに使えます。

number = 7

if number % 2 == 0:
    print("偶数です。")
else:
    print("奇数です。")
Python

ここでは、number % 2 が0なら偶数、1なら奇数という判定になります。

累乗(**)― 「べき乗」を計算する

result_pow = a ** b  # 累乗(10の3乗)
print("累乗:", result_pow)  # 1000
Python

** は「累乗(べき乗)」の演算子です。 a ** b は「aのb乗」を意味します。

例えば、「2の10乗」を計算するにはこう書きます。

print(2 ** 10)  # 1024
Python

累乗は、指数計算や暗号・セキュリティ分野でもよく登場する重要な演算です。

比較演算子で「関係」を判定する

比較演算子は、「2つの値の関係」を判定するための演算子です。 結果は「True(真)」か「False(偽)」のどちらかになります。

代表的な比較演算子は次の通りです。

  • ==:等しい
  • !=:等しくない
  • <:より小さい
  • <=:以下
  • >:より大きい
  • >=:以上
a = 10
b = 3

print(a == b)  # False(10と3は等しくない)
print(a != b)  # True(10と3は等しくない)
print(a > b)   # True(10は3より大きい)
print(a < b)   # False(10は3より小さくない)
print(a >= 10) # True(10は10以上)
print(a <= 5)  # False(10は5以下ではない)
Python

年齢判定やログイン判定など、「条件分岐」と組み合わせて使う場面が非常に多いです。

論理演算子で「条件を組み合わせる」

論理演算子は、「複数の条件を組み合わせる」ための演算子です。

  • and:両方の条件が真のときに真
  • or:どちらか一方でも真なら真
  • not:条件を反転(真→偽、偽→真)

and の例

age = 20
has_ticket = True  # チケットを持っているか

# 年齢が18以上 かつ チケットを持っている場合に入場OK
if age >= 18 and has_ticket:
    print("入場できます。")
else:
    print("入場できません。")
Python

ここでは、「年齢条件」と「チケット条件」の両方が満たされているかどうかを判定しています。

or の例

is_admin = False
is_staff = True

# 管理者 または スタッフなら設定画面にアクセス可能
if is_admin or is_staff:
    print("設定画面にアクセスできます。")
else:
    print("アクセス権限がありません。")
Python

or は、「どちらか一方でも条件を満たしていればOK」という場面で使います。

not の例

is_logged_in = False

if not is_logged_in:
    print("ログインが必要です。")
else:
    print("ログイン済みです。")
Python

not は、「条件が成り立たない場合」を自然な日本語に近い形で表現できるので、 入力チェックやエラーハンドリングでよく使われます。

簡易電卓プログラムの完成版(コメント付き)

最後に、ここまでの演算子をまとめて使った「簡易電卓プログラム」のサンプルコードを示します。 コメントを多めに入れて、初心者の方にも読みやすい形にしています。

# 簡易電卓プログラム

# ユーザーから2つの数値を入力してもらいます
a_text = input("1つ目の数値を入力してください: ")
b_text = input("2つ目の数値を入力してください: ")

# 入力が数字かどうかを簡易チェックします
if not a_text.isdigit() or not b_text.isdigit():
    print("数字のみを入力してください。")
else:
    # 文字列を整数に変換します
    a = int(a_text)
    b = int(b_text)

    print(f"入力された数値: a = {a}, b = {b}")

    # 四則演算
    print(f"足し算: a + b = {a + b}")
    print(f"引き算: a - b = {a - b}")
    print(f"掛け算: a * b = {a * b}")

    # 割り算は0で割らないように注意します
    if b != 0:
        print(f"割り算: a / b = {a / b}")
        print(f"剰余: a % b = {a % b}")
    else:
        print("割り算と剰余は、0で割ることができないため計算できません。")

    # 累乗
    print(f"累乗: a ** b = {a ** b}")

    # 比較演算子の結果を表示します
    print("比較結果:")
    print(f"a == b: {a == b}")
    print(f"a != b: {a != b}")
    print(f"a > b:  {a > b}")
    print(f"a < b:  {a < b}")
    print(f"a >= b: {a >= b}")
    print(f"a <= b: {a <= b}")

    # 論理演算子の例
    print("論理演算子の例:")

    # 例1: aが10以上 かつ bが5以上かどうか
    cond1 = (a >= 10) and (b >= 5)
    print(f"a >= 10 and b >= 5: {cond1}")

    # 例2: aが0未満 または bが0未満かどうか
    cond2 = (a < 0) or (b < 0)
    print(f"a < 0 or b < 0: {cond2}")

    # 例3: aが0ではないかどうか
    cond3 = not (a == 0)
    print(f"not (a == 0): {cond3}")
Python

このプログラムでは、

  • 四則演算(+、-、*、/)
  • 剰余(%)
  • 累乗(**)
  • 比較演算子(==、!=、<、<=、>、>=)
  • 論理演算子(and、or、not)

をすべて1つの「簡易電卓」の中で体験できるようになっています。 また、割り算と剰余の前に「bが0かどうか」をチェックすることで、 「0で割る」という危険な操作を防いでいる点も重要です。

Day 3(制作編)のまとめ

Day 3の制作編では、「簡易電卓」を通して、

  • 足し算・引き算・掛け算・割り算・剰余・累乗の基本的な演算子
  • 比較演算子で「値の関係」を判定する方法
  • 論理演算子で「複数の条件を組み合わせる」考え方
  • 入力チェックや0除算防止など、演算を安全に行うための工夫

を一通り体験していただきました。

ここまで来ると、「演算子はただの記号ではなく、“意味のある計算や判定を表す言語の一部”」として見えてくるはずです。 この感覚を土台に、今後は条件分岐やループ、関数と組み合わせて、 より複雑で現実的なロジックへと自然に進んでいくことができます。

タイトルとURLをコピーしました