calendarcodediamondfacebookfingerglobalgoogleplushatenahomepagetopplainpocketrssservicetwitterwordpresshome2searchfoldernext-arrowback-arrowfirst-arrowlast-arrow

Python : 数値型の基本操作編(演算、累算代入演算子、組み込み関数など)

このページでは Python で使われる数値の基本操作方法を網羅的に述べる。

エンジニア速報は Twitter の@commteで 1 日 5 回配信しています。

Sponsored Link

目次

数値のポイント

  • 四則演算などがサポートされている
  • 数値型は不変な型なので、演算結果は常に新しいオブジェクトとして返される
  • 組み込みの数値型は 3 つある

組み込みの数値型は数値を書くだけで値を作成できる。これを数値リテラルという。数値リテラルには、整数を扱う int 型、浮動小数点を扱う float 型、複素数を扱う complex 型の 3 つがある。これについては後述する。

整数の演算

次の表に示すのは整数の基本的な演算方法である。

演算子 意味 結果
+ 加算 1 + 2 3
- 減算 100 - 10 90
* 乗算 3 * 5 15
/ 浮動小数点の除算 7 / 2 3.5
// 整数の除算(切り捨て) 7 // 2 3
% 剰余 7 % 3 1
** べき乗 3 ** 4 81

整数を整数で割るときも、/ を使うと、浮動小数点で返される。プレフィックスで基数を指定しない限り、10 進と見なされる。

9 / 5 # 1.8

整数と小数の差は小数となり、整数どうしの商は小数になる。

print(1 + 2) # 3(整数どうしの和は整数) print(1 - 2.0) # -1.0(整数と小数の差は小数) print(1.0 * 2j) # 2j(小数と複素数の積は複素数) print(1 / 1) # 1.0(整数どうしの商は小数)
7**2 # 49 7/2 # 3.5 7/1 # 7.0 7//1 # 7 # // は、整除 7%2 # 1 # ピタゴラスの定理 x = 3 y = 4 z = 5 n = 2 x**n + y**n == z**n # True # フェルマーの定理 from math import sqrt x = 10 y = 6 n = 4 z = x**n+y**n sqrt(z) # 106.28264204469139 type(sqrt(z)) == int # False

整数と浮動小数点を計算すると、整数値が浮動小数点数値にキャストされる。

50 + 3. # 53.0

ブール値の False は 0(0.0)、True は 1(1.0) として扱われる。

True + 2 # 3 False + 2.0 # 2.0

累算代入演算子

= の前に算術演算子を入れると、演算と代入を結合できる。左辺の値と右辺の値を計算した結果が左辺に代入される。代入文と 2 項演算が複合した演算子。

a = 10 b = 3 a += b a # 13
a = 10 b = 3 a %= b a # 1
a = 10 b = 3 a **= b a # 1000

カンマ

カンマをつけるとタプルになる。

1,000,000 # (1, 0, 0)

アンダースコア

数字のセパレータをアンダースコアにすると数値が表示される。アンダースコアは無視される。

1_000_000 # 1000000 1_2_3 # 123

ゼロで割る

除算でも、ゼロで割ると例外が発生する。

3 / 0 # ZeroDivisionError 3 // 0 # ZeroDivisionError

組み込み関数

Python では、組み込みの数値型は 3 つある。

  • int:整数を扱う
  • float:浮動小数点
  • complex:複素数

int()

数値型の値は、組み込み関数の int(),float(),complex() を使っても値を生成できる。

Python の整数以外のデータ型を整数に変換するには int() 関数を使う。int 型どうしの演算結果は、割り算では float 型、それ以外は int 型になる。

5 / 1 # 5.0 a = int(1) a # 1 int('1') # 1

浮動小数点を整数に変換すると、小数点以下が切り捨てられる。

int(2.9) # 2

小数点を含む文字列は処理できない。

int('1.0') # ValueError: invalid literal for int() with base 10: '1.0'

float()

整数を浮動小数点に変換する。float 型どうしの演算は float 型になる。数値として扱えない NaN も float 型として扱われる。

1.0 + 4.0 # 5.0 type(1.0) # float type(float('nan')) # float float(2.0) # 2.0

complex()

complex()型は、複素数を扱う型である。数値リテラルに、j もしくは J を付けると定義できる。complex()どうしの演算は complex 型になる。

complex(1) # (1+0j) type(complex(1 + 2j)) # complex complex(1 + 2j) + 3j # (1+5j) type(complex(1 + 2j) + 3j) # complex

bool()

bool()関数は整数に対応するブール値を返す。ゼロは偽、ゼロ以外は真となる。なお、無限大は真となる。

bool(0) # False bool(1) # Ture bool(-1) # True bool(float('-inf')) # 無限大は真 # True

divmod()

divmod() を使えば、商と剰余を同時に出力することができる。

divmod(14, 5) # (2, 4)

round()

round()は、第一引数の値を第二引数の桁数で丸める。最も近い整数に丸めて返す。丸めとは、数値の端数を処理して、指定した丸め幅の整数倍の数値に置き換えることである。Python では、四捨五入ではなく偶数丸めになる。

round(21.5) # 22 n = 7 * 0.9 round(n) # 6 round(0.5) # 0 round(1.5) # 2 round(2.5) # 2 round(3.5) # 4 round(4.5) # 4

floor()

floor(x) は x 以下の最大の整数を返す。floor 関数は math モジュールが入っているので、import して使う。

import math math.floor(21.5) # 21

ceil()

math モジュールには、floor とは反対の動きをする ceil 関数がある。ceil 関数は、指定の数値以上の最小の整数を返す。

import math math.ceil(21.5) # 22

sqrt()

sqrt は平方根を返す。from import を指定した後は、モジュール名を書かなくてもモジュールに入っている関数を使えるようになる。

import math math.sqrt(9) # 3.0 from math import sqrt sqrt(9) # 3.0

Python おすすめ本

スポンサード リンク

Comments

Leave a Comment

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください