Pythonに限らずプログラミングで扱うデータ型というと、数値を連想する人が多いでしょう。
Pythonで扱う数値には整数型と浮動少数点型があります。あと、(複素数という数値も扱えますが、ここでは触れずに行きましょう)
- 整数型とは「10」「150」といった小数点以下の値を含まない数値
- 浮動小数点型とは「1.4142」のような小数点以下を含む数値
この数値を使って四則演算を扱ってみましょう。
その他、Pythonで扱う単純なデータ型には、ブール値(True or Falseの値をもつ)と文字列(文字の並び)があります。これも別のところで触れることになります。
Pythonで数値計算してみよう
四則演算には演算子を使います。計算例のコードを挙げておきましょう。
100 + 20 #足し算
100 - 20 #引き算
100 * 20 #掛け算
7 / 2 #割り算
7 // 2 #割り算(小数点以下を切り捨て)
7 % 2 #割り算の余り
5 ** 5 #べき乗(= 5 * 5 * 5 * 5 * 5)
順に、足し算、引き算、掛け算、割り算、小数点切り捨ての割り算、割り算の余り、べき乗となっています。
このコードのそれぞれの行に#をつけて文字を入力していますが、これはコメントです。Pythonでは#文字が現れたところから文末までがコメントとして扱われ、プログラミングの実行には影響することがありません。コードの意味を残しておきたい時などに使います。
さて、このコードですが、print(100 + 20)のようにそれぞれprint文で計算結果を表示してもいいのですが、計算だけなら対話型シェルの方が便利ですのでここではこれを使います。
それぞれ計算させると次のようになります。
数値計算のコードを入力してreturnを押すと次の行に計算結果が表示されているのがわかりますね。
ちなみに、整数型と浮動小数点数型は、それぞれint、floatと表記します。
typeを使えば次のように型を確認することができます。
四則演算と優先順位
四則演算の計算では足し算や掛け算が混ざった計算をすると、掛け算や割り算を先に計算することになります。これは学校で習った計算の順番と同じですね。
例を示しておきます。
100 - 20 * 5
(100 - 20) * 5
これは同じ計算結果にはなりません。
計算すると次のようになります。
一つ目は掛け算を先に計算しています。二つ目は丸カッコ()の中を先に計算しています。計算の順番を明確にする為に、丸カッコを意識的に使うのもいいでしょう。
変数を使った数値計算と複合演算子
ここまでは数値を直接扱って計算していました。この数値データを変数に代入して、変数を使って演算をすることもできます。
次の例でやってみましょう。
x = 10
y = 3
x * y
二つの変数x、yにそれぞれ数値を代入して、xとyを掛けています。対話型シェルで計算結果を見てみましょう。
こういった定義した変数に数値を足すという操作をプログラミングではよくします。その計算結果を、再度同じ変数に代入して変数に数値を足すということができます。
具体的には次のような計算です。
a = 1
a = a + 1
これを実行するとaの値はこうなります。
要するに、変数aに1を足すというだけの操作です。でも、これはちょっと面倒な書き方だと思います。
そこで、複合演算子というものを使って、計算してから代入するという処理を簡単に書くことができます。
上の例を複合演算子で書き換えるとこうなります。
a = 1
a += 1
この「+=」が複合演算子です。
これを実行してみるとこうなります。
計算結果は同じですね。
Pythonの複合演算子は「+=」の他に、「*=」や「/=」という掛けてから代入する、割ってから代入するという演算子も使えます。
ここでは1を加えるという例でしたが、他のプログラミングでは「++」といったインクリメント利用することがあるのを見たことがあると思います。Pythonではこれは使えませんので注意してください。
まとめ
Pythonの数値には整数型(int)と浮動小数点数型(float)があります。四則演算を使って計算することができます。
演算子による計算の優先順位は学校で習ったものと同じで、丸括弧()を使って計算順を整理することができます。
数値を代入した変数を使って四則演算もできます。
a = a + 1は、a += 1と複合演算子を使って書くことができます。他のプログラミングで見かけるインクリメント「++」やデクリメントはPythonでは使えません。