【Python】数値を扱ってみよう!

Pythonロゴ

Pythonには変数として「数値」「文字列」「リスト」「タプル」「辞書」など複数のタイプがあります。 こちらの記事では「数値」についてまとめてみました。

数値の種類

型名内容
int型 整数
float型   小数: 浮動小数点型
decimal型 小数: 固定小数点型
complex型 虚数

※虚数に関して記入者の勉強不足のため別途調べます!

int型 (整数)

num1 = int(5)
# or
num1 = 5

print(num1)
print(type(num1))
5
<class 'int'>

float型 (小数: 浮動小数点型) 

num2 = float(5.1)
# or
num2 = 5.1

print(num2)
print(type(num2))
5.1
<class 'float'>

decimal型 (小数: 固定小数点型) 

decimal型は追加ライブラリが必要なため呼び出しをしています。

from decimal import Decimal # ライブラリ呼び出し

num3 = Decimal(5.1)  # 5.1は浮動小数点型

print(num3)
print(type(num3))
5.09999999999999964472863211994990...
<class 'decimal.Decimal'>

decimal型に浮動小数点の値を入れると実行結果に誤差の数字が入り予想した形になりません。
これはコンピュータ内部では2進数で保存されていて小数点によっては無限に01が続き一定桁数で丸め処理が行われるため2進数から10進数に戻した際に元の小数に戻らず近似値が出力されるためです。

では上記ケースを「5.1」で表示するにはどうしたら良いでしょうか?
答えは浮動小数点の値を入れるのでは無く、文字列を入れることで解決します。 5.1をシングルまたはダブルクォーテーションで囲むことで文字列にしています。

from decimal import Decimal # ライブラリ呼び出し

num4 = Decimal("5.1")  # 5.1は文字列型

print(num4)
print(type(num4))
5.1
<class 'decimal.Decimal'>

数値の計算

Pythonの数値には四則演算を始め、剰余、割り算の整数部のみ、べき乗など簡単に計算することが可能です。

print(2 + 3)   # 加算
# 結果 5

print(5 - 1)   # 減算
# 結果 4

print(3 * 2)   # 乗算
# 結果 6

print(5 / 2)   # 除算
# 結果 2.5

print(5 % 2)   # 剰余
# 結果 1

print(5 // 2)  # 割り算の整数部のみ
# 結果 2

print(2 ** 3)  # べき乗 (例は2の3乗)
# 結果 8

数値のキャスト(変換)

Pythonで扱う数値はキャスト(変換)する事が可能です。

int型からfloat型へ変換

num5 = int(5)
print(type(num5))  # 変換前は int型

num5 = float(num5)  # int型からfloat型へ変換

print(num5)
print(type(num5))  # 変換後は float型
<class 'int'>
5.0
<class 'float'>

float型からint型へ変換

num6 = float(5.12)
print(type(num6))  # 変換前は float型

num6 = int(num6)  # float型からint型へ変換

print(num6)
print(type(num6))  # 変換後は int型
<class 'float'>
5
<class 'int'>

int型にキャストを行った場合、小数点の部分は切り捨てされます。

まとめ

数値に関して基本的な部分を再確認いたしました。
Python2の時はint型とlong型(長整数型)と呼ばれるものもあったのですが、Python3からint型に統合されております。シンプルでいいですね!
次は文字列について確認をしていきます。

記事内で使った関数

print(XX)について
引数に渡された内容を出力します。文字列を直接渡すことや、変数を入れて表示する事ができます。
type(XX)について
データ型を調べたいオブジェクトを引数で渡すことでそれぞれのデータ型の値を返す関数になります

サンプルプログラム

こちらの記事で作成したプログラムはGitHub環境にアップしております。
下記からダウンロードいただけます。

参考 num.py スクリプトGitHub python-beginner Pythonロゴ【Python】文字列を扱ってみよう!