四則演算
四則演算は最もよく使うのでしっかりとマスターしておきましょう!
四則演算は足し算、引き算、掛け算、割り算のことですが、それぞれに演算子が存在します。
これらの演算子は二項演算子になっていて、以下のように使います。
(二項演算子は2つの値を扱う演算子)
c = a 演算子 b
もっと短く書くには以下のように書くことも可能です。
ちなみにこういうのを累算代入演算子と言います。
インクリメントする時などに使うとコードが見やすくなりますね
a 演算子= b
例
a += 1
(a = a+1)
b *= 2
(b = b*2)
足し算
足し算は+
演算子で行うことができます。
print(3+5)
# 8
print(1+0)
# 1
print(100+50)
# 150
よく使うインクリメントのテクニックも見ておきましょう。
a = 0
for i in range(10):
a += 1
print(a)
# 10
引き算
引き算は-
演算子で行うことができます。
print(5-3)
# 2
print(1-3)
# -2
print(10-0)
# 10
足し算ではインクリメントを行いましたが、引き算ではデクリメントを行ってみましょう。
a = 0
for i in range(10):
a -= 1
print(a)
# -10
掛け算
掛け算は*
演算子で行うことができます。
print(2*3)
# 6
print(5*0)
# 3.0
print(10*0.3)
# 0
掛け算の累算代入演算子を使ってみましょう。
例えばお金の複利計算をする時にも使えますね。
money = 100
rate = 0.04
for i in range(10):
money *= (1+rate)
print(money)
# 148.02442849183444
割り算
割り算は/
演算子で行うことができます。
print(4/2)
# 2.0
print(3/2)
# 1.5
print(1/0.3)
# 3.3333333333333335
割り算でも累積代入演算子を使ってみるとこんな感じ
以下は100は2で何回割れるのかを出力するプログラムです
a = 100
b = 2
cnt = 0
while True:
if a<b:
break
a /= b
cnt += 1
print(cnt)
# 6
その他の演算
以下の演算では紹介していませんが、もちろん以下で説明する演算子でも累積代入演算子は使用できます!
剰余演算
剰余演算はモジュロ演算とも言われ、割り算した後の余りを求める演算です。
%演算子で利用できます。
例えば 10÷3=3余り1
となるわけですが、この余り1というのを求めてくれる演算となります。
print(4%2)
# 0
print(10%3)
# 1
print(1%0.3)
# 0.10000000000000003
切り捨て除算
切り捨て除算とは小数点以下を切り捨てた割り算の結果を返してくれる演算です。//
で行うことができます。
print(3//2)
# 1
print(10//0.3)
# 33.0
print(0.3//0.2)
# 1.0
べき乗
べき乗は\(x^y\)
という形で表されるものでしたね
べき乗演算は**
で行うことができます。
print(3**2)
# 9
print(0.5**3)
# 0.125
print(-1**2)
# -1
print((-1)**2)
# 1
暗黙の型変換
四則演算をやっていると、知らぬ間に暗黙の型変換で型が変わっていたりします。
型が変わっているとバグの原因になってしまうので、どのような挙動をするのか確認しておきましょう。
# 足し算
print(type(1+1))
# <class 'int'>
print(type(1+0.5))
# <class 'float'>
# 引き算
print(type(2-1))
# <class 'int'>
print(type(2-0.5))
# <class 'float'>
# 掛け算
print(type(2*2))
# <class 'int'>
print(type(2*0.2))
# <class 'float'>
# 割り算
print(type(2/1))
# <class 'float'>
print(type(2/0.5))
# <class 'float'>
# 剰余演算
print(type(2%1))
# <class 'int'>
print(type(2%0.3))
# <class 'float'>
#切り捨て除算
print(type(2//1))
# <class 'int'>
print(type(2//0.5))
# <class 'float'>
#べき乗
print(type(2**3))
# <class 'int'>
print(type(2**0.5))
# <class 'float'>
整数型と整数型の演算の結果は整数型になるようですが、
整数型と浮動小数点型の演算の結果は浮動小数点型になるようです。
割り算だけは例外で整数型と整数型でも結果は浮動小数点型になるようですね。
演算の優先順位
四則演算の優先順位は算数でやった優先順位と同じなので、特に困ることもないと思いますが、復習として載っけておきますね
高 | () |
| | ** |
| | * / // % |
低 | + – |
コメント