> ⑨Pythonの数値 – ネットワークエンジニアチュートリアル

⑨Pythonの数値

スポンサーリンク

無料でプログラマへ!30歳までなら無料でプログラミング学校に通うことが出来ます。下の画像をクリックして無料相談会でGO!

Pythonの数値

数値データ型は数値を格納します。これらは不変のデータ型です。つまり、数値データ型の値を変更すると、新しく割り当てられたオブジェクトになります。

Numberオブジェクトは、値を代入すると作成されます。たとえば –

var1 = 1
var2 = 10

また、delステートメントを使用して数値オブジェクトへの参照を削除することもできます。delステートメントの構文は次のとおりです。

del var1[,var2[,var3[....,varN]]]]

delステートメントを使用すると、単一のオブジェクトまたは複数のオブジェクトを削除できます。例えば:

del var
del var_a, var_b

Pythonは4つの異なる数値型をサポートしています –

  • int(符号付き整数):通常は整数または整数と呼ばれ、小数点がない正または負の整数です。
  • long(long integer)longとも呼ばれ、整数のように書かれ、その後に大文字または小文字のLが続く無制限の整数です。
  • float(浮動小数点実数)浮動小数点とも呼ばれ、実数を表し、整数部分と小数部分を分ける小数点で書かれます。浮動小数点数は、Eまたはeが10の累乗を示す(2.5e2 = 2.5 x 10 2 = 250)という科学記法でもよい。
  • complex (複素数):a + bJの形式で、aとbは浮動小数点であり、J(またはj)は-1の平方根(虚数)を表します。数の実数部はaであり、虚数部はbである。複素数は、Pythonプログラミングではあまり使われません。

数字の例をいくつか挙げます

int
long
float
complex
10 51924361L 0.0 3.14j
100 -0x19323L 15.20 45.j
-786 0122L -21.9 9.322e-36j
080 0xDEFABCECBDAECBFBAEL 32.3 + e18 .876j
-0490 535633629843L -90。 -.6545 + 0J
-0x260 -052318172735L -32.54e100 3e + 26J
0x69 -4721885298529L 70.2-E12 4.53e-7j
  • Pythonでは、小文字のLを使うことができますが、数字1との混同を避けるために大文字のLだけを使うことをお勧めします。
  • 複素数は、a + bjで示される実数浮動小数点数の順序付きペアから成ります。ここで、aは実数部、bは複素数の虚数部です。

数値型変換

Pythonは、混合型を含む式の内部で数値を評価用の共通型に変換します。しかし、オペレータまたは関数パラメータの要件を満たすために、あるタイプから別のタイプへ明示的に番号を強制する必要がある場合があります。

  • xを平易な整数に変換するには、int(x)と入力します。
  • xを長整数に変換するにはlong(x)と入力します。
  • xを浮動小数点数に変換するにはfloat(x)と入力します。
  • 複素数(x)を入力して、xを実数部xと虚数部ゼロの複素数に変換します。
  • xとyを実数部xと虚数部yを持つ複素数に変換するには、complex(x、y)と入力します。xとyは数値式です

数学関数

Pythonには、数学的計算を実行する次の関数が含まれています。

関数 返品(説明)
abs(x) xの絶対値:xとゼロとの間の(正の)距離。

次の例は、abs()メソッドの使用法を示しています。

#!/usr/bin/python

print "abs(-45) : ", abs(-45)
print "abs(100.12) : ", abs(100.12)
print "abs(119L) : ", abs(119L)

上記のプログラムを実行すると、このようになります

abs(-45) :  45
abs(100.12) :  100.12
abs(119L) :  119
ceil(x) xのceil:x以上の最小の整数

!/usr/bin/python
import math   # This will import math module

print "math.ceil(-45.17) : ", math.ceil(-45.17)
print "math.ceil(100.12) : ", math.ceil(100.12)
print "math.ceil(100.72) : ", math.ceil(100.72)
print "math.ceil(119L) : ", math.ceil(119L)
print "math.ceil(math.pi) : ", math.ceil(math.pi)

上記のプログラムを実行すると、このようになります

math.ceil(-45.17) :  -45.0
math.ceil(100.12) :  101.0
math.ceil(100.72) :  101.0
math.ceil(119L) :  119.0
math.ceil(math.pi) : 4.0
cmp(x、y) x <yの場合は-1、x == yの場合は0、x> yの場合は1

