どうも、としです。
今回はPython講座の第3章としてPythonで計算のプログラムをやっていこうと思います。
今回内容としては
・単純な四則演算の方法
・//、%、**を使った結果
・()カッコを使っての計算方法
この3つについて解説していきます。
補足として文字列と数字の区別という部分についても解説します。
計算であったり数字の扱い方の部分ってプログラムを組む上でかなり重要な部分なので、ぜひお付き合いくださいね。
Pythonで四則演算をする
最初は基本的な四則演算についての解説になります。
# 足し算:+
print(5 + 3)
# 引き算:-
print(5 - 3)
# かけ算:*
print(5 * 3)
# 割り算:/
print(5 / 2)
こちらが基本的な四則演算のプログラムになります。
計算をしてプロンプト上にprint文で計算結果を表示するというプログラムです。
足し算(+)と引き算(-)に関しては、なじみのある分かりやすいですが、、
- かけ算:*(アスタリスク)
- 割り算:/(スラッシュ)
この2つはプログラムを組む時にしか使わないので気を付けてください。
ちなみにPythonに限らずプログラムの場合にはかけ算には『*』、割り算には『/』を使う場合がほとんどです。
結果としては上から
- 5+3=8
- 5-3=2
- 5*3=15
- 5/2=2.5
こういう結果になっています。
でっ、この結果の中で1つだけ違うものがあるのですが、どれだと思いますか?
それが2.5という小数です。
小数と整数
これは次の4章の変数の部分でも解説するのですが、、
プログラム内では型というものがあって、こういった整数や小数をしっかりと自分で区別するのがかなり重要な部分になります。
ちょっと具体的な話をすると
- 整数はinteger:int型
- 少数はfloat:float型
というものに分類されます。
細かくは次の4章で解説していくので、
「型があって、それが重要」
という部分だけぜひ覚えておいてくださいね。
ちなみにプログラムを組んでいくと、少数ではなく計算結果の中から整数部分だけを抜き出したいということが結構あります。
その時には色々やり方はありますが、1つ例としてはこういった方法があります。
print(int(5/2))
これは5/2の結果としては上でも話していますが、2.5という少数になります。
だけどそれをintというのでくくってあげると、整数という型にします。
なので2.5の整数部分である2だけがこのprint文では表示されます。
他にもやり方はあるので、あとで解説していきますね。
数字と文字列の区別
でっ、ちょっと型についてふれたので、補足の部分として
数字と文字列の区別
という部分についてここで解説していきます。
まず質問なのですが、、
- 1
- ‘1’
- “いち”
この3つを2つに分けるとしたら、どう分けますか?
おそらく
- 1、’1′
- “いち”
こうやって区別をするのが普通かなと思うんですね。
だけどプログラム的には
- 1
- ‘1、”いち”
こう分けることの方が多いです。
この違いとしては
『’』(シングルクォーテーション)
『”』(ダブルクォーテーション)
で囲われているかどうかです。
というのもPythonの場合には『’』『”』のどちらかでくくられた部分は文字列として扱います。
ちなみにstring型という型になります。
こうやって数字と文字というのは別物と扱うのがプログラムの基本です。
例えば
print(1 + "1" + '1')
このプログラムってどういった結果が表示されるかというと、エラーが起きるんですね。
人間が見ると1+1+1なので3という回答をすることが出来ますが、プログラムとしては
- 数字の1
- 文字列の”1″と’1′
人間としては同じ『1』のようですが、プログラムとしては違うものなので計算することは出来ないです。
計算する場合には型が数字(int型)同士じゃないとダメなんですね。
じゃあ文字列同士の場合、、次みたいなときはどうなると思いますか?
print('1'+'1')
数字の足し算と考えると2という回答になるかと思います。
だけどこれは文字列同士の足し算(結合)なので結果としては
11
という文字列が生成されてしまいます。
こんな感じでこの型の部分って意識していないと思いもしない結果が出てしまう場合があります。
慣れないうちはなかなか難しい部分なので、プログラムを組む時にはこの型を意識してくださいね。
四則演算以外の計算
と、、補足を話したところで、また計算の方に戻っていきますね。
基本的な四則演算の他に
# 小数を切り捨てて整数部分を取り出す
print(5 // 2)
# 余りの計算:%
print(5 % 2)
# 累乗の計算:**
print(5 ** 2)
こういった計算方法があります。
結果としては
- 5//2→2
- 5%2→1
- 5**2=25
こういった結果が出力されます。
『//』は上でint型に変更したのと似たような感じですね。
小数部分を切り捨てて整数部分のみを取得しています。
こうやって同じ結果を取得するのに別の書き方があるのが個人的にプログラムの面白い部分でもあるし難しい部分だと感じています。
次の『%』は余りを計算して取得をするというものです。
日常の計算だと余りを取得するって、そんなにあることではないですが、、
プログラムを組んでいると意外と使ったりする部分です。
例えば、、
for i in range(5):
if i % 2 == 0:
print(f"{i}は偶数です")
else:
print(f"{i}は奇数です")
6~8章で解説するfor文とif文の内容になるので、プログラムについての詳しい解説は省略しますが、、
『i』という変数というものに0,1,2,3,4という数字を入れて、それを2で割った余りを計算しています。
- 2で割った余りが0であれば偶数
- 2で割った余りが0以外であれば奇数
こういったことをやるときに余りを活用できます。
最後の『**』は累乗の計算になります。
*が1つの場合にはかけ算でしたが、それを2つ重ねると累乗になります。
こちらもぜひ覚えておいてくださいね。
カッコを使って計算をする
最後はカッコを使って少し複雑な計算をやっていきたいと思います。
まずプログラムになります。
print(3 + 3 * 3)
こちらのプログラムはどういった計算になると思いますか?
これは基本的に算数の考えになるんですが、、
かけ算を先にやって足し算は後になります。
なのでこのプログラムの結果としては
『12』っていう結果が返ってきます。
でっ、これを足し算のほうから先にやってほしいんだよなっていうことって結構あるんですね。
例えば、、
僕の場合であれば物販の事業をやっています。
販売をしたとき経費がかかるのですが、複数の種類の経費があるんですね。
販売の手数料として販売価格の10%であったり、配送する送料であったり。
経費を先に全部足してから利益の計算をしていきたい。
その場合には、、
# sell_price:販売価格
# postage:送料
# expenses:経費
# profit:利益
expenses = sell_price * 0.1 + postage
profit = sell_price - expenses
みたいな感じで2行で書く事も出来ますが、
profit = sell_price - (sell_price * 0.1 + postage)
こんな感じでカッコを使用して1行で書くこともできます。
もちろんどっちも正しい結果は取得できます。
なのでどっちの書き方でもいいのですが、、
カッコ使って自分の思った通りの計算の順番っていうものをできるようになります。
なのでぜひこの方法も覚えておいてくださいね。
まとめ
といった感じで今回はPythonの計算方法について解説をさせてもらいました。
今回の内容をまとめておくと
・四則演算は+、-、*、/で出来る
・//で整数部部のみ取得
・%で余りの計算
・**で累乗の計算
・カッコを使用することで計算の順番を指定出来る
これが本題の話でした。
後は補足として文字列と数字の区別の話もさせてもらいました。
プログラム内で計算を行うことって本当にたくさんあります。
今回の話で基本的な計算方法は網羅しているので、ぜひ何度か繰り返してマスターしてくださいね。
次回はプログラムの中で結構難しい部分の「変数」という部分の話になります。
文字列と数字っていう部分で話をしたんですけど型の部分の話もあります。
プログラムにおいて変数と変数の型ってかなり重要な部分になります。
なのでぜひ第4章も引き続き見てもらえればなと思います。