Python3 入門:ネイティブデータ型 数値 浮動小数点
Python3での数値および浮動小数点を学習する。
まずは四則演算、いつものようにIpythonを使用する
学習開始
In [14]: 1+1
Out[14]: 2
In [15]: 1-1
Out[15]: 0
In [16]: 1*1
Out[16]: 1
In [17]: 1/1
Out[17]: 1.0
In [18]: 1+1.0
Out[18]: 2.0
In [19]: 1-1.0
Out[19]: 0.0
In [20]: 1*1.0
Out[20]: 1.0
In [21]: 1/1.0
Out[21]: 1.0
In [22]: 1.0+1.0
Out[22]: 2.0
In [23]: 1.0-1.0
Out[23]: 0.0
In [24]: 1.0*1.0
Out[24]: 1.0
In [25]: 1.0/1.0
Out[25]: 1.0
In [26]: 1.0-1
Out[26]: 0.0
In [27]: 1.0+1
Out[27]: 2.0
In [28]: 1.0*1
Out[28]: 1.0
In [29]: 1.0/1
Out[29]: 1.0
これを見ると剰余算で割り算は少数をつける
少数の計算は結果は必ず少数で帰るということ
In [30]: type(1)
Out[30]: int
In [31]: type(1.0)
Out[31]: float
要はこういう事ね
Pythonは |
まぁ型強制ができる。
In [32]: float(1)
Out[32]: 1.0
In [33]: int(1)
Out[33]: 1
In [34]: int(1.0)
Out[34]: 1
In [35]: float(1.0)
Out[35]: 1.0
In [36]: 1.12345678901234567890
Out[36]: 1.1234567890123457
In [37]: 123456789012345678901234567890
Out[37]: 123456789012345678901234567890
少数は15位までは正確
整数はどこまでも正確なような気がする?
>こういうことらしい
① | float()関数を呼び出すことで、明示的にintをfloatに型強制できる。 |
② | 当然ながら、int()関数を呼び出すことで、明示的にfloatをintに型強制できる。 |
③ | int()関数は四捨五入ではなく切り捨てを行う。 |
④ | int()関数は、負数を0の方向へ向けて切り捨てる。これは正しい切り捨て関数であり、床関数 (floor function) ではない。 |
⑤ | 浮動小数点数は小数第15位まで正確だ。 |
⑥ | 整数はどんな大きさでも対応できる。 |
In [38]: 11/2
Out[38]: 5.5
In [39]: 11//2
Out[39]: 5
In [40]: -11//2
Out[40]: -6
In [41]: 11/-2
Out[41]: -5.5
In [42]: 11//-2
Out[42]: -6
繰り上がりやがりました //は注意が必要です
In [43]: 11**2
Out[43]: 121
In [44]: 11%2
Out[44]: 1
こいつはまぁ素直
① | /演算子は浮動小数点数の除算を行う。たとえ分子と分母の両方がint型であっても、この演算子はfloat型を返す。 |
② | //演算子はひねくれた整数除算を行う。結果が正の数の場合は、整数への切り捨て(四捨五入ではない)とみなすことができるが、これについては注意が必要だ。 |
③ | 負の数を整数除算する場合、//演算子は最も近い整数に繰り「上げる」。数学的に言えば、−6は−5より小さいので「繰り下げ」というべきだが、−5に切り捨てられることを期待していると足もとをすくわれる。 |
④ | //演算子は常に整数を返すわけではない。分子や分母のどちらか一方でもfloatの場合は、なお結果を最も近い整数に丸めてくれるのだが、実際の戻り値はfloatで返される。 |
⑤ | **演算子は「べき乗」を意味する。つまり112は121だ。 |
⑥ | %演算子は整数除算の余りを返す。11を2で割ると5余り1になるので、ここでの結果は1となる。 |
今回の学習教材はオンラインと図書
オンラインでは
ネイティブデータ型 - Dive Into Python 3 日本語版
3. 形式ばらない Python の紹介 — Python 3.4.2 ドキュメント
参考書籍
これは初めてなら良いと思う、ただこれだけでは開発はできないけれども
とっかかりにはなります。ただし2系です。
こいつはまぁ安定2系と3系のリファレンスとして長く使えそう
ネットが規制されている環境下ならとても良いと思います。