#!/usr/bin/python

print "cmp(80, 100) : ", cmp(80, 100)
print "cmp(180, 100) : ", cmp(180, 100)
print "cmp(-80, 100) : ", cmp(-80, 100)
print "cmp(80, -100) : ", cmp(80, -100)

上記のプログラムを実行するとこのようになります

cmp(80, 100) :  -1
cmp(180, 100) :  1
cmp(-80, 100) :  -1
cmp(80, -100) :  1
exp(x) x:e xの指数関数

#!/usr/bin/python
import math   # This will import math module

print "math.exp(-45.17) : ", math.exp(-45.17)
print "math.exp(100.12) : ", math.exp(100.12)
print "math.exp(100.72) : ", math.exp(100.72)
print "math.exp(119L) : ", math.exp(119L)
print "math.exp(math.pi) : ", math.exp(math.pi)

上記のプログラムを実行するとこのようになります。

math.exp(-45.17) :  2.41500621326e-20
math.exp(100.12) :  3.03084361407e+43
math.exp(100.72) :  5.52255713025e+43
math.exp(119L) :  4.7978133273e+51
math.exp(math.pi) :  23.1406926328
fabs(x) xの絶対値。

#!/usr/bin/python
import math   # This will import math module

print "math.fabs(-45.17) : ", math.fabs(-45.17)
print "math.fabs(100.12) : ", math.fabs(100.12)
print "math.fabs(100.72) : ", math.fabs(100.72)
print "math.fabs(119L) : ", math.fabs(119L)
print "math.fabs(math.pi) : ", math.fabs(math.pi)

上記のプログラムを実行するとこのようになります。

math.fabs(-45.17) :  45.17
math.fabs(100.12) :  100.12
math.fabs(100.72) :  100.72
math.fabs(119L) :  119.0
math.fabs(math.pi) :  3.14159265359
floor(x) xのfloor:xより大きくない最大の整数

#!/usr/bin/python
import math   # This will import math module

print "math.floor(-45.17) : ", math.floor(-45.17)
print "math.floor(100.12) : ", math.floor(100.12)
print "math.floor(100.72) : ", math.floor(100.72)
print "math.floor(119L) : ", math.floor(119L)
print "math.floor(math.pi) : ", math.floor(math.pi)

上記のプログラムを実行するとこのようになります。

math.floor(-45.17) :  -46.0
math.floor(100.12) :  100.0
math.floor(100.72) :  100.0
math.floor(119L) :  119.0
math.floor(math.pi) :  3.0
log(x) xの自然対数、x> 0

#!/usr/bin/python
import math   # This will import math module

print "math.log(100.12) : ", math.log(100.12)
print "math.log(100.72) : ", math.log(100.72)
print "math.log(119L) : ", math.log(119L)
print "math.log(math.pi) : ", math.log(math.pi)

上記のプログラムを実行するとこのようになります。

math.log(100.12) :  4.60636946656
math.log(100.72) :  4.61234438974
math.log(119L) :  4.77912349311
math.log(math.pi) :  1.14472988585
log10(x) x> 0の場合のxの10の底

#!/usr/bin/python
import math   # This will import math module

print "math.log10(100.12) : ", math.log10(100.12)
print "math.log10(100.72) : ", math.log10(100.72)
print "math.log10(119L) : ", math.log10(119L)
print "math.log10(math.pi) : ", math.log10(math.pi)

上記のプログラムを実行するとこのようになります。

math.log10(100.12) :  2.00052084094
math.log10(100.72) :  2.0031157171
math.log10(119L) :  2.07554696139
math.log10(math.pi) :  0.497149872694

 

max(x1、x2、…) 引数の最大値:正の無限大に最も近い値

#!/usr/bin/python

print "max(80, 100, 1000) : ", max(80, 100, 1000)
print "max(-20, 100, 400) : ", max(-20, 100, 400)
print "max(-80, -20, -10) : ", max(-80, -20, -10)
print "max(0, 100, -400) : ", max(0, 100, -400)

上記のプログラムを実行するとこのようになります。

max(80, 100, 1000) :  1000
max(-20, 100, 400) :  400
max(-80, -20, -10) :  -10
max(0, 100, -400) :  100
min(x1、x2、…) 引数の最小値:負の無限大に最も近い値

#!/usr/bin/python

print "min(80, 100, 1000) : ", min(80, 100, 1000)
print "min(-20, 100, 400) : ", min(-20, 100, 400)
print "min(-80, -20, -10) : ", min(-80, -20, -10)
print "min(0, 100, -400) : ", min(0, 100, -400)

上記のプログラムを実行するとこのようになります。

min(80, 100, 1000) :  80
min(-20, 100, 400) :  -20
min(-80, -20, -10) :  -80
min(0, 100, -400) :  -400
modf(x) 2項目タプルのxの小数部分と整数部分。両方の部分はxと同じ符号を持ちます。整数部分はfloatとして返されます。

#!/usr/bin/python
import math   # This will import math module

print "math.modf(100.12) : ", math.modf(100.12)
print "math.modf(100.72) : ", math.modf(100.72)
print "math.modf(119L) : ", math.modf(119L)
print "math.modf(math.pi) : ", math.modf(math.pi)

上記のプログラムを実行するとこのようになります。

math.modf(100.12) :  (0.12000000000000455, 100.0)
math.modf(100.72) :  (0.71999999999999886, 100.0)
math.modf(119L) :    (0.0, 119.0)
math.modf(math.pi) :  (0.14159265358979312, 3.0)
pow(x、y) x ** yの値。

#!/usr/bin/python
import math   # This will import math module

print "math.pow(100, 2) : ", math.pow(100, 2)
print "math.pow(100, -2) : ", math.pow(100, -2)
print "math.pow(2, 4) : ", math.pow(2, 4)
print "math.pow(3, 0) : ", math.pow(3, 0)

上記のプログラムを実行するとこのようになります。

math.pow(100, 2) :  10000.0
math.pow(100, -2) :  0.0001
math.pow(2, 4) :  16.0
math.pow(3, 0) :  1.0
round(x [、n]) xは小数点からn桁に丸められます。Pythonは、タイブレーカーとしてゼロから丸めます。丸(0.5)は1.0、丸(-0.5)は-1.0です。

#!/usr/bin/python

print "round(80.23456, 2) : ", round(80.23456, 2)
print "round(100.000056, 3) : ", round(100.000056, 3)
print "round(-100.000056, 3) : ", round(-100.000056, 3)

上記のプログラムを実行するとこのようになります。

round(80.23456, 2) :  80.23
round(100.000056, 3) :  100.0
round(-100.000056, 3) :  -100.0
sqrt(x) x> 0のxの平方根

#!/usr/bin/python
import math   # This will import math module

print "math.sqrt(100) : ", math.sqrt(100)
print "math.sqrt(7) : ", math.sqrt(7)
print "math.sqrt(math.pi) : ", math.sqrt(math.pi)

上記のプログラムを実行するとこのようになります。

math.sqrt(100) :  10.0
math.sqrt(7) :  2.64575131106
math.sqrt(math.pi) :  1.77245385091

乱数関数

乱数は、ゲーム、シミュレーション、テスト、セキュリティ、およびプライバシーアプリケーションに使用されます。Pythonには、よく使われる以下の関数が含まれています。

関数 説明
choice(seq) リスト、タプル、または文字列からのランダムな項目。

#!/usr/bin/python
import random

print "choice([1, 2, 3, 5, 9]) : ", random.choice([1, 2, 3, 5, 9])
print "choice('A String') : ", random.choice('A String')

上記のプログラムを実行すると、次の結果が生成されます。

choice([1, 2, 3, 5, 9]) :  2
choice('A String') :  n
randrange([start、] stop [、step]) 範囲からランダムに選択された要素(開始、停止、ステップ)

#!/usr/bin/python
import random

# Select an even number in 100 <= number < 1000
print "randrange(100, 1000, 2) : ", random.randrange(100, 1000, 2)

# Select another number in 100 <= number < 1000
print "randrange(100, 1000, 3) : ", random.randrange(100, 1000, 3)

上記のプログラムを実行すると、次の結果が生成されます。


randrange(100, 1000, 2) :  976
randrange(100, 1000, 3) :  520
random() 0がr以下であり、rが1未満であるようなランダムフロートr

#!/usr/bin/python
import random

# First random number
print "random() : ", random.random()

# Second random number
print "random() : ", random.random()

上記のプログラムを実行すると、次の結果が生成されます。


random() :  0.281954791393
random() :  0.309090465205
seed([x]) 乱数の生成に使用される整数の開始値を設定します。他のランダムモジュール関数を呼び出す前にこの関数を呼び出したほうがいい。戻り値なし。

#!/usr/bin/python
import random

random.seed( 10 )
print "Random number with seed 10 : ", random.random()

# It will generate same random number
random.seed( 10 )
print "Random number with seed 10 : ", random.random()

# It will generate same random number
random.seed( 10 )
print "Random number with seed 10 : ", random.random()

上記のプログラムを実行すると、次の結果が生成されます。

Random number with seed 10 :  0.57140259469
Random number with seed 10 :  0.57140259469
Random number with seed 10 :  0.57140259469
shuffle(lst) リストのアイテムをランダムに並べ替えます。戻り値なし。

#!/usr/bin/python
import random

list = [20, 16, 10, 5];
random.shuffle(list)
print "Reshuffled list : ",  list

random.shuffle(list)
print "Reshuffled list : ",  list

上記のプログラムを実行すると、次の結果が生成されます。

Reshuffled list :  [16, 5, 10, 20]
Reshuffled list :  [16, 5, 20, 10]
uniform(x、y) xがr以下でrがyより小さいランダムなfloat r

#!/usr/bin/python
import random

print "Random Float uniform(5, 10) : ",  random.uniform(5, 10)

print "Random Float uniform(7, 14) : ",  random.uniform(7, 14)

上記のプログラムを実行すると、次の結果が生成されます。

Random Float uniform(5, 10) :  5.52615217015
Random Float uniform(7, 14) :  12.5326369199

三角関数

Pythonには、三角関数の計算を実行する関数が含まれています。

関数 説明
acos(x) xのアークコサインをラジアンで返します。

#!/usr/bin/python
import math

print "acos(0.64) : ",  math.acos(0.64)
print "acos(0) : ",  math.acos(0)
print "acos(-1) : ",  math.acos(-1)
print "acos(1) : ",  math.acos(1)

上記のプログラムを実行すると、次の結果が生成されます。

acos(0.64) :  0.876298061168
acos(0) :  1.57079632679
acos(-1) :  3.14159265359
acos(1) :  0.0
asin(x) xの逆正弦をラジアンで返します。

#!/usr/bin/python
import math

print "asin(0.64) : ",  math.asin(0.64)
print "asin(0) : ",  math.asin(0)
print "asin(-1) : ",  math.asin(-1)
print "asin(1) : ",  math.asin(1)
上記のプログラムを実行すると、次の結果が生成されます。asin(0.64) :  0.694498265627
asin(0) :  0.0
asin(-1) :  -1.57079632679
asin(1) :  1.57079632679
atan(x) xの逆正接をラジアンで返します。

#!/usr/bin/python
import math

print "atan(0.64) : ",  math.atan(0.64)
print "atan(0) : ",  math.atan(0)
print "atan(10) : ",  math.atan(10)
print "atan(-1) : ",  math.atan(-1)
print "atan(1) : ",  math.atan(1)

上記のプログラムを実行すると、次の結果が生成されます。

atan(0.64) :  0.569313191101
atan(0) :  0.0
atan(10) :  1.4711276743
atan(-1) :  -0.785398163397
atan(1) :  0.785398163397
atan2(y、x) atan(y / x)をラジアンで返します。

#!/usr/bin/python
import math

print "atan2(-0.50,-0.50) : ",  math.atan2(-0.50,-0.50)
print "atan2(0.50,0.50) : ",  math.atan2(0.50,0.50)
print "atan2(5,5) : ",  math.atan2(5,5)
print "atan2(-10,10) : ",  math.atan2(-10,10)
print "atan2(10,20) : ",  math.atan2(10,20)

上記のプログラムを実行すると、次の結果が生成されます。:

atan2(-0.50,-0.50) :  -2.35619449019
atan2(0.50,0.50) :  0.785398163397
atan2(5,5) :  0.785398163397
atan2(-10,10) :  -0.785398163397
atan2(10,20) :  0.463647609001
cos(x) xラジアンのコサインを返します。

#!/usr/bin/python
import math

print "cos(3) : ",  math.cos(3)
print "cos(-3) : ",  math.cos(-3)
print "cos(0) : ",  math.cos(0)
print "cos(math.pi) : ",  math.cos(math.pi)
print "cos(2*math.pi) : ",  math.cos(2*math.pi)
上記のプログラムを実行すると、次の結果が生成されます。:
cos(3) :  -0.9899924966
cos(-3) :  -0.9899924966
cos(0) :  1.0
cos(math.pi) :  -1.0
cos(2*math.pi) :  1.0
hypot(x、y) ユークリッド標準、sqrt(x * x + y * y)を返します。

#!/usr/bin/python
import math

print "hypot(3, 2) : ",  math.hypot(3, 2)
print "hypot(-3, 3) : ",  math.hypot(-3, 3)
print "hypot(0, 2) : ",  math.hypot(0, 2)

上記のプログラムを実行すると、次の結果が生成されます。:

hypot(3, 2) :  3.60555127546
hypot(-3, 3) :  4.24264068712
hypot(0, 2) :  2.0
sin(x) xラジアンの正弦を返します。

#!/usr/bin/python
import math

print "sin(3) : ",  math.sin(3)
print "sin(-3) : ",  math.sin(-3)
print "sin(0) : ",  math.sin(0)
print "sin(math.pi) : ",  math.sin(math.pi)
print "sin(math.pi/2) : ",  math.sin(math.pi/2)

上記のプログラムを実行すると、次の結果が生成されます。

sin(3) :  0.14112000806
sin(-3) :  -0.14112000806
sin(0) :  0.0
sin(math.pi) :  1.22464679915e-16
sin(math.pi/2) :  1.0
tan(x) xラジアンの正接を返します。

#!/usr/bin/python
import math

print "tan(3) : ",  math.tan(3)
print "tan(-3) : ",  math.tan(-3)
print "tan(0) : ",  math.tan(0)
print "tan(math.pi) : ",  math.tan(math.pi)
print "tan(math.pi/2) : ",  math.tan(math.pi/2)
print "tan(math.pi/4) : ",  math.tan(math.pi/4)

上記のプログラムを実行すると、次の結果が生成されます。

tan(3) :  -0.142546543074
tan(-3) :  0.142546543074
tan(0) :  0.0
tan(math.pi) :  -1.22460635382e-16
tan(math.pi/2) :  1.63317787284e+16
tan(math.pi/4) :  1.0
degrees(x) 角度xをラジアンから度に変換します。

#!/usr/bin/python
import math

print "degrees(3) : ",  math.degrees(3)
print "degrees(-3) : ",  math.degrees(-3)
print "degrees(0) : ",  math.degrees(0)
print "degrees(math.pi) : ",  math.degrees(math.pi)
print "degrees(math.pi/2) : ",  math.degrees(math.pi/2)
print "degrees(math.pi/4) : ",  math.degrees(math.pi/4)

上記のプログラムを実行すると、次の結果が生成されます。


degrees(3) : 171.887338539 degrees(-3) : -171.887338539 degrees(0) : 0.0 degrees(math.pi) : 180.0 degrees(math.pi/2) : 90.0 degrees(math.pi/4) : 45.0
radians(x) 角度xを度からラジアンに変換します。

#!/usr/bin/python
import math

print "radians(3) : ",  math.radians(3)
print "radians(-3) : ",  math.radians(-3)
print "radians(0) : ",  math.radians(0)
print "radians(math.pi) : ",  math.radians(math.pi)
print "radians(math.pi/2) : ",  math.radians(math.pi/2)
print "radians(math.pi/4) : ",  math.radians(math.pi/4)

上記のプログラムを実行すると、次の結果が生成されます。


radians(3) : 0.0523598775598 radians(-3) : -0.0523598775598 radians(0) : 0.0 radians(math.pi) : 0.0548311355616 radians(math.pi/2) : 0.0274155677808 radians(math.pi/4) : 0.0137077838904

数学定数

このモジュールでは、2つの数学定数も定義しています。

定数 説明
pi 数学定数pi。
e 数学的定数e。

前のページ⑧PYTHONループ

次のページ

スポンサーリンク

ネットワークエンジニアになりたければ下記から無料相談会に参加!
なんと無料で授業を受けれてエンジニアになれます

投稿日:

執筆者: