Pythonは、人工知能や機械学習、科学計算において、特に強みのあるプログラミング言語です。そのため、他の言語と比べて、より複雑な計算を、より簡単に行えるようになっています。
ここでは、そんな Python の入門編の1つとして、数値計算と、それに必要な基礎知識を解説していきます。
また、先にお伝えしておくと、Python 3 と Python 2 では数値の扱いが異なります。特に割り算の扱いが全く違いますので、しっかりと理解しておく必要があります。
当記事内では、そこについても触れながら解説を進めておりますので、ぜひ、初心者の方は、しっかりとお読み頂ければと思います。
それでは早速見ていきましょう。
1. Pythonにおける数値の種類
Pythonでは、数値の「型」は、以下の 3 つあります(型については「Pythonの型とは | 確認と変換の方法」で解説しています)。
- 整数:int型 ( integer の略)
- 浮動小数点数:float型( floating point number の略)
- 複素数:complex型( complex number の略)
あまり難しく考えずに、単純に、「Pythonには3つの数値のタイプ(型)があるんだな」ということを知っておけば十分です。
「整数」は、正の数字も負の数字も含みます。例えば、2 も -2 も整数 (int型) です。「浮動小数点」は、2.0 や -2.1, 3/7 のように小数点を持つ数字のことです。重要な点として、Pythonでは、4E2(4 × 10*2) のような数字も浮動小数点数として扱われます。
扱う機会がある人は限られているとは思いますが、 3j や 1 + 2.3j のような数字は「複素数 (complex型)です。」
それぞれ、例を以下の表に記しておきます。
種類 | 例 |
整数(int型) | 1, 2, -10, 1000, 1+2, 10*5 |
浮動小数点数(float型) | 1.2, -0.5, 3/7, 3E2, 2.0*5 |
複素数(complex型) | 3j, 1+5.4j, 3.6+12j |
それでは、基本的な計算方法を見ていきましょう。
2. Pythonの数値計算
Pythonで数値計算を行うには、以下の表のような演算子を使います。演算子については、「Pythonの演算子の一覧と分かりやすい解説」をご覧ください。
演算子 | 例 | 説明 |
+ | a + b | 足し算 |
– | a – b | 引き算 |
* | a*b | 掛け算 |
/ | a/b | 割り算 |
// | a//b | aをbで割った商の整数値 |
% | a%b | aをbで割った時の割り切れなかった余り |
** | a**n | aをn回掛けた数(べき乗) |
それでは見ていきましょう。
2.1. 足し算、引き算、掛け算、割り算
以下に、足し算、引き算、掛け算、割り算で、それぞれの値を入力した時に、Pythonでどのように出力されるかを示しています。
“In”がPythonに記述した内容で、”Out”がそれを出力したものです。
足し算
#足し算
2 + 1
引き算
#引き算
2 - 1
掛け算
掛け算には「アスタリスク (*) 」を使います。
#掛け算
2*2
割り算
割り算には「スラッシュ (/) 」を使います。
#割り算
3/2
ご覧のように、小学校の算数で習ったのと同じ計算結果が出力されます。
重要!Python2 と Python3 の割り算の違い
割り算の扱いは、Python 3 と Python 2 で異なるので、注意が必要です。
実は、Python 2 では割り算の計算のときに、小数点以下は切り捨てられるようになっています。「四捨五入」ではなく「切り捨て」です。つまり、Python 2 では、”3/2 = 1″ と出力されます。しかし、Python3では、この点が変更されて、”3/2=1.5″と出力されるようになりました。
それでは Python 2 で割り算を行う時は、どうすれば良いのでしょうか?
2つの方法があります。
1つ目は、割り算のどちらかの数字を小数点以下まで記述する方法です。そうすると、Python 2 でも、正常に割り算を行ってくれます。
#どちらか一方の数字を小数点以下まで記述する
3.0/2
#どちらの数字を変えても大丈夫です
3/2.0
2つ目は、float() 関数を使う方法です。以下をご覧ください。
#float()関数を使って整数を浮動小数点として扱うことができます
float(3)/2
関数については、ここではまだ詳しく覚える必要はありません。おいおい、詳しく解説していきますのでご安心ください。
と言いつつ、もう一つプログラミング中級者以上の知識を先取りしておきたいと思います。Python 2とPython 3の割り算の扱いに関する問題は、”future”というモジュールを使うことで回避することもできます。
“future”は、Python3のfunctionをPython2にインポートする時に使うモジュールです。モジュールについても、今後詳しく解説していきますので、ここでは「こういうものがあるんだな」と触れておくだけで大丈夫です。
from __future__ import division
3/2
これは、Python3の機能をインポートしたので、Python3の計算結果が表示されているとお考えください。こうしたことができることを知っておけば、Python 2 からPython 3 に移行するときの問題に悩まされることが少なくなります。
2.2. 乗数、平方根、組み合わせ計算
それでは、基本的な算術に戻りましょう。以下に、乗数と平方根、組み合わせ計算を記載しています。
乗数
乗数の計算は、アスタリスクを2個続けて、「**」とします。
#乗数
2**3
平方根(ルート計算)
平方根の計算もアスタリスクを2個続けて行います。
#平方根(ルート計算)もこの方法で可能です
4**0.5
組み合わせ計算
#計算の順番は小学校の算数と同じです
2 + 10 * 10 +3
#括弧を使うと計算順を指定できます
(2 + 10)*(10+3)
特につまずくようなところはないと思います。
3. 数値を変数に代入する
数値には、変数を与えることが可能です。
「変数」とは、あるデータを、必要な時にいつでも簡単に利用できるようにするために、そのデータに名前を与えたものです。詳しくは、「Pythonの変数の基礎」をご覧ください。
数値に変数を与えることを、「変数に数値を代入する」といいます。
3.1. 「+」演算子を使って代入
変数に数値を代入するには「=」演算子を使います。
それでは、以下をご覧ください。
#"a"という変数に数字の5を代入します。
a = 5
これで、Python は 変数「a」を数字の 5 として扱うようになります。次の例をご覧ください。
a + a
「a + a」 は 「5 + 5」なので「10」になりますね。
3.2. 変数に数値を再代入すると上書きされる
変数「a」に、再度、別の数値を代入すれば、Python はその変数を上書きします。
#aに違う数字を再代入します
a = 10
#確認しましょう
a
このようにPythonでは、同じ変数に、違う数値を再代入することができます。再代入は、その変数そのものを使って行うこともできます。以下をご覧ください。
# a = a + aであると再代入します
a = a + a
#確認しましょう
a
3.3. 変数名のつけ方のルール
なお変数名のつけ方には、以下のルールがあります。
- 名前は数字で始めることはできない。
- 名前の文字列にスペースを含めることはできないので、代わりに”_”を使う。
- :'”,<>/?\()!@#$%&*~-+^は使えない。
- 名前は小文字にするのが良いとされている。
3.4. 変数を使って計算する
なお、Pythonでは変数名を使いこなせるようになると非常に便利です。以下の例をご覧ください。
#変数名を使いこなすとコードを書くときに混乱することが少なくなります
my_income = 100
tax_rate = 0.1
my_taxes = my_income*tax_rate
#私の税金はいくらになるでしょうか?
my_taxes
4. まとめ
いかがだったでしょうか。以下の4つについては、特にしっかりと理解しておきましょう。
- Pythonにおける数字の種類。
- Pythonを使った四則演算。
- Python 3 と Python 2 の割り算の扱いの違い。
- 変数に数値を代入する方法。
「Pythonは思っていたより簡単だ」と感じて頂けていたらと思います。実際、プログラミングは難しいものではありません。
コメント