sagantaf-佐賀んタフ-

なんでも自分の思ったこと、経験したことを書いて生きます。

【Python3入門まとめ】1.数値

 

要約

 

数値

・算術演算子
 +, -, *, / :四則演算
 //:割り算(切り捨て)
 %:剰余(割り算の余り)
 **:指数
 
・比較演算子
 =, !=, >, >=, <, <= :等しい、等しくない、より大きい、などなど
 is, is not, in, not in:同一オブジェクト、異なるオブジェクト、含む、含まない
 
・論理演算子
 and, or, not
 
・数字の前に0を置くとエラーになる。
・数式中のスペースは必須ではない。空白がなくても、いくらあっても問題ない。
・算術演算子の効率的な書き方
 >>> x += 2
 >>> y -= 5
 >>> a //= 2
 >>> a %= 2
・divmod(x,y)で、x÷y の商と余りを同時に求められる。
・PEMDASの順番で計算される。
 
 
 
 

詳細と実行例

(具体例の中の赤字は、説明です。実際に打ち込むコマンドではありません。)
 
 
算術演算子
+, -, *, / :四則演算(足し算、引き算、掛け算、割り算)
>>> 1+1-1
1
>>> 2*3
6
>>> 15/2
7.5
 
 
 
//:除算演算子(切り捨て)
%:剰余(割り算の余り)
**:指数 
>>> 15//2
7
>>> -15//2     ←マイナスを割ると−7ではなく、−8になる!
-8
>>> 15%2     ←15÷2=7 あまり1 となるため
1
>>> 2**4     ←2×2×2×2 ということ
16
 
除算演算子(//)は、正の数のときだけ切り捨てと言える。
負の数を割ったときは、切り捨てとは言えない。
 
これは、除算演算子
 「割り算の結果を超えない最小の整数」
を計算しているから。
 
詳細はここに書いてある↓
(英文)
 
 
 
divmode関数
商と余りを同時に求める。
divmod関数を使うことで、リスト形式の結果が得られる。(商, 余り)と表示される。
>>> divmod(9,5)     ←「9÷5=1あまり4」となる
(1, 4)
>>> divmod     ( 9 , 5 )
(1, 4)
空白に寛容。
 
 
 
数式の書き方
数字の前に0を置くとエラーになる。
>>> 05 + 2
  File "<stdin>", line 1
    05 + 2
     ^
SyntaxError: invalid token
>>> 5 + 2
7
 
 
スペースは必須ではない。空白がなくても、いくらあっても問題ない。
>>> 1+2  +    3
6
 
 
もっと省エネな書き方として、計算したい演算子と = を並べるだけという方法がある。
>>> x = 0
>>> x = x + 2
>>> x
2
>>> x = 0
>>> x += 2     ←現在のxに2を足すということになる
>>> x
2
 
この表現方法は、どんな演算子にも利用可能。
>>> y = 10
>>> y -= 5
>>> y
5
>>> a = 10
>>> a //= 2
>>> a
5
>>> a %= 2
>>> a
1
 
 
ただし、演算子と = に空白を設けるとエラーになるので注意。
>>> x + = 3
  File "<stdin>", line 1
    x + = 3
        ^
SyntaxError: invalid syntax
 
 
 
 
計算の順序(PEMDAS) 
Pythonでは、各演算子の順序はPEMDASに従っている。
PEMDASとはParentheses, Exponents, Multiplication, Division, Addition, Subtractionの頭文字を連結したもの。
 
 
 Parentheses:括弧()
 Exponents:累乗 2の3乗は8とか
 Multiplication:掛け算
 Division:割り算
 Addition:足し算
 Subtraction:引き算
 
 
 
 
比較演算子
=, !=, >, >=, <, <= :等しい、等しくない、より大きい、などなど
>>> 3 == 3
True
>>> 3 != 2
True
>>> 3 != 3
False
>>> 1251452 < 1256123
True
 
 比較演算子は、上記の例だけ見ると、当たり前にしか感じられないが、入力された値を判定するためにIF文とともに使う時などにこの演算子(==)は有用になってくる。
 
is, is not, in, not in:同一、異なる、含む、含まない
>>> a = (1 , 2)
>>> a
(1, 2)
>>> b = (1, 2)
>>> b
(1, 2)
>>> a == b
True
>>> a is b
False
>>> a is not b
True
 
↑aとb、ぱっと見同じであり、==演算子だとTrueになるが、is演算子だとFalseになる。
 is演算子は、「それぞれの変数(a, b)が同じオブジェクト(この場合(1,2))を指しているか」を判定している。
この例では、aとbは別々に宣言しているため、それぞれ別のオブジェクトとして扱われる。
そのため、is演算子ではFalseとして「同一ではない」と判断された。
一方で、、、
 
>>> a = (1 , 2)
>>> a
(1, 2)
>>> b = a
>>> a
(1, 2)
>>> b
(1, 2)
>>> a is b
True
 
↑このように、b=aとしてbを宣言すると、bはaと同じオブジェクトを指すことになるため、is演算子はTrueとなる。
 
 
 
論理演算子
and, or ,not : いわゆるAND条件、OR条件、NOT条件

>>> (3 > 2) and (7 > 5)

True

>>> (3 > 2) and (1 > 5)

False

>>> (3 > 2) or (1 > 5)

True

>>> 3 > 2

True

>>> not 3 > 2

False