数値型の使い方
pythonの数値型には、int(整数型)、float(浮動小数点数型)、complex(複素数型)の3つだけであり、
intは整数値を扱う場合に、floatは浮動小数点数を扱う場合に、complexは複素数を扱いたい場合に利用される。
計算をするときや、数値を利用したいとき、用いられる。
int(整数型)、float(浮動小数点数)
intは整数を扱う型、floatは浮動小数点数を扱う型。
代入する際に、整数を変数に入れた場合にはintインスタンスに変換され、浮動小数点数を入れた場合にはfloatインスタンスに変換される。
a = 12
とすると、
type(a)の結果、class 'int'となり、
a = 12.0
とすると、
type(a)の結果、classs 'float'と表示される。
Example
- 正の整数を変数に格納して計算(int型)
print(age + 1) # int同士の計算。age(25) + 1で26が表示される
- 浮動小数点数を変数に格納して計算(float型)
print(height + 1) # height(175.5) + 1で176.5が表示される(float + intはint側がfloatに変換(上の例では1.0)されて計算される
- 負の整数を変数に格納して計算
value = -5 # 整数の前に-をつけると、負の整数を変数に格納できる
print(value + 1) # -5+1つまり、-4が表示される
2進数、8進数、16進数、N進数
pythonでは、2進数、8進数、16進数、N進数など、10進数以外も扱うことができる。
0b01010 | 2進数として解釈して、01010の数値を10進数の数値10に変換する |
0o012347 | 8進数として解釈して、012347の数値を10進数の数値5351に変換する |
0x00fff | 16進数として解釈して、00fffの数値を10進数の数値4096に変換する |
bin(18) | 10進数の数値(18)を2進数の文字列('0b10010')に変換する |
oct(18) | 10進数の数値(18)を8進数の文字列('0o22')に変換する |
hex(18) | 10進数の数値(18)を16進数の文字列('0x12')に変換する |
int(文字列、 基数) | ある数値を指定した基数で解釈して、10進数の数値に変換する |
Example
- 2進数は数値の前に0b、8進数は0o、16進数は0x
age = 0o11 # この場合、右辺は8進数のため、変数ageには9が格納される
age = 0x11 # この場合、右辺は16進数のため、変数ageには17が格納される
- 2進数の数値を文字列にするには、bin(数値)、8進数の場合はoct(数値)、16進数の場合はhex(数値)を用いる
print(oct(15)) # この場合、8進数として'0o17'が表示される
print(hex(15)) # この場合、16進数として'0xf'が表示される
- 数値と文字の列をintに変換する
print(int('python', 36)) # この場合、36進数としてpythonを解釈し、10進数に変換した結果、1570137287と表示されます。
数値の演算
pythonの数値型で、様々なオペレータで、演算をすることができる。
足し算、引き算、掛け算、割り算、剰余などさまざまな計算の使用方法について以下に記載する。
+ | 和 |
- | 差 |
* | 積 |
// | 商(切り捨て) |
/ | 商 |
abs(x) | 絶対値 |
**y | xのy乗 |
pow(x,y) | xのy乗 |
% | 剰余 |
Example
- 四則演算
x = 5 - 7 # 5-7でxに-2が挿入される
x = 5 * 7 # 5×7でxに35が挿入される
x = 10 // 4 # 10÷4で2.5となり、.5が切り捨てられxに2が挿入される
x = 10 / 4 # 10÷4で2.5となり、xに2.5が挿入される
- 絶対値、べき乗、剰余
x = 5**3 # 5の3乗の125がxに挿入される
x = pow(5,3) # 5の3乗の125がxに挿入される
x = 5 % 3 # 5を3で割った余りの2がxに挿入されます。
int, float間の型変換
- int型の変数をfloat型にするには、float関数を用いる
- float型の変数をint型にするには、int関数を用いる
この際、int型からfloat型になった変数は、小数点以下が0として、○○.0のような形になる。
逆に、float型からint型になった変数は、小数点以下は切り下げられることに注意が必要。
Example
- intからfloatに変換
float_num = float(int_num) # int_numがfloat型に変換され、12.0としてfloat_numに代入される
- floatからintに変換する
int_num = int(float_num) # float_numの12.6が整数に変換されるが、その際に小数点以下は切り下げられ12としてint_numに値が入る
complex(複素数型)
ここからは、おまけの内容。
実務で複素数を利用したことは一度もないが、一応機能としては、複素数を使うことができるので紹介する。
複素数を扱うには二つの方法がある。
- 1 + 3jのような形で、実数と虚数を指定して、値を宣言する
- complex関数を用いて、第1引数に実数部、第2引数に虚数部の数値を指定して宣言する。
Example
- 複素数の定義
b = 3 + 5j # 実数3と虚数5の複素数
print(a + b) # 複素数4+8jが表示される
print(a * b) # 複素数-12+14jが表示される
- complexを用いて複素数を扱う
b = complex(3, 5) # 実数3と虚数5の複素数
print(a + b) # 複素数4+8jが表示される
print(a * b) # 複素数-12+14jが表示される
- 複素数型の実数と虚数をreal,imagで、それぞれ取り出す
print(a.real) # 実数の12.0が表示される
print(a.imag) # 虚数の3.0が表示される