Pythonで数値計算をマスター!初心者にもわかりやすい基本的な演算子の使い方やテクニック

Pythonでの数値型の基礎と演算子の使い方

Pythonで数値型を使うと、数値を扱うプログラムを書くことができます。本記事では、数値型の基礎的な使い方について説明します。また、数値型に対する四則演算やビット演算、文字列との演算、ブール値の使い方についても解説します。Pythonのバージョンは3系を前提としています。

数値と数値リテラルの基礎

Pythonでは、整数、浮動小数点数、複素数の3つの数値型があります。それぞれの型に対するリテラルの書き方は以下の通りです。

以下は、各数値型に対する演算の例です。

# 整数
a = 10
b = 3
print(a + b)  # 13
print(a - b)  # 7
print(a * b)  # 30
print(a / b)  # 3.3333333333333335
print(a // b)  # 3 (切り捨て除算)
print(a % b)  # 1 (余り)
print(a ** b)  # 1000 (べき乗)

# 浮動小数点数
a = 3.14
b = 2.71
print(a + b)  # 5.85
print(a - b)  # 0.43
print(a * b)  # 8.5094
print(a / b)  # 1.1592592592592592

# 複素数
a = 1 + 2j
b = 2
print(a + b)  # (3+2j)
print(a - b)  # (-1+2j)
print(a * b)  # (2+4j)
print(a / b)  # (0.5+1j)

数値の演算子の基礎

Pythonの数値型には、以下のような四則演算子があります。

数値型リテラルの書き方
整数10, 0b1010(2進数), 0o12(8進数), 0xa(16進数)
浮動小数点数3.14, 314e-2
複素数1+2j, 1.5-2.5j
数値型と書き方の例

以下は、四則演算の例です。

a = 10
b = 3
print(a + b)  # 13
print(a - b)  # 7
print(a * b)  # 30
print(a / b)  # 3.3333333333333335
print(a // b)  # 3 (切り捨て除算)
print(a % b)  # 1 (余り)
print(a ** b)  # 1000 (べき乗)

ここでは演算子を用いた四捨五入について絞って解説しています。記事後半では更に便利な四捨五入、切り上げ、切り捨てやPythonの偶数丸めについて解説しているのでそちらも参考にしてください。

演算子の優先順位

演算子の優先順位と結合規則は、以下のようになっています。

優先順位演算子記号
1()
2**
3*, /, //, %
4+, –
演算子の優先順位

以下は、演算子の優先順位を誤った場合の例です。

a = 10
b = 3
c = 2
print(a + b * c)  # 16 (3 * 2 = 6, 10 + 6 = 16)
print((a + b) * c)  # 26 (10 + 3 = 13, 13 * 2 = 26)

ビット演算と演算子

ビット演算とは、2進数においてビット単位での演算を行うことです。Pythonには、以下のようなビット演算子があります。

演算子記号説明
AND&2つの数値のビットごとのANDを計算する
OR|2つの数値のビットごとのORを計算する
XOR^2つの数値のビットごとの排他的ORを計算する
NOT~1つの数値のビットごとのNOTを計算する
左シフト<<数値のビット
ビット演算子とその説明

文字列を数値に変換して数値と演算する

文字列を数値に変換するには、int()float()関数を使います。

a = "10"
b = "3.14"
c = "3+4j"
print(int(a) + 5)  # 15
print(float(b) - 1)  # 2.1400000000000006
print(complex(c) * 2)  # (6+8j)

ただし、変換できない文字列を渡すと、ValueErrorが発生します。

a = "abc"
print(int(a))  # ValueError

ブール値(True、False)の使い方

Pythonには、ブール値としてTrueFalseがあります。以下は、ブール値を使った演算の例です。

a = True
b = False
print(a and b)  # False
print(a or b)  # True
print(not a)  # False

ブール値は、比較演算子を使って値を比較する際にもよく使われます。以下は、比較演算子を使ったブール値の例です。

a = 10
b = 3
print(a > b)  # True
print(a < b)  # False
print(a == b)  # False
print(a != b)  # True

その他の数値演算

ルート(平方根)計算

数値の平方根を計算するには、mathモジュールのsqrt()関数を使用します。

import math

# 整数
a = 16
print(math.sqrt(a)) # 4.0

# 浮動小数点数
a = 2.5
print(math.sqrt(a)) # 1.5811388300841898

以下の記事でさらにルート計算(平方根)について掘り下げているので参考にしてみてください。

Pythonルート(平方根)について徹底解説

絶対値

数値の絶対値を計算するには、組み込み関数のabs()を使用します。

# 整数
a = -10
print(abs(a)) # 10

# 浮動小数点数
a = -2.5
print(abs(a)) # 2.5

累乗計算

数値の累乗を計算するには、組み込み関数のpow()を使用します。

# 整数
a = 2
b = 3
print(pow(a, b)) # 8

# 浮動小数点数
a = 2.5
b = 2
print(pow(a, b)) # 6.25

累乗計算には**演算子を使った方法もあります。もっと深く理解したい場合は以下の記事で解説しているので参考にしてみてください。

Pythonで累乗計算

四捨五入

数値の四捨五入を計算するには、組み込み関数のround()を使用します。

# 整数
a = 10
b = 3
print(round(a/b)) # 3

# 浮動小数点数
a = 3.14159
print(round(a, 2)) # 3.14

切り上げに関する関数

数値を切り上げるには、mathモジュールのceil()関数を使用します。以下は、ceil()関数を使用した例です。

import math

# 整数
a = 10
b = 3
print(math.ceil(a/b)) # 4

# 浮動小数点数
a = 3.14159
print(math.ceil(a)) # 4

切り捨てに関する関数

数値を切り捨てるには、mathモジュールのfloor()関数を使用します。以下は、floor()関数を使用した例です。

import math

# 整数
a = 10
b = 3
print(math.floor(a/b)) # 3

# 浮動小数点数
a = 3.14159
print(math.floor(a)) # 3

丸めに関する関数

数値を丸めるには、組み込み関数のround()を使用しますが、mathモジュールにはround()関数の小数点以下の桁数を指定することができる関数が用意されています。

import math

# 整数
a = 10
b = 3
print(round(a/b)) # 3

# 浮動小数点数
a = 3.14159
print(round(a, 2)) # 3.14

# round()関数の小数点以下の桁数を指定することもできる
print(math.trunc(a*100)/100) # 3.14

また、mathモジュールには、小数点以下の桁数を指定せずに数値を丸める関数として、math.floor()やmath.ceil()のような切り捨てや切り上げを行う関数が用意されています。

import math

# round()関数と同じような丸め方をする関数
print(math.floor(3.49 + 0.5)) # 3
print(math.floor(3.50 + 0.5)) # 4
print(math.floor(3.51 + 0.5)) # 4
print(math.floor(-3.49 + 0.5)) # -3
print(math.floor(-3.50 + 0.5)) # -4
print(math.floor(-3.51 + 0.5)) # -4

# round()関数と同じような丸め方をする関数
print(math.ceil(3.49 - 0.5)) # 3
print(math.ceil(3.50 - 0.5)) # 4
print(math.ceil(3.51 - 0.5)) # 4
print(math.ceil(-3.49 - 0.5)) # -3
print(math.ceil(-3.50 - 0.5)) # -3
print(math.ceil(-3.51 - 0.5)) # -4

まとめ

本記事では、Pythonで数値型を扱う基本的な方法について解説しました。数値リテラル、四則演算、ビット演算、文字列を数値に変換する方法、ブール値の使い方について学びました。Pythonを使って数値を扱う場合は、この記事で紹介した知識を活用してみてください。

コメント

タイトルとURLをコピーしました