[Pythonのはじめ方] Part4: 演算子と型変換

Python

計算したり、データの種類を変えたりしてみよう!

こんにちは!👋 このレッスンでは、Pythonで計算を行うための「演算子」と、データの種類を変換する「型変換」について学びます。これらはプログラミングの基本的な要素で、とても重要です。

Pythonの主な演算子 🧮

演算子は、足し算や引き算、比較など、様々な計算や操作を行うための記号です。Pythonにはたくさんの演算子がありますが、まずは基本的なものから見ていきましょう。

算術演算子

数値計算に使われる演算子です。小学校で習った算数と同じものも多いですね!

演算子 名前 説明 例 (a=10, b=3) 結果
+ 加算 2つの値を足します。 a + b 13
- 減算 左の値から右の値を引きます。 a - b 7
* 乗算 2つの値を掛けます。 a * b 30
/ 除算 左の値を右の値で割ります。(結果は常に浮動小数点数 float) a / b 3.333...
// 切り捨て除算 左の値を右の値で割り、小数点以下を切り捨てます。 a // b 3
% 剰余 左の値を右の値で割った余りを求めます。 a % b 1
** べき乗 左の値を右の値で累乗します。 a ** b 1000

コードで見てみましょう。

a = 10
b = 3

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(f"a ** b = {a ** b}") # べき乗

比較演算子

2つの値を比較し、その結果を True (真) または False (偽) のブール値 (bool型) で返します。条件分岐 (if文) などでよく使われます。

x = 5
y = 10
z = 5

print(f"x == y: {x == y}")  # xとyは等しいか? (False)
print(f"x != y: {x != y}")  # xとyは等しくないか? (True)
print(f"x < y: {x < y}")   # xはyより小さいか? (True)
print(f"x > y: {x > y}")   # xはyより大きいか? (False)
print(f"x <= z: {x <= z}") # xはz以下か? (True)
print(f"x >= z: {x >= z}") # xはz以上か? (True)

論理演算子

複数の条件を組み合わせる時に使います。TrueFalse のブール値に対して使われることが多いです。

  • and: 両方の条件が True の場合に True を返します。
  • or: どちらか一方の条件が True の場合に True を返します。
  • not: 条件の True / False を反転させます。
has_key = True
is_open = False

print(f"鍵を持っていて、ドアが開いているか?: {has_key and is_open}") # False
print(f"鍵を持っているか、ドアが開いているか?: {has_key or is_open}")  # True
print(f"ドアが開いていないか?: {not is_open}")                 # True

代入演算子

変数に値を代入するための演算子です。= が基本ですが、計算と代入を同時に行う便利な演算子もあります。

count = 0
count = count + 1  # countに1を加える
print(f"Count: {count}") # 1

# 上と同じ意味の短縮形 (複合代入演算子)
count += 1 # count = count + 1 と同じ
print(f"Count: {count}") # 2

total = 100
total -= 10 # total = total - 10 と同じ (totalは90になる)
print(f"Total: {total}")

price = 500
price *= 1.1 # price = price * 1.1 と同じ (priceは550.0になる)
print(f"Price (tax included): {price}")

# 他にも /=, %=, //=, **= があります。

型変換(キャスト)の基本 🔄

Pythonでは、データには型 (整数 int、浮動小数点数 float、文字列 str など) があります。時には、ある型のデータを別の型に変換する必要が出てきます。これを型変換またはキャストと呼びます。

例えば、ユーザーに入力してもらった数字(これは文字列として受け取られます)を計算に使いたい場合、文字列型 (str) から数値型 (intfloat) に変換する必要があります。

主な型変換関数

  • int(値): 値を整数 (int) に変換します。小数点以下は切り捨てられます。文字列は数字のみで構成されている必要があります。
  • float(値): 値を浮動小数点数 (float) に変換します。文字列は数字(小数点を含む)で構成されている必要があります。
  • str(値): 値を文字列 (str) に変換します。どんな型のデータでも文字列にできます。
  • bool(値): 値をブール値 (bool) に変換します。0, 0.0, 空文字列 "", None, 空のリスト [] などは False に、それ以外は True になります。

コードで確認しましょう。

# 文字列を数値に変換
num_str = "100"
num_int = int(num_str)
print(f"文字列 '{num_str}' ({type(num_str)}) を整数 {num_int} ({type(num_int)}) に変換")

float_str = "3.14"
num_float = float(float_str)
print(f"文字列 '{float_str}' ({type(float_str)}) を浮動小数点数 {num_float} ({type(num_float)}) に変換")

# int() は小数点以下を切り捨てる
pi = 3.14159
int_pi = int(pi)
print(f"浮動小数点数 {pi} ({type(pi)}) を整数 {int_pi} ({type(int_pi)}) に変換")

# 数値を文字列に変換
age = 25
age_str = str(age)
print(f"整数 {age} ({type(age)}) を文字列 '{age_str}' ({type(age_str)}) に変換")

# 様々な値をブール値に変換
print(f"bool(10): {bool(10)}")     # True
print(f"bool(-1): {bool(-1)}")     # True
print(f"bool(0): {bool(0)}")       # False
print(f"bool('hello'): {bool('hello')}") # True
print(f"bool(''): {bool('')}")       # False (空文字列)
print(f"bool(None): {bool(None)}")   # False

注意点: 変換できない値を指定するとエラー (ValueError) が発生します。

# 例: 数字以外の文字を含む文字列をint()に渡す
invalid_str = "hello"
# int(invalid_str) # これは ValueError になります!

演算子と型変換を組み合わせる ✨

演算子を使う際、型が異なると予期せぬエラー (TypeError) が発生することがあります。特に、文字列と数値を直接 + 演算子で結合しようとするとエラーになります。

message = "あなたの年齢は: "
age = 20

# print(message + age) # これは TypeError になります!文字列と整数は直接結合できない

このような場合、型変換を使って型を揃える必要があります。数値を文字列に変換して結合しましょう。

message = "あなたの年齢は: "
age = 20

# str() を使って整数 age を文字列に変換する
print(message + str(age)) # 出力: あなたの年齢は: 20

ユーザー入力と型変換

input() 関数を使ってユーザーからの入力を受け取る場合、入力された内容は常に文字列 (str) 型になります。もし入力された数値を計算に使いたい場合は、必ず int()float() で数値型に変換する必要があります。

# ユーザーに年齢を入力してもらう
input_age_str = input("あなたの年齢を入力してください: ")
print(f"入力された内容: {input_age_str}, 型: {type(input_age_str)}") # 型は str

# 10年後の年齢を計算したい場合...
# next_age = input_age_str + 10 # これは TypeError になる!

# int() で整数に変換してから計算する
age_int = int(input_age_str)
next_age = age_int + 10
print(f"10年後のあなたは {next_age} 歳です!")

まとめ 🎉

今回は、Pythonでの計算に不可欠な「演算子」と、データの種類を柔軟に扱うための「型変換」について学びました。

  • 算術演算子で足し算や割り算などの計算ができる。
  • 比較演算子で値を比べ、TrueFalseを得られる。
  • 論理演算子で条件を組み合わせられる。
  • 代入演算子で変数に値を効率的に代入できる。
  • 型変換関数 (int(), float(), str(), bool()) でデータの型を変えられる。
  • 異なる型のデータを演算する際や、input()の結果を計算に使う際には、適切な型変換が必要。

これらの知識は、これから条件分岐 (if文) や繰り返し処理 (for, while文) を学ぶ上で非常に重要になります。しっかり復習しておきましょう!💪

コメント

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