【Python入門】整数と実数(int・float)の違いを知ろう

この記事はアフィリエイト広告を利用しています。
【Python入門】整数と実数(int・float)の違いを知ろう

ようこそ♪ささぽんのPython教室へ。

難易度:★☆☆☆☆

学べること:

・intとfloatの違い

・type()を使った型の確認方法

・intとfloatが混ざったときの計算の挙動

この記事を読むと、Pythonが数字を「int」と「float」という2つの型で扱っていることが分かり、計算結果に小数点が付くかどうかを自分で見分けられるようになります。

ささぽん

この記事は以下のような方におすすめです!
・前回、Google Colabで四則演算を試してみた方
・「20 / 4」の結果が「5.0」になった理由が気になっている方
・Pythonの「型」という考え方を初めて学ぶ方

目次

1.事前準備

■前回のおさらい

2.実践:intとfloatの違いを確認しよう

■なぜ「20 ÷ 4」の答えは「5.0」になるのか
■Step1.結果がintになる計算をしてみる

■Step2.結果がfloatになる計算をしてみる
■Step3.type()で「正体」を覗いてみる

■Step4.intとfloatを混ぜて計算するとどうなるか試してみる

3.まとめ

■intとfloatの使い分けルールのおさらい

最後に

■練習問題1〜4

1.事前準備

1.事前準備

■前回のおさらい

前回の記事では、Google Colabのセルを使って四則演算やべき乗、切り捨て除算にチャレンジしました。

その中で、「20 / 4」を計算したときの結果を覚えていますか?もし覚えていない、という方は、以下のコードをそのままコピーして、新しいセルに貼り付けて実行してみてください。

20 / 4

答えは「5」ではなく「5.0」だったはずです。割り切れる計算なのに、なぜ小数点が付いてくるのでしょうか?

実はPythonでは、すべての数字に「型」と呼ばれる種類分けがされています。私たちが普段目にする数字は、大きく分けると「整数」と「小数」の2種類ですが、Pythonではこの2つの型に、それぞれ別の呼び名が付けられています。整数のことは「int(インテジャー)」、小数のことは「float(フロート)」と呼び、Pythonの中ではこの2つが明確に区別されています。

今回は、この「int」と「float」という2つの型の違いを、ノートブック上で実際に打ち込みながら体感していきましょう。

2.実践:intとfloatの違いを確認しよう

2.実践

■Step1.結果がintになる計算をしてみる

まずは、割り切れる計算から試してみましょう。新しいセルに、以下のコードを貼り付けて実行してください。

8 / 2

結果はどうなったでしょうか?「4」ではなく「4.0」と表示されたはずです。あれ、割り切れているのに小数点が付いてしまいましたね。

実は、Pythonでは「/」を使った割り算は、割り切れるかどうかに関わらず、常に結果がfloatになる決まりになっています。

では、結果がintのままになる計算は、どんなものがあるのでしょうか?足し算・引き算・掛け算を試してみましょう。

3 + 5
10 - 4
6 * 7

こちらは「8」「6」「42」と、すべて小数点のない結果が返ってきたはずです。

このように、整数同士の足し算・引き算・掛け算では、結果もintのままになります。一方で「/」の割り算だけは特別に、必ずfloatになる、という点を覚えておきましょう。

■Step2.結果がfloatになる計算をしてみる

Step1では、「/」の割り算だけが常にfloatになる、ということが分かりました。では、それ以外にfloatになる計算はあるのでしょうか?

まずは、最初から小数が含まれている計算を、足し算・引き算・掛け算で試してみましょう。

1.5 + 2
5 - 1.5
2 * 1.5

結果は「3.5」「3.5」「3.0」になったはずです。整数と小数を組み合わせて計算すると、足し算・引き算・掛け算のどれであっても、答えはfloatになります。

では、割り切れない割り算はどうなるでしょうか。

10 / 3

こちらは「3.3333333333333335」のような、長い小数の結果が返ってきたはずです。

ここまでをまとめると、次のようなときに結果がfloatになります。

  • 計算式の中に、もともと小数(例:1.5)が含まれているとき
  • 「/」を使って割り算をしたとき(割り切れても、割り切れなくても)

一方で、Step1で見た「+」「-」「*」は、整数同士で計算している限りは結果もintのままでした。この「/」だけが特別扱いされている、という感覚をここで押さえておきましょう。

■Step3.type()で「正体」を覗いてみる

ここまで、計算結果を見ながらintとfloatを見分けてきましたが、実はPythonには、ある値が今どちらの型なのかを直接確認できるtype()という機能があります。

新しいセルに、以下のコードを貼り付けて実行してみましょう。

type(8)

結果は「<class ‘int’>」と表示されたはずです。「この8という値は、int型ですよ」ということをPythonが教えてくれています。

続けて、小数の場合も見てみましょう。

type(8.0)

こちらは「<class ‘float’>」と表示されます。同じ「8」という数字でも、小数点が付いているかどうかで、Pythonの中では別の型として扱われていることが分かります。

計算結果に対してtype()を使うこともできます。Step1・Step2で試した計算を、そのままtype()で包んでみましょう。

type(8 / 2)

結果は「<class ‘float’>」になったはずです。「/」の割り算は、見た目上は割り切れていても、型としてはfloatになる、ということがtype()を使うことでもはっきり確認できました。

■Step4.intとfloatを混ぜて計算するとどうなるか試してみる

最後に、intとfloatを混ぜて計算すると、結果はどちらの型になるのかを確認しておきましょう。

まずは、整数と小数の足し算です。

3 + 1.5

結果は「4.5」、型はfloatになります。続けて、整数と小数の掛け算も試してみましょう。

4 * 2.5

こちらも結果は「10.0」となり、型はfloatです。type()を使って、実際に型も確認してみましょう。

type(3 + 1.5)

「<class ‘float’>」と表示されたはずです。ここまでの結果をまとめると、次のようなルールが見えてきます。

  • int同士の「+」「-」「*」の計算 → 結果はint
  • 計算の中にfloatが1つでも混ざっている → 結果はfloat
  • 「/」の割り算 → int同士でも必ずfloat

つまり、Pythonでは「intとfloatが混ざったら、結果は必ずfloat側に合わせられる」という決まりがある、ということですね。

3.まとめ

3.まとめ

■intとfloatの使い分けルールのおさらい

整数のことを「int」、小数のことを「float」と呼びます。int同士の「+」「-」「*」の計算結果はintのままですが、計算式の中にfloatが1つでも混ざると、結果はfloatになります。「/」の割り算だけは、割り切れても割り切れなくても、必ずfloatになる点に注意しましょう。

計算の種類使用例結果
int同士の足し算3 + 58int
int同士の引き算10 – 46int
int同士の掛け算6 * 742int
floatが混ざった計算3 + 1.54.5float
割り算(/)8 / 24.0float

type()を使うと、値や計算結果の型を直接確認できます。最初は「なぜ20 ÷ 4が5.0になるの?」という違和感からスタートしましたが、Pythonが数字を「int」と「float」という2つの型で区別していることが分かれば、この挙動にも納得できたのではないでしょうか。

最後に

ここまでの内容を踏まえて、以下の計算結果がintとfloatのどちらになるか、実行する前に予想してから確かめてみましょう。

■練習問題1

15 - 4

11(int)→ 整数同士の引き算なのでintのままです。

■練習問題2

9 / 3

3.0(float)→ 「/」の割り算なので、割り切れてもfloatになります。

■練習問題3

2.5 * 2

5.0(float)→ floatが混ざっているのでfloatになります。

■練習問題4(応用)

type(7 // 2)

<class ‘int’> → 「//」は前回記事で登場した切り捨て除算です。int同士で計算すると、結果もintのままになります。

次回は、この「型」の考え方をさらに広げて、文字列(str)についても見ていく予定です。お楽しみに!

最後までお読みいただきありがとうございました。
次回の講義でお会いしましょう!