前書き
数字はプログラミングでは非常に一般的です。 これらは、画面サイズの寸法、地理的位置、お金とポイント、ビデオを通過する時間、ゲームアバターの位置、数値コードの割り当てによる色などを表すために使用されます。
プログラミングで数学的操作を効果的に実行できることは、数字を使用する頻度のために開発する重要なスキルです。 数学の高度な理解は確かに優れたプログラマーになるのに役立ちますが、それは前提条件ではありません。 数学のバックグラウンドがない場合は、数学を、達成したいことを達成するためのツールとして、また論理的思考を改善する方法として考えてみてください。
Pythonで最も使用されている2つの数値データ型、integersとfloatsを使用します。
このチュートリアルでは、Pythonの数値データ型で使用できる演算子について説明します。
オペレータ
operatorは、操作を示す記号または関数です。 たとえば、数学では、プラス記号または+は加算を示す演算子です。
Pythonでは、数学から引き継がれた使い慣れた演算子がいくつか表示されますが、使用する他の演算子はコンピュータープログラミングに固有のものです。
Pythonの数学関連演算子のクイックリファレンステーブルを次に示します。 このチュートリアルでは、次のすべての操作について説明します。
操作 | それが返すもの |
---|---|
|
|
|
|
|
|
|
|
|
|
xとyの商 |
|
|
|
|
|
|
また、算術演算子と=
演算子を組み合わせた+=
と*=
を含むcompound assignment operatorsについても説明します。
加減
Pythonでは、加算演算子と減算演算子は数学と同じように機能します。 実際、Pythonプログラミング言語を計算機として使用できます。
整数から始めて、いくつかの例を見てみましょう。
print(1 + 5)
Output 6
整数をprint
ステートメントに直接渡す代わりに、整数値を表すように変数を初期化できます。
a = 88
b = 103
print(a + b)
Output191
整数は正と負の両方の数値(および0も)であるため、正の数値に負の数値を追加できます。
c = -36
d = 25
print(c + d)
Output-11
加算はフロートでも同様に動作します。
e = 5.5
f = 2.5
print(e + f)
Output8.0
2つの浮動小数点数を一緒に追加したため、Pythonは小数点以下の桁数を持つ浮動小数点数値を返しました。
減算の構文は加算の構文と同じですが、演算子をプラス記号(+
)からマイナス記号(-
)に変更する点が異なります。
g = 75.67
h = 32
print(g - h)
Output43.67
ここでは、floatから整数を減算しました。 方程式に含まれる数値の少なくとも1つが浮動小数点数である場合、Pythonは浮動小数点数を返します。
単項算術演算
単項数式は1つのコンポーネントまたは要素のみで構成され、Pythonでは、プラス記号とマイナス記号を値と組み合わせた単一の要素として使用して、値のID(+
)を返したり、の符号を変更したりできます。値(-
)。
一般的には使用されませんが、プラス記号は値のIDを示します。 正の値でプラス記号を使用できます。
i = 3.3
print(+i)
Output3.3
負の値を持つプラス記号を使用すると、その値のIDも返されます。この場合、負の値になります。
j = -19
print(+j)
Output-19
負の値の場合、プラス記号は同じ負の値を返します。
または、マイナス記号は値の符号を変更します。 したがって、正の値を渡すと、値の前のマイナス記号が負の値を返すことがわかります。
i = 3.3
print(-i)
Output-3.3
または、負の値を持つ単項マイナス記号演算子を使用すると、正の値が返されます。
j = -19
print(-j)
Output19
プラス記号とマイナス記号で示される単項算術演算は、+i
の場合は値のIDを返すか、-i
の場合は値の反対の符号を返します。
乗算と除算
加算と減算のように、乗算と除算は数学での方法と非常によく似ています。 Pythonで乗算に使用する符号は*
であり、除算に使用する符号は/
です。
Pythonで2つのfloat値を使用して乗算を行う例を次に示します。
k = 100.1
l = 10.1
print(k * l)
Output1011.0099999999999
Python 3で除算すると、2つの整数を使用した場合でも、商は常にfloatとして返されます。
m = 80
n = 5
print(m / n)
Output16.0
これはmajor changes between Python 2 and Python 3の1つです。 Python 3のアプローチは分数の答えを提供するため、/
を使用して11
を2
で除算すると、5.5
の商が返されます。 Python 2では、式11 / 2
に対して返される商は5
です。
Python 2の/
演算子はfloor divisionを実行します。ここで、商x
の場合、返される数値はx
以下の最大の整数です。 上記のprint(80 / 5)
の例をPython3ではなくPython2で実行すると、小数点以下の桁数のない出力として16
が返されます。
Python 3では、//
を使用してフロア分割を実行できます。 式100 // 40
は、2
の値を返します。 床除算は、商を整数にする必要がある場合に役立ちます。
モジュロ
%
演算子はモジュロであり、除算後の商ではなく剰余を返します。 これは、たとえば、同じ数の倍数である数を見つけるのに役立ちます。
実際のモジュロを見てみましょう:
o = 85
p = 15
print(o % p)
Output10
これを分解するには、85を15で除算すると、商5と商10が返されます。 モジュロ演算子は除算式の余りを返すため、値10
がここに返されます。
モジュロで2つの浮動小数点を使用すると、残りの浮動小数点値が返されます。
q = 36.0
r = 6.0
print(o % p)
Output0.0
36.0を6.0で割った場合、余りがないため、0.0
の値が返されます。
力
Pythonの**
演算子は、左側の数値を右側の指数の累乗で累乗するために使用されます。 つまり、式5 ** 3
では、5が3乗されています。 数学では、この表現が5³としてレンダリングされることがよくあります。実際に行われているのは、5が3倍になることです。 Pythonでは、5 ** 3
または5 * 5 * 5
のいずれかを実行することで、125
と同じ結果が得られます。
変数を使用した例を見てみましょう。
s = 52.25
t = 7
print(s ** t)
1063173305051.292
**
演算子を使用してfloat52.25
を7
の累乗に上げると、大きなfloat値が返されます。
演算子の優先順位
Pythonでは、数学のように、演算子は左から右または右から左ではなく優先順位の順に評価されることに留意する必要があります。
次の式を見ると:
u = 10 + 10 * 5
左から右に読むこともできますが、乗算が最初に行われることを忘れないでください。したがって、print(u)
を呼び出すと、次の値が返されます。
Output60
これは、10 * 5
が50
に評価され、10
を追加して、最終結果として60
を返すためです。
代わりに、値10
を10
に追加し、その合計に5
を掛けたい場合は、数学の場合と同じように括弧を使用できます。
u = (10 + 10) * 5
print(u)
Output100
操作の順序を覚えておく1つの方法は、頭字語PEMDASを使用することです。
注文 | 文字 | を意味する |
---|---|---|
1 |
P |
Parentheses |
2 |
E |
Exponent |
3 |
M |
Multiplication |
4 |
D |
Division |
5 |
A |
Addition |
6 |
S |
S減算 |
BEDMASやBODMASなど、演算の順序の別の頭字語に精通している場合があります。 頭字語が最適な場合は、Pythonで算術演算を実行するときに念頭に置いて、期待する結果が返されるようにしてください。
割り当て演算子
最も一般的な代入演算子は、すでに使用している演算子です。等号=
です。 =
代入演算子は、右側の値を左側の変数に割り当てます。 たとえば、v = 23
は、整数23
の値を変数v
に割り当てます。
プログラミング時には、変数の値に対して操作を実行し、結果の新しい値をその変数に割り当てる複合代入演算子を使用するのが一般的です。 これらの複合演算子は、算術演算子と=
演算子を組み合わせているため、さらに+` with `+=+` to get the compound operator `=+
を組み合わせます。 それがどのように見えるか見てみましょう:
w = 5
w += 1
print(w)
Output6
まず、変数w
を5
の値に等しく設定し、次に+=
複合代入演算子を使用して、左側の変数and thenの値に右側の数値を追加しました。 ■結果をw
に割り当てます。
複合代入演算子は、for loopsの場合に頻繁に使用されます。これは、プロセスを複数回繰り返す場合に使用します。
for x in range (0, 7):
x *= 2
print(x)
Output0
2
4
6
8
10
12
forループを使用すると、変数w
に数値2
を掛けて、その結果を変数w
に割り当てる*=
演算子のプロセスを自動化できました。 forループの次の反復のために。
Pythonには、このチュートリアルで説明した算術演算子ごとに複合代入演算子があります。
y += 1 # add then assign value
y -= 1 # subtract then assign value
y *= 2 # multiply then assign value
y /= 3 # divide then assign value
y // = 5 # floor divide then assign value
y **= 2 # increase to the power of then assign value
y %= 3 # return remainder then assign value
複合代入演算子は、物事を段階的に増減する必要がある場合、またはプログラムの特定のプロセスを自動化する必要がある場合に役立ちます。
結論
このチュートリアルでは、整数データ型と浮動数値データ型で使用する多くの演算子について説明しました。 Pythonで数値について読み続けたい場合は、Built-in Python 3 Functions for Working with Numbersに進むことができます。
他のデータ型の詳細については、Understanding Data Types in Python 3を参照し、How To Convert Data Types in Python 3を読み取ってデータ型を変換する方法を学習してください。