数値型 - 整数と小数
目次
このレッスンで学ぶこと
- Pythonの数値型(整数と小数)の違い
- 数値を使った基本的な計算
- 数値型の便利なメソッドと関数
- よくある計算エラーとその対処法
数値型とは
数値型は、数を扱うためのデータ型です。
プログラミングでは、年齢、価格、温度、距離、点数など、あらゆる数値データを扱います。Pythonでは、数値を大きく分けて2つの型で表現します。
Pythonの2つの数値型
Pythonには主に2種類の数値型があります:
| 型 | 名前 | 説明 | 例 |
|---|---|---|---|
| int | 整数型 | 小数点のない整数 | 1, 10, -5, 0 |
| float | 浮動小数点型 | 小数点を含む数値 | 3.14, 0.5, -2.5 |
Python# 整数型(int) age = 25 count = 100 temperature = -5 # 浮動小数点型(float) pi = 3.14 price = 1980.0 rate = 0.5
💡 豆知識: 「float」は「浮動小数点数(Floating Point Number)」の略で、小数点の位置が「浮いて動く」ように表現できることから名付けられました。
なぜ数値型を理解する必要があるのか?
数値型を正しく理解することで、プログラムでの計算を正確かつ効率的に行えます。
数値型を使う場面
- お金の計算: 商品の合計金額、消費税の計算
- 点数の集計: テストの平均点、合計点の計算
- 測定値の処理: 距離、重さ、温度などのデータ
- 統計処理: データの分析、グラフの作成
整数型と浮動小数点型を使い分ける理由
Python# ❌ 人数に小数を使うのは不自然 students = 25.5 # 学生が25.5人? # ✅ 人数には整数を使う students = 25 # ✅ 平均点には小数を使う average = 85.5
適切な数値型を選ぶことで:
- 正確性: 計算結果が期待通りになる
- 効率性: メモリの使用量が最適化される
- 可読性: コードが理解しやすくなる
整数型(int)
整数型の基本
整数は小数点のない数値です。
Pythonage = 25 score = 100 temperature = -5 print(age) # 25 print(score) # 100 print(temperature) # -5
整数の計算
Pythona = 10 b = 3 print(a + b) # 13 足し算 print(a - b) # 7 引き算 print(a * b) # 30 掛け算 print(a / b) # 3.3333... 割り算(結果は小数) print(a // b) # 3 割り算の商(整数) print(a % b) # 1 割り算の余り print(a ** b) # 1000 累乗(10の3乗)
ポイント:
/は通常の割り算(結果は小数)//は割り算の商(小数点以下切り捨て)%は割り算の余り
浮動小数点型(float)
小数の基本
小数点を含む数値です。
Pythonpi = 3.14 temperature = 36.5 price = 1500.0 print(pi) # 3.14 print(temperature) # 36.5 print(price) # 1500.0
小数の計算
Pythona = 10.5 b = 2.5 print(a + b) # 13.0 print(a - b) # 8.0 print(a * b) # 26.25 print(a / b) # 4.2
具体例
例1: 消費税の計算
Pythonprice = 1000 tax_rate = 0.1 # 消費税額 tax = price * tax_rate # 合計金額 total = price + tax print(f"商品価格: {price}円") print(f"消費税: {tax}円") print(f"合計: {total}円")
実行結果:
商品価格: 1000円
消費税: 100.0円
合計: 1100.0円
例2: 平均点の計算
Pythonmath = 80 english = 75 science = 90 # 合計 total = math + english + science # 平均 average = total / 3 print(f"合計: {total}点") print(f"平均: {average}点")
実行結果:
合計: 245点
平均: 81.66666666666667点
例3: 割り算の商と余り
Python# 17個のリンゴを5人で分ける apples = 17 people = 5 # 1人あたりの個数(商) per_person = apples // people # 余りの個数 remainder = apples % people print(f"1人あたり: {per_person}個") print(f"余り: {remainder}個")
実行結果:
1人あたり: 3個
余り: 2個
例4: 累乗の計算
Python# 2の10乗 result = 2 ** 10 print(result) # 1024 # 3の3乗 cube = 3 ** 3 print(cube) # 27
例5: 型の確認
Pythona = 10 b = 10.5 print(type(a)) # <class 'int'> print(type(b)) # <class 'float'>
type() 関数で変数の型を確認できます。
例6: 整数と小数の混在計算
Pythona = 10 # 整数 b = 3.5 # 小数 result = a + b print(result) # 13.5 print(type(result)) # <class 'float'>
整数と小数を計算すると、結果は自動的に小数になります。
便利な関数
abs() - 絶対値
機能: 数値の絶対値(符号を取り除いた値)を返します。
Pythonnum = -10 positive = abs(num) print(positive) # 10 # 正の数はそのまま print(abs(5)) # 5 # 小数も使える print(abs(-3.14)) # 3.14
round() - 四捨五入
機能: 数値を指定した桁数に四捨五入します。
Pythonnum = 3.14159 print(round(num)) # 3(整数に丸める) print(round(num, 2)) # 3.14(小数第2位まで) print(round(num, 3)) # 3.142(小数第3位まで)
書き方: round(数値, 桁数)(桁数を省略すると整数に丸める)
max() / min() - 最大値・最小値
機能: 複数の数値から最大値・最小値を返します。
Pythonnumbers = [10, 5, 8, 15, 3] print(max(numbers)) # 15 print(min(numbers)) # 3 # 直接値を渡すこともできる print(max(10, 5, 8)) # 10 print(min(10, 5, 8)) # 5
使い分け:
- リストの場合:
max(list) - 個別の値:
max(値1, 値2, 値3)
sum() - 合計
機能: リストや タプルの数値の合計を計算します。
Pythonscores = [80, 75, 90, 85] total = sum(scores) print(total) # 330 # 開始値を指定できる total_with_bonus = sum(scores, 10) # 合計に10を加算 print(total_with_bonus) # 340
よくある間違い
間違い1: ゼロ除算
Pythonresult = 10 / 0 # ZeroDivisionError: division by zero
原因: 0で割ることはできません。
対策:
Pythona = 10 b = 0 if b != 0: result = a / b print(result) else: print("0で割ることはできません")
間違い2: 小数の誤差
Pythonresult = 0.1 + 0.2 print(result) # 0.30000000000000004
原因: コンピュータ内部で小数を2進数で扱うため、微小な誤差が生じます。
対策:
Pythonresult = 0.1 + 0.2 print(round(result, 2)) # 0.3
間違い3: 文字列と数値の混同
Pythonnum = "10" result = num + 5 # TypeError: can only concatenate str (not "int") to str
原因: "10" は文字列なので、数値と計算できません。
対策:
Pythonnum = "10" result = int(num) + 5 # 文字列を整数に変換 print(result) # 15
間違い4: 割り算と商の混同
Python# 普通の割り算 print(10 / 3) # 3.3333... # 商(整数部分のみ) print(10 // 3) # 3
用途に応じて / と // を使い分けましょう。
間違い5: 累乗と掛け算の混同
Python# 間違い: 2*3 は掛け算 print(2 * 3) # 6 # 正しい: 2**3 は累乗(2の3乗) print(2 ** 3) # 8
練習問題
問題1(基礎)⭐☆☆
半径が5の円の面積を計算してください。円の面積は「半径 × 半径 × 3.14」で求めます。
💡 ヒント
- 半径を変数に保存
- 半径 × 半径 × 3.14 を計算
- 結果を表示
✅ 解答例
Pythonradius = 5 pi = 3.14 area = radius * radius * pi # または area = radius ** 2 * pi print(f"半径{radius}の円の面積: {area}")
実行結果:
半径5の円の面積: 78.5
解説:
半径の2乗は radius * radius または radius ** 2 で表現できます。** は累乗を表す演算子です。
問題2(基礎)⭐☆☆
27個のクッキーを5人で分けます。1人あたり何個もらえて、何個余るか計算してください。
💡 ヒント
- 商(1人あたり):
//を使う - 余り:
%を使う
✅ 解答例
Pythoncookies = 27 people = 5 per_person = cookies // people # 商 remainder = cookies % people # 余り print(f"1人あたり: {per_person}個") print(f"余り: {remainder}個")
実行結果:
1人あたり: 5個
余り: 2個
解説:
// は割り算の商(整数部分)、% は余りを返します。27 ÷ 5 = 5 余り 2 です。
問題3(応用)⭐⭐☆
3つのテストの点数を入力して、合計点、平均点、最高点、最低点を表示してください。
💡 ヒント
- 合計:
+で足し算 - 平均: 合計 ÷ 3
- 最高点:
max()関数 - 最低点:
min()関数
✅ 解答例
Pythontest1 = 85 test2 = 92 test3 = 78 # 合計 total = test1 + test2 + test3 # 平均 average = total / 3 # 最高点と最低点 highest = max(test1, test2, test3) lowest = min(test1, test2, test3) print(f"合計点: {total}点") print(f"平均点: {round(average, 2)}点") print(f"最高点: {highest}点") print(f"最低点: {lowest}点")
実行結果:
合計点: 255点
平均点: 85.0点
最高点: 92点
最低点: 78点
解説:
max() と min() 関数を使うことで、複数の値から最大値・最小値を簡単に取得できます。平均点は round() で小数第2位まで表示しています。
まとめ
このレッスンでは、数値型と算術演算の基本を学びました。
- Pythonの数値型には、整数の
intと小数のfloatがあります。 +,-,*,/,//,%,**の演算子を用途に応じて使い分けられます。//は商、%は余りを求める演算で、実務でも頻繁に使います。abs(),round(),max(),min(),sum()などの関数で計算処理を効率化できます。- 0除算や小数誤差、型の違いによるエラーに注意して実装することが重要です。
数値型 - 整数と小数
目次
このレッスンで学ぶこと
- Pythonの数値型(整数と小数)の違い
- 数値を使った基本的な計算
- 数値型の便利なメソッドと関数
- よくある計算エラーとその対処法
数値型とは
数値型は、数を扱うためのデータ型です。
プログラミングでは、年齢、価格、温度、距離、点数など、あらゆる数値データを扱います。Pythonでは、数値を大きく分けて2つの型で表現します。
Pythonの2つの数値型
Pythonには主に2種類の数値型があります:
| 型 | 名前 | 説明 | 例 |
|---|---|---|---|
| int | 整数型 | 小数点のない整数 | 1, 10, -5, 0 |
| float | 浮動小数点型 | 小数点を含む数値 | 3.14, 0.5, -2.5 |
Python# 整数型(int) age = 25 count = 100 temperature = -5 # 浮動小数点型(float) pi = 3.14 price = 1980.0 rate = 0.5
💡 豆知識: 「float」は「浮動小数点数(Floating Point Number)」の略で、小数点の位置が「浮いて動く」ように表現できることから名付けられました。
なぜ数値型を理解する必要があるのか?
数値型を正しく理解することで、プログラムでの計算を正確かつ効率的に行えます。
数値型を使う場面
- お金の計算: 商品の合計金額、消費税の計算
- 点数の集計: テストの平均点、合計点の計算
- 測定値の処理: 距離、重さ、温度などのデータ
- 統計処理: データの分析、グラフの作成
整数型と浮動小数点型を使い分ける理由
Python# ❌ 人数に小数を使うのは不自然 students = 25.5 # 学生が25.5人? # ✅ 人数には整数を使う students = 25 # ✅ 平均点には小数を使う average = 85.5
適切な数値型を選ぶことで:
- 正確性: 計算結果が期待通りになる
- 効率性: メモリの使用量が最適化される
- 可読性: コードが理解しやすくなる
整数型(int)
整数型の基本
整数は小数点のない数値です。
Pythonage = 25 score = 100 temperature = -5 print(age) # 25 print(score) # 100 print(temperature) # -5
整数の計算
Pythona = 10 b = 3 print(a + b) # 13 足し算 print(a - b) # 7 引き算 print(a * b) # 30 掛け算 print(a / b) # 3.3333... 割り算(結果は小数) print(a // b) # 3 割り算の商(整数) print(a % b) # 1 割り算の余り print(a ** b) # 1000 累乗(10の3乗)
ポイント:
/は通常の割り算(結果は小数)//は割り算の商(小数点以下切り捨て)%は割り算の余り
浮動小数点型(float)
小数の基本
小数点を含む数値です。
Pythonpi = 3.14 temperature = 36.5 price = 1500.0 print(pi) # 3.14 print(temperature) # 36.5 print(price) # 1500.0
小数の計算
Pythona = 10.5 b = 2.5 print(a + b) # 13.0 print(a - b) # 8.0 print(a * b) # 26.25 print(a / b) # 4.2
具体例
例1: 消費税の計算
Pythonprice = 1000 tax_rate = 0.1 # 消費税額 tax = price * tax_rate # 合計金額 total = price + tax print(f"商品価格: {price}円") print(f"消費税: {tax}円") print(f"合計: {total}円")
実行結果:
商品価格: 1000円
消費税: 100.0円
合計: 1100.0円
例2: 平均点の計算
Pythonmath = 80 english = 75 science = 90 # 合計 total = math + english + science # 平均 average = total / 3 print(f"合計: {total}点") print(f"平均: {average}点")
実行結果:
合計: 245点
平均: 81.66666666666667点
例3: 割り算の商と余り
Python# 17個のリンゴを5人で分ける apples = 17 people = 5 # 1人あたりの個数(商) per_person = apples // people # 余りの個数 remainder = apples % people print(f"1人あたり: {per_person}個") print(f"余り: {remainder}個")
実行結果:
1人あたり: 3個
余り: 2個
例4: 累乗の計算
Python# 2の10乗 result = 2 ** 10 print(result) # 1024 # 3の3乗 cube = 3 ** 3 print(cube) # 27
例5: 型の確認
Pythona = 10 b = 10.5 print(type(a)) # <class 'int'> print(type(b)) # <class 'float'>
type() 関数で変数の型を確認できます。
例6: 整数と小数の混在計算
Pythona = 10 # 整数 b = 3.5 # 小数 result = a + b print(result) # 13.5 print(type(result)) # <class 'float'>
整数と小数を計算すると、結果は自動的に小数になります。
便利な関数
abs() - 絶対値
機能: 数値の絶対値(符号を取り除いた値)を返します。
Pythonnum = -10 positive = abs(num) print(positive) # 10 # 正の数はそのまま print(abs(5)) # 5 # 小数も使える print(abs(-3.14)) # 3.14
round() - 四捨五入
機能: 数値を指定した桁数に四捨五入します。
Pythonnum = 3.14159 print(round(num)) # 3(整数に丸める) print(round(num, 2)) # 3.14(小数第2位まで) print(round(num, 3)) # 3.142(小数第3位まで)
書き方: round(数値, 桁数)(桁数を省略すると整数に丸める)
max() / min() - 最大値・最小値
機能: 複数の数値から最大値・最小値を返します。
Pythonnumbers = [10, 5, 8, 15, 3] print(max(numbers)) # 15 print(min(numbers)) # 3 # 直接値を渡すこともできる print(max(10, 5, 8)) # 10 print(min(10, 5, 8)) # 5
使い分け:
- リストの場合:
max(list) - 個別の値:
max(値1, 値2, 値3)
sum() - 合計
機能: リストや タプルの数値の合計を計算します。
Pythonscores = [80, 75, 90, 85] total = sum(scores) print(total) # 330 # 開始値を指定できる total_with_bonus = sum(scores, 10) # 合計に10を加算 print(total_with_bonus) # 340
よくある間違い
間違い1: ゼロ除算
Pythonresult = 10 / 0 # ZeroDivisionError: division by zero
原因: 0で割ることはできません。
対策:
Pythona = 10 b = 0 if b != 0: result = a / b print(result) else: print("0で割ることはできません")
間違い2: 小数の誤差
Pythonresult = 0.1 + 0.2 print(result) # 0.30000000000000004
原因: コンピュータ内部で小数を2進数で扱うため、微小な誤差が生じます。
対策:
Pythonresult = 0.1 + 0.2 print(round(result, 2)) # 0.3
間違い3: 文字列と数値の混同
Pythonnum = "10" result = num + 5 # TypeError: can only concatenate str (not "int") to str
原因: "10" は文字列なので、数値と計算できません。
対策:
Pythonnum = "10" result = int(num) + 5 # 文字列を整数に変換 print(result) # 15
間違い4: 割り算と商の混同
Python# 普通の割り算 print(10 / 3) # 3.3333... # 商(整数部分のみ) print(10 // 3) # 3
用途に応じて / と // を使い分けましょう。
間違い5: 累乗と掛け算の混同
Python# 間違い: 2*3 は掛け算 print(2 * 3) # 6 # 正しい: 2**3 は累乗(2の3乗) print(2 ** 3) # 8
練習問題
問題1(基礎)⭐☆☆
半径が5の円の面積を計算してください。円の面積は「半径 × 半径 × 3.14」で求めます。
💡 ヒント
- 半径を変数に保存
- 半径 × 半径 × 3.14 を計算
- 結果を表示
✅ 解答例
Pythonradius = 5 pi = 3.14 area = radius * radius * pi # または area = radius ** 2 * pi print(f"半径{radius}の円の面積: {area}")
実行結果:
半径5の円の面積: 78.5
解説:
半径の2乗は radius * radius または radius ** 2 で表現できます。** は累乗を表す演算子です。
問題2(基礎)⭐☆☆
27個のクッキーを5人で分けます。1人あたり何個もらえて、何個余るか計算してください。
💡 ヒント
- 商(1人あたり):
//を使う - 余り:
%を使う
✅ 解答例
Pythoncookies = 27 people = 5 per_person = cookies // people # 商 remainder = cookies % people # 余り print(f"1人あたり: {per_person}個") print(f"余り: {remainder}個")
実行結果:
1人あたり: 5個
余り: 2個
解説:
// は割り算の商(整数部分)、% は余りを返します。27 ÷ 5 = 5 余り 2 です。
問題3(応用)⭐⭐☆
3つのテストの点数を入力して、合計点、平均点、最高点、最低点を表示してください。
💡 ヒント
- 合計:
+で足し算 - 平均: 合計 ÷ 3
- 最高点:
max()関数 - 最低点:
min()関数
✅ 解答例
Pythontest1 = 85 test2 = 92 test3 = 78 # 合計 total = test1 + test2 + test3 # 平均 average = total / 3 # 最高点と最低点 highest = max(test1, test2, test3) lowest = min(test1, test2, test3) print(f"合計点: {total}点") print(f"平均点: {round(average, 2)}点") print(f"最高点: {highest}点") print(f"最低点: {lowest}点")
実行結果:
合計点: 255点
平均点: 85.0点
最高点: 92点
最低点: 78点
解説:
max() と min() 関数を使うことで、複数の値から最大値・最小値を簡単に取得できます。平均点は round() で小数第2位まで表示しています。
まとめ
このレッスンでは、数値型と算術演算の基本を学びました。
- Pythonの数値型には、整数の
intと小数のfloatがあります。 +,-,*,/,//,%,**の演算子を用途に応じて使い分けられます。//は商、%は余りを求める演算で、実務でも頻繁に使います。abs(),round(),max(),min(),sum()などの関数で計算処理を効率化できます。- 0除算や小数誤差、型の違いによるエラーに注意して実装することが重要です。