目次
目次:
まえがき
Pythonにある数値は3つ。
- 整数型:int型(10進数、2進数、8進数、16進数 )
- 不動小数点型:float型(倍精度不動小数点)
- 複素数型:complex型(実部と虚部)
そして、数学モジュールとして「fractions:有理数」がある。
この記事では数値型とその演算についてまとめてみる。
変更履歴
新規作成:2020/03/07
この記事の環境
- python 3.8.1
- os: MacOS
- モジュール:標準モジュール(数学モジュール)
Python3で扱える数値
先に述べたとおり数値型には3種類ある。他の言語にはもっとあるし、PyrhonについてPython2にはもっとあったらしい。これをたったの3つにしたので普通のint型、float型ではないので詳しくみていこう。
int型には最大値はない
Python3のint型には最大値はない。最大値はないが限界はあって、それはメモリによって決まる。限界まで使うことは通常はないと思う。
ちなみに2進数などの表記と変換を以下のように書く。
"""\ 型としてはint型かstr型になる。 int型としての表記と、10進数をstr型に変換する方法がある。 演算はint型どうしとして普通にできる。 """ # 2, 8, 16 int_bin = 0b1000 int_oct = 0o1000 int_hex = 0x1000 # 大文字でもOK int_bin_big = 0B1000 int_oct_big = 0O1000 int_hex_big = 0X1000 # 演算もOK、正しprint()では10進数で出力される int_sum = int_bin + int_oct + int_hex print(int_sum) # そのまま出力したい場合は変換関数を使う ch_bin = bin(128) ch_oct = oct(128) ch_hex = hex(128) print(ch_bin) print(ch_oct) print(ch_hex) # _で区切りを付けられる sep_int_bin = 0b0110_0101_1010 # 関数と文字列メソッドによる変換 ch_sep_int_bin_1 = format(sep_int_bin, 'b') ch_sep_int_bin_2 = format(sep_int_bin, '#b') print(ch_sep_int_bin_1) print(ch_sep_int_bin_2)
Python3の数値の演算
公式ドキュメントの書いてあるとおり。きお付けたいのはPythonの割り算の返り値はint型どうしの割り算で有ってもfloat型になる点。割り切れた場合でも1.0などのfloat型になる。
余りを求めるのも「%」を使い、VBのようにmod()を使ったりしない。「//」で小数点以下を切り捨てられるので状況に合わせて思い出したい。
演算 | 結果 | 備考 |
---|---|---|
x + y | x と y の和 | |
x – y | x と y の差 | |
x * y | x と y の積 | |
x / y | x と y の商 | 返り値はfloat型 |
x // y | x と y の商を切り下げたもの | 切り捨て |
x % y | x / y の剰余 | 余り |
-x | x の符号反転 | |
+x | x そのまま | |
abs(x) | x の絶対値または大きさ | |
int(x) | x の整数への変換 | |
float(x) | x の浮動小数点数への変換 | |
complex(rel, img) | 実部 re, 虚部 im の複素数。 | |
c.conjugate() | 複素数 c の共役複素数 | |
divmod(x, y) | (x // y, x % y) からなるペア | |
pow(x, y) | x の y 乗 | |
x ** y | x の y 乗 | |
数学モジュールについて
Python3には標準モジュールとして多くの数学モジュールがある。全部は調べないけれど何があるのか知っておきたい。公式ドキュメント丸パクリ。
- numbers – 数の抽象基底クラス
- 抽象基底クラス の階層を定義
- math – 数学関数
- 数論および数表現の関数
- 指数関数と対数関数
- 三角関数
- 角度変換
- 双曲線関数
- 特殊関数
- 定数
- cmath – 複素数のための数学関数
- 極座標変換
- 指数関数と対数関数
- 三角関数
- 双曲線関数
- 類別関数
- 定数
- decimal – 十進固定及び浮動小数点数の算術演算
- float型よりも利点が多い
- fractions – 有理数
- random – 擬似乱数を生成する
- statistics – 数理統計関数
- 統計で使うやつ
データサイエンスや機械学習で出番が多そう。
むすび
正直、割り算の返り値がfloat型になること、「//」で切り捨てられることだけ覚えておけば問題ない気がする。数学モジュールは使ってみたい。外部モジュールにも有名なものがあるわけだから、データサイエンス的なことやって見たいです。
コメント