今回は算術演算の一つであるPythonの除算演算を取り上げます。
Pythonの除算演算を始めるにあたって
Pythonには、算術演算を行うための様々な演算子や関数が組み込まれています。
float’ と ‘int’ の両方のデータ型に対して除算を行うには、 '/' 演算子 を使用します。
Pythonの’/’演算子の優れた点は、この演算子が10進数やマイナスの値も扱えることです。
構文は以下の様な感じです。
number1 / number2
|
この演算子は、数値に対して演算を行い、結果として浮動小数点値を返します。
除算の結果は、演算の商となり、浮動小数点値として表現されます。
例として以下の様になります。
a = input("Enter the value for a:")
b = input("Enter the value of b:")
res = int(a)/int(b)
print(res)
|
結果は、以下の通りになります。
Enter the value for a:10
Enter the value of b:2
5.0 |
例2:
a = -10
b = 20
res = a/b
print(res)
|
結果を出力すると、以下の様になります。
-0.5
|
タプルに対するPythonの除算演算
Python の floordiv() メソッド は map() 関数 と共に、Tuple データ構造に格納された様々なデータに対して除算処理を行うために使用することができます。
Python の floordiv() メソッド は、データ構造内に存在するすべての要素に対して除算処理を行うために使用されます。
さらに、Python map()関数は、タプルやリストなどの反復記号の集合に、渡された/与えられた関数や操作を適用します。
構文は以下の様な感じです。
tuple(map(floordiv, tuple1, tuple2))
|
floordiv() メソッドは整数の除算を行う。
つまり、要素を分割し、商の整数部分のみを返し、小数部分をスキップします。
例えば、以下の様になります。
from operator import floordiv
inp_tup1 = (10,16,9,-4)
inp_tup2 = (2,-8,4,4)
tup_div = tuple(map(floordiv, inp_tup1, inp_tup2))
print("Resultant tuple after performing division operation : " + str(tup_div))
|
結果は、以下の通りになります。
Resultant tuple after performing division operation : (5, -2, 2, -1)
|
この記事もチェック:Pythonのsample関数を使ってリストからランダムに要素を抽出する方法
Dictに対するPythonの除算演算
Python の除算は、‘//’ 演算子とともに Counter() 関数を使用して辞書に存在する要素に対して実行することができます。
Counter()関数は、辞書のキーとなるデータをdictのキーとして格納し、dictの要素の数を関連する値として格納します。
演算子 ‘//’ は、データ要素に対して整数レベルの除算を行う。
構文は以下の様な感じです。
Counter({key : dict1[key] // dict2[key] for key in dict1})
|
例えば、以下の様になります。
from collections import Counter
inp_dict1 = {'Python': 100, 'Java': 40, 'C': 36}
inp_dict2 = {'Python': 20, 'Java': -10, 'C': 8}
inp_dict1 = Counter(inp_dict1)
inp_dict2 = Counter(inp_dict2)
dict_div = Counter({key : inp_dict1[key] // inp_dict2[key] for key in inp_dict1})
print("Resultant dict after performing division operation : " + str(dict(dict_div)))
|
上の例では、Counter() 関数を使って入力 dict のキーと値のペアを保存しています。
このとき、入力 dict にはキーが dict の要素、値が dict に含まれる要素の数として格納されます。
さらに、そのキーを「//」演算子に渡して除算処理を行います。
出力は
Resultant dict after performing division operation : {'Python': 5, 'Java': -4, 'C': 4}
|
Python ‘/’ と Python ‘//’ の除算演算子の違い
基本的な、そしておそらく唯一の違いは、`’/’ 演算子は除算の結果として float 値を返すということです。
一方、`’//’ 除算演算子は、除算の結果として整数値を返します。
つまり、商の値のうち整数部分のみを返します。
例えば、以下の様になります。
print(10/3)
print(10//3)
|
結果は、以下の通りになります。
3.33333333333333353 |
まとめ
以上、今回はPythonで除算を行う方法について理解しました。