pythonでの数値
python3の数値は整数(int型)、小数(float型)、複素数(complex型)の3つ。
論理型(bool型)も数値の1つと言える。(True=1, False=0)
○整数型 桁数は無限
16進数 先頭に0x
8進数 先頭に0o
2進数 先頭に0b(b:binary)
・int関数 文字列や小数を整数に直す関数
0b1001 #9 0o12 #10 0xAA #170 1000**10 #1000000000000000000000000000000 int("10") #10 int("10", 2) #2 2進数として判断 int("1A", 16) #26 5進数 int("1A", base=16) #26 16進数 オプション引数base int("AB", 32) #331 32進数 int("20", 5) #10 5進数 int(1.234) #1 原点方向に丸める #int("1.234") #ValueError: invalid literal for int() with base 10 int(float("1.234"))#1 int(1+2) #3 #int("1+2") #ValueError: invalid literal for int() with base 10 True #True True + 1 #2 必要になったらTrueを1として演算
型変換
int()の他にbin():2進数へ oct():8進数へ hex():16進数へ
bin(9) #'0b1001' #bin("9") #TypeError: 'str' object cannot be interpreted as an integer oct(9) #'0o11' hex(255) #'0xff'
○小数型
精度の高い計算はdecimalライブラリ。
2.5e5 #250000.0 0.1 + 0.1 #0.2 0.2 + 0.1 #0.30000000000000004 0.1 * 3 #0.30000000000000004 .1+.1+.1+.1+.1+.1+.1+.1+.1+.1 #0.9999999999999999
○分数
1/2 → 0.5
分子・分母を維持した分数の形のまま扱う時はfractionライブラリを利用する。
○複素数型 末尾にjまたはJ
complex(re, im) re:実部 im:虚部
・リテラル z = 2 + 3j 虚数単位はiではなくjを使う。
・z = complex(2, 3) またはcomplex("2+3j") ←文字列型の場合は間のスペースなし。
jは虚数単位ではなく、複素数クラスであることを表す記号
・z.real #2
・z.imag #3
・z.conjugate() 共役複素数
・abs(z) # (z.real**2 + z.imag**2)**0.5
・大小関係比較できない
z = 3 + 2j #(3+2j) z = complex(3, 2) #(3+2j) #z = 3 + 2 * j #name 'j' is not defined z.real #3.0 z.imag #2.0 abs(z) #3.6055512754639896 #z < 3 #TypeError: unorderable types: complex() < int()
cmathライブラリに複素数の計算、座標変換などの関数
○演算など
・「1 + 2」 +:operator 1,2:operand
・print文にすると自動的に文字列型に変換
・和+ 差- 積* 商(小数)/ 商(整数)// 剰余% 累乗**
・絶対値 abs()
・符号反転 -x
・累乗 2の8乗はpow(2,8) または2**8
○丸め
// | 切り捨て・左方向 |
---|---|
int() | 切り捨て・原点方向 |
round() | 四捨五入・原点方向・桁指定可能 |
math.ceil() | 切り上げ・右方向 |
math.floor() | 切り捨て・左方向 |
import math 3 // 2 #1 int(1.5) #1 round(1.5) #2 math.ceil(1.5) #2 math.floor(1.5) #1 -3 // 2 #-2 int(-1.5) #-1 round(-1.5) #-2 math.ceil(-1.5) #-1 math.floor(-1.5) #-2 round(1.2345) #1 round(1.2345, 2) #1.23 round(1.3579, 2) #1.36 round(1.2, 5) #1.2
・ビット演算子
演算子 | 意味 |
---|---|
& | ビットand |
| | ビットor |
^ | ビットxor |
~ | ビット反転 aのビット反転は–(a+1)と同義 |
<< | 左シフト(×2) |
>> | 右シフト(÷2) 右端からこぼれたビットは削除。左端(正負は不変) |
「"12".zfill(4)」は0012として表示。formatは文字列参照
・文字→アスキーコード ord()
・アスキーコード→文字 chr()
ord("a") #97 ord("あ") #12354 chr(97) #"a"