まぬねこの足跡。。。

備忘録+たのしさ+ひっそりと

Python 数値と計算

数値型

下記3つがある。
整数:int (Python3は最大値・最小値の制限なし)
実数:float(IEEE754 64bit 倍精度浮動小数点数)
複素数:complex

ちょこっとメモ

複素数

実数と虚数を組み合わせたもの。−4+6iなど

数値 区切り文字「_」アンダースコア

人が見やすく区切るとき使う。値に影響なし。

87_654_321

表示イメージ

87654321

指数表現「e」

1.234 × 105

1.234e5

表示イメージ

123400.0

整数型 int型

  • 整数
  • python3は、有効桁数の制限がない。※誤差がない。

実数 float型

倍精度浮動小数点方式(64bit)

  • 極小さい値も表現可能
  • 符号部・指数部・仮数部からなる2進数の近似値表現(誤差あり。)
    • 整数→実数変換でも誤差発生。

浮動小数点数 仕組み IEEE 754(64bit)形式)

1. 数値を2進数にし、「1.XXX × 2a」の指数表現の形にする。
2. 以下に当てはめる。

  • 符号部(1bit):0 →負、1 →正
  • 指数部(15bit):{「2a」の乗数「a」+バイアス値(127)}の2進数表現

  ※バイアス値の加算により負数も正数で表現可能

  • 仮数部(52bit):「1.XXX 」の小数部分「XXX」

浮動小数点数 表記方法

7.0
7.
0.5
.5

表示イメージ

7
7
0.5
0.5

float型 無限大:inf 

  • float型の無限大 inf
  • float型の最大を超過すると「inf」無限大になる。

inf 作成

# 正の無限大
float('inf')
float('infinity')
# 負の無限大
-float('inf')
-float('infinity')

型変換

str型のみ可能

str(float('inf'))

無限大 四則演算

足し算

  • inf + 値 = inf
  • inf + -inf = nan
print(float('inf') + 100)
print(float('inf') + -float('inf'))
表示イメージ
inf
nan

引き算

  • inf - 値 = inf
  • inf - inf = nan ※float型になる
print(float('inf') - 100)
print(float('inf') - float('inf'))
print(type(float('inf') - float('inf')))
表示イメージ
inf
nan
<class 'float'>

掛け算

  • inf * 値 = inf
  • inf * inf = inf
  • inf * 0 = nan
print(float('inf') * 5)
print(float('inf') * float('inf'))
print(float('inf') * 0)
表示イメージ
inf
inf
nan

割算

  • inf / 値 = inf
  • inf / inf = nan
  • 0 / inf = 0.0
print(float('inf') / 5)
print(float('inf') / float('inf'))
print(0 / float('inf'))
表示イメージ
inf
nan
0.0

べき乗

  • inf = inf
  • infinf = inf
  • inf0 = 1
  • 1inf = 1
  • 0inf = 0
print(float('inf') ** 5)
print(float('inf') ** float('inf'))
print(float('inf') ** 0)
print(1 ** float('inf'))
print(0 ** float('inf'))
表示イメージ
inf
inf
1.0
1.0
0.0

計算

四則演算

演算
足し算 a + b
引き算 a - b
かけ算 a * b
割り算 a / b
割算(小数点切り捨て) a // b
余り a % b
べき乗 a ** b

四則演算による型の変化

割算「/」「//」以外

  • 整数と整数=整数
  • 整数と実数=実数
  • 実数と実数=実数

割算

割算「/」=実数。※誤差の場合、あり。
割算「//」=整数。

ちょこっとメモ

「0」除算

「ZeroDivisionError」実行エラーとなる。

演算優先順位

1. 「+」「-」:単項演算子(数値のプラス/マイナス表現)
2. 「**」:べき乗
3. 「*」「/」「//」:かけ算、割り算
4. 「」「」:足し算、引き算
ただし、()内が最優先