計算したり、データの種類を変えたりしてみよう!
こんにちは!👋 このレッスンでは、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)
論理演算子
複数の条件を組み合わせる時に使います。True
や False
のブール値に対して使われることが多いです。
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
) から数値型 (int
や float
) に変換する必要があります。
主な型変換関数
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での計算に不可欠な「演算子」と、データの種類を柔軟に扱うための「型変換」について学びました。
- 算術演算子で足し算や割り算などの計算ができる。
- 比較演算子で値を比べ、
True
かFalse
を得られる。 - 論理演算子で条件を組み合わせられる。
- 代入演算子で変数に値を効率的に代入できる。
- 型変換関数 (
int()
,float()
,str()
,bool()
) でデータの型を変えられる。 - 異なる型のデータを演算する際や、
input()
の結果を計算に使う際には、適切な型変換が必要。
これらの知識は、これから条件分岐 (if
文) や繰り返し処理 (for
, while
文) を学ぶ上で非常に重要になります。しっかり復習しておきましょう!💪
コメント