※この翻訳ドキュメントはスクリプトによって出力・同期されています。内容が怪しそうな場合はGitHubにissueを追加したり英語の原文の確認をお願いします。

Int と Number クラスの基本的な計算制御

このページではIntNumberの各クラスの加算や乗算などの基本的な計算制御について説明します。

共通の挙動

IntNumberの各値は以下のコード例のようにintfloatなどのPythonビルトインの値と計算することができます:

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
int_1 = int_1 + 20
assert int_1 == 30

また、同じ型同士(例 : IntInt同士など)での計算も同様にサポートしています:

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
int_2: ap.Int = ap.Int(20)
int_1 = int_1 + int_2
assert int_1 == 30

計算で左側の値がPythonビルトインの値の場合はサポートしていません。例えば以下のコードではエラーとなります:

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)

# This will raise the error!
int_1 = 20 + int_1
TypeError: unsupported operand type(s) for +: 'int' and 'Int'

加算

+のオペレーターを使って各値の加算処理を行うことができます。

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
int_1 = int_1 + 20
assert int_1 == 30
import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
int_2: ap.Int = ap.Int(20)
int_1 = int_1 + int_2
assert int_1 == 30
import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10) + ap.Int(20)
assert int_1 == 30

+=のオペレーターも同じように使用することができます。

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
int_1 += 20
assert int_1 == 30
import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
int_2: ap.Int = ap.Int(20)
int_1 += int_2
assert int_1 == 30

減算

-のオペレーターを使って各値の減算を行うことができます。

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(30)
int_1 = int_1 - 10
assert int_1 == 20
import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(30)
int_2: ap.Int = ap.Int(20)
int_1 = int_1 - int_2
assert int_1 == 10

-=のオペレーターも同様に使用することができます。

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(50)
int_1 -= 30
assert int_1 == 20

乗算

*のオペレーターを使って各値を乗算することができます。

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
int_1 = int_1 * 3
assert int_1 == 30
import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
int_2: ap.Int = ap.Int(5)
int_1 = int_1 * int_2
assert int_1 == 50

*=のオペレーターを使うこともできます。

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
int_1 *= 3
assert int_1 == 30

除算

/のオペレーターを使って各値の除算を行うことができます。返却値はIntの整数ではなくNumberの浮動小数点数になります。

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
number_1: ap.Number = int_1 / 4
assert number_1 == 2.5
import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
int_2: ap.Int = ap.Int(4)
number_1: ap.Number = int_1 / int_2
assert number_1 == 2.5

/=のオペレーターを使うこともできます。

import apysc as ap

ap.Stage()
number_1: ap.Number = ap.Number(10)
number_1 /= 4
assert number_1 == 2.5

切り捨て除算

//のオペレーターで除算と浮動小数点数の切り捨てを行うことができます。返却値はNumber型の浮動小数点数ではなくIntの整数となります。

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
int_1 = int_1 // 4
assert int_1 == 2

剰余

%のオペレーターを使って剰余の計算を行うことができます。

import apysc as ap

ap.Stage()
int_1: ap.Int = ap.Int(10)
int_2: int = int_1 % 3
assert int_2 == 1
import apysc as ap

ap.Stage()
number_1: ap.Number = ap.Number(10.5)
number_2: ap.Number = number_1 % 3
assert number_2 == 1.5