Pythonには数値計算ができる演算子がいろいろあります。
今日は、Pythonの演算子について、いろいろと勉強しました。
「あまりを計算するとか、何に使うの?」
と思いますが、そのうち使うようになるんだろう、ということで、とりあえずUdemyの講座カリキュラムどおり勉強していきます。
数値計算
足し算・引き算・掛け算・割り算
単純な足し算や引き算、掛け算、割り算です。
特に気を付けることはないですね。
足し算はこんな感じ↓
引き算はこんな感じ↓
これくらいは初心者でも楽勝です(笑)
掛け算、割り算もこのとおり。
この辺は、特にプログラミングじゃなくても、Excelレベルで知ってるような知識ですね。
あとは、
a = 7
b = 3
の場合、
g = a // b
とやったら、整数で割り算の答えを表示してくれるので、
2
となります。
割り算の余りを求める場合は、
h = a % b
で、答えは
1
べき乗の計算もできて、
i = b ** 3
とすると、答えは
27
になります。
余りとかを求めるようになってくると、だんだんプログラミングぽくなってくる気がします。
代入演算子
代入演算子からちょっとプログラミングっぽくなってきた、と感じるのは私だけでしょうか?
「=」 の左側に変数を置いて、「=」の右側に値を置くと、変数に値が代入されるのですが、これがちょっとわかりづらい感じがします。
a = 5
で、
print(a)
だったら、「5」と表示されるだけなので、別に難しくないのですが、更に、足して代入、とか、引いて代入、とかもできます。
たとえば、
a = 7; b = 3
とした場合、
a += b
として実行すると、答えが、
10
になります。
他の演算子も同様で、
引いて代入する場合は、
a -= b
かけて代入する場合は、
a *= b
割って代入する場合は、
a /= b
割って代入して整数の解を求める場合は
a //= b (小数点以下は切り捨てられます!)
余りを代入する場合は、
a %= b
べき乗を代入する場合は、
a **= b
と、=と数値演算子を組み合わせて使います。
それぞれ実行すると、こんな感じです↓
感覚的にわかりづらいのが、「割り算した余りを代入」のところ。
上記の例だと、
a = 7;b = 3
a %= b
だと、計算的には、7割る3で、答えが「2とあまり1」、なので、aには「1」が代入される、ということになります。
比較演算子
比較演算子は、値を比較して、その結果が真(True)か偽(False)かを得ることができます。
たとえば、以下の場合、7は3より大きい(7>3)なので、「True」が結果として返ってきます。
a = 7; b = 3
c = a > b
この「True」もしくは「False」で得られた値はブール型(bool型)と呼ばれる変数になります。
比較演算子で比較した結果が、「正しい」か「正しくない」かを、変数として入れられる、ということですね。(ややこしいですが。。。)
比較演算子の結果を入れた変数cを表示すると、「True」の値が返ってきます。
比較演算子にはいろいろな種類があって、以下のような種類の比較演算子があります。
・小さい
a < b
・大きい
a > b
・以下
a <= b
・以上
a >= b
・等しい
a == b
・等しくない
a != b
論理演算子
論理演算子は、2つの条件を、なんらかの方法で結合して、TrueかFalseを返してくれる演算子です。
たとえば、以下の場合、「and」で、『a>4と、b>=8の比較演算子を両方満たすかどうか』で判定が行われ、TrueかFalseの値が返ってきます。
a = 5; b = 10
c = a > 4 and b >= 8
aは5なので4より大きい(True)、bは10なので8以上(True)と、両方を満たしている(and)のため、「True」が得られます。
実行してみると、こんな感じ↓
論理演算子には、「and(両方を満たす)」のほか、
「or」→どちらかを満たす
「not」→~ではない
のようなものがあります。
これはExcelの関数でもAnd関数とかOr関数とか出てくるので、プログラミング初心者でもなじみがありますね。
三項演算子
「三項演算子」は初耳だったんですが、一番簡単な形の条件分岐、みたいなものです。
ExcelでIF関数を使っていた方なら楽勝だと思います。
たとえば、下記の例だと、体重(body_weight)が70キロより軽かったら(小さかったら)5キロで済むところ、70キロ以上だったら10キロ走らなければならない、というような条件分岐です。
文字列の演算
Pythonでは、数値だけではなくて、文字列も足したりとかできます。
これも、Excelでの文字列の足し算みたいな形で実現できます。
こんな塩梅ですね↓
ちなみに、アスタリスク「*」を使えば、文字列の掛け算(繰り返し)もできます。
ジョジョのスタープラチナのオラオララッシュも、Pythonなら簡単に表示できます(笑)
あとは、Excelでもおなじみの、Right関数とか、Left関数のようなこともできます。
下記の例だと、
a[2]で、先頭から0,1,2と数えて2文字目、
a[-2]で、一番後ろから-1,-2と数えて2文字目、
という具合に、文字を取り出すことができます。
マイナスの場合は後ろから1文字目、2文字目、という感じでわかりやすいですが、プラスの場合、戦闘は0文字めとして数えるので、[2]だったら先頭から3文字目、[3]だったら先頭から4文字目のことを指すことになります。
演算の優先順位
Pythonでは、いくつかの演算子が入った計算式の場合、
数値計算の演算子、比較演算子、論理演算子、代入演算子
の順に計算されます。
四則計算は小学生の時にやった順番と同じく、掛け算、割り算が優先、その次に足し算、引き算、という順番になります。
たとえば、以下のような形で、足し算と比較演算子が混じっている場合、先に足し算が行われて、その後比較演算子が働き、結果として、cには「True」が代入されます。
プログラミングするうえで、演算の優先順位が分かっていないと、変なことになるので、ちゃんと理解しておかないと危ないですね。。。