Python データ型とデータ構造 : 整数と浮動小数点
株式会社リュディアです。Python のデータ型とデータ構造についてまとめていきます。今回は数値型、具体的には整数と浮動小数点についてです。Python3 を前提としており動作は Anaconda3 で確認しています。
型指定が必要な言語が存在します。C言語では整数として扱う変数 a を使うには整数であることを明記した宣言が必要です。例えば次のようになります。
int a;
一方、Python では最初に代入した数値で変数の型が決まります。例えば以下のようになります。
a = 3
b = 3.3
print(type(a), a)
print(type(b), b)
>> <class 'int'> 3
>> <class 'float'> 3.3
変数 a は 整数 3 を代入しているので整数型となり、変数 b は 小数 3.3 とを代入しているので浮動小数点型となります。type() を使って変数の型も表示しているので確認できましたね。このように Python では最初に変数を使う際に型を意識する必要がありません。
次に数値型の表現範囲についてです。プログラミングをする上で数値の表現範囲は重要です。Python2 では整数型は 32ビットと規定されていました。符号無し整数であれば 0 ~ 4,294,967,295まで、符号有り整数であれば−2,147,483,648 ~ 2,147,483,647 までが整数型の表現範囲となります。しかし Python 3 から整数型は任意のサイズで表現可能になりました。つまり上限、下限が存在しません。プログラマにとってはありがたい仕様です。浮動小数点についても同様に任意サイズで表現可能です。
次に Python の数値型でサポートされている演算子についです。+, -, *, / の四則演算はサポートされています。他に // は整数の切り捨て除算、% は剰余、** はべき乗であり、いずれもサポートされています。
また divmod という演算子があります。名前の通り除算と剰余を同時に計算するものです。以下に例を示します。
print(divmod(9,5))
>> (1, 4)
9/5 = 1 と 9%5 = 4 が同時に計算されます。プログラムで使う場合には以下のようにになります。
(c, d) = divmod(9,5)
print(c)
print(d)
>>1
>>4
演算子の優先順位も重要です。最上位の優先順位を持つのはべき乗 ** です。次に同順位で *, / , //, % となります。順位が最も低いのは +, - です。以下に例をつけます。
print(3*2**2)
print((3*2)**2)
>>12
>>16
演算子 ** が最上位であることがわかりますね。
最後に整数と浮動小数点の変換についてですが int(), float() を使います。以下に例を示します。変数の型と値を表示しているので変換されている様子がわかりますね。
a = 3
b = 3.3
print(type(a), a)
print(type(b), b)
a_float = float(a)
b_int = int(b)
print(type(a_float), a_float)
print(type(b_int), b_int)
>> <class 'int'> 3
>> <class 'float'> 3.3
>> <class 'float'> 3.0
>> <class 'int'> 3
今回は Python のデータ型のうち数値型である整数と浮動小数点についてまとめてみました。
では、ごきげんよう。