#[Python]02章-01 演算と変数
いよいよ、Pythonプログラムを本格的に書いていきたいと思います。
基礎的なPythonの文法の説明が多く、最初は退屈に感じてしまう可能性もあるかもしれません。
適宜、Pythonを使ったグラフィック描画などを用いながら、遊び的要素も取り入れて、飽きないように説明していくことを心がけていきたいと思います。
Pythonでいろいろとやってみたいことはあるかもしれませんが、やはりプログラムの文法の概要説明なしにプログラムを書くのは難しいです。まずは基礎から徹底していきましょう。
さて、文法の基礎となるのが、変数となります。変数はPython言語だけでなく、Java、C言語など、ほかのどの言語でも登場するので、しっかりと理解をしてください。
いろいろな演算子
1章の時に説明しましたが、入力した数値同士を足し算することができました。
Pythonでは数値に対して様々な演算子があります。この後もいろいろな演算子が登場しますが、以下は算術演算子と言います。
演算子 | 意味 | 書き方例 |
---|---|---|
+ | 足し算(加算) | 11 + 3 |
- | 引き算(減算) | 11 -3 |
* | 掛け算(乗算) | 11 * 3 |
/ | 割り算(除算) | 11 / 3 |
// | 割り算(除算/商のみ) | 11 // 3 |
% | 割り算(除算/剰余のみ) | 11 % 3 |
** | 累乗(べき乗) | 11 ** 3 (113) |
実際に動作を確認してみましょう。今回はPythonコンソールを実行していきます。
PyCharmを立ち上げたら、[01-03]で説明した通り、以下の手順でコンソールを立ち上げます。
実際にPythonコンソール上に計算式を入力して、動作を確認してみてください。自分の好きな数値で試しても構いません。
以下のような結果になったかと思います。
>>> 11 + 3
14
>>> 11 - 3
8
>>> 11 * 3
33
>>> 11 / 3
3.6666666666666665
>>> 11 // 3
3
>>> 11 % 3
2
>>> 11 ** 3
1331
###除算について
どの演算も使われますが、プログラミングの世界では**//(除算 商のみ)と%**(剰余)はよく使われます。
例えば、時間の計算で、「秒」から「何分何秒」かを求めるといったことはよくあります。
3327秒は何分何秒かを計算するときには、
>>> 3327 // 60
55
>>> 3327 % 60
27
と計算すると、55分27秒といった具合に求めることができます。
##算術演算子の計算順序
上記では2つの数値の演算を行っていきましたが、演算は3つ以上の数値の計算も可能です。
例えば、以下の数式
10 + 2 * 3
を入力して計算すると、16と出力されます。これについては、今まで机上で行ってきた計算順序を同じルールとなります。
数値の種類
数値については、主に2つに分けられます。詳細については2章の最後に取り上げますが、数値には以下の種類の型があります。
- 整数
例)10, -7, 321 など - 浮動小数点数(実数)
例)3.14, -2.718, 6.02×1023 など
##変数【重要】
プログラミングを学ぶ上で、変数という概念を必ず理解する必要があります。
例えば以下のPythonプログラム、
x = 25
において考えてみます。
数学では、**xは25である(xは25と等しい)**という意味になります。
しかし、プログラミングでは上記は、xに25という数値を代入する(もしくは割り当てる)という意味になります。難しい言葉を使うと、=(イコール)は代入演算子と言います。
また、プログラミングの入門書等で、以下の(図1)のように、xという名前の付いた箱に25を入れるといった説明をすることが多いようですが、ここでは25という値にxというタグをつける(図2)といった覚え方で覚えてください。
そのほうが後ほど、後述するオブジェクト指向プログラミングの説明をする際に理解がすんなりいくので、このイメージで覚えてください。
ただし、説明していくうえで便宜上、代入という表現で説明していきます。(正確には代入ではないですが)
※CやJava言語などを経験された方へ
上記例で、
x = 25
とxに代入をしています。Pythonから始めた方は何も疑問は持たないですが、CやJavaなどのプログラム言語を経験された方は「変数の宣言はしないのか?」という疑問を持たれているかもしれません。例えばJavaでは
int x;
x = 25
というように、「今からこのプログラムで使用するxはint型(整数型)です」と宣言をしないとエラーとなります。しかし、Pythonではそういった宣言は不要となります。値を代入すると、xが勝手に整数型であると定義するようになります。
その代わり、型の変換を自動で行うためその分の処理に時間がかかり、処理速度は他の言語と比較すると劣る部分もあります。
##変数を用いてプログラミングを行う
では実際に変数を用いてPythonプログラムを書いていきましょう。
Pythonコンソールから以下のプログラムを入力してみてください。
>>> num1 = 20
>>> num2 = 30
そうすると、実行結果は何も表示されませんが、実際には値は代入されています。(値にnum1とnum2それぞれタグがつけられています)
次に以下を入力すると「20」「30」という値が表示されると思います。
>>> num1
20
>>> num2
30
また、変数を用いて加減乗除を行います。以下のように入力して計算結果を確認できます。
>>> num1 + num2
50
>>> num1 - num2
-10
>>> num1 * num2
600
>>> num1 / num2
0.6666666666666666
なお、変数名は今回はnum1, num2という名前を使用しましたが、実際には自分で作成した名前でも問題ありません。
(予約語と言っていくつか使用できない変数名もあります。詳細は調べてみてください。)
##代入演算子について
Pythonコンソールから以下のコードを入力してみてください。
>>> num = 10
>>> num
10
先ほど説明した通り、これはnumという変数に10を代入していることになります。それを表示して10という数値を出力させています。
では、次に以下のコードを入力してみてください。
>>> num = num + 1
その状態で、numの内容を表示してください。すると以下の表示になると思います。
>>> num
11
まず、num = num + 1という式ですが、数学的に考えると成り立っていない等式となります。
ただし、Pythonプログラムの世界では「等しい」ではなく、num+1を計算した結果にnumというラベルを付けている状態です。以下のように考えるとわかりやすいでしょう。
num ← num + 1
(numに1を足した結果をnumに代入する)
さらに、この表示は以下のようにしても計算されます。コードを入力してみてください。
>>> num += 1
その状態で、numの内容を表示してください。すると以下の表示になると思います。
>>> num
12
num += 1はnum = num + 1と同じ計算をしたことになります。
今は加算で説明しましたが、減算や掛け算、割り算でも同じことができますので試してみてください。
>>> num -= 3
>>> num
9
これはnum = num - 3を計算したのと同じことになります。
このように、
変数名 = 変数名 演算子 値や変数名 演算子= 値と記載したものを代入演算子と言います。
後述する、制御構文(ループ文など)で必ず出てくるものとなります。ぜひ押さえてください。
##最後に
今回は、基礎的な演算や変数の取り扱いについて学びました。
演算子については、算術演算子と代入演算子を紹介しました。
代入演算子は後述する制御構文などにもよく登場するものとなりますので、しっかり身に着けてください。
###【目次リンク】へ戻る