※この翻訳ドキュメントはスクリプトによって出力・同期されています。内容が怪しそうな場合はGitHubにissueを追加したり英語の原文の確認をお願いします。
Int と Number クラスの基本的な計算制御¶
このページではInt
やNumber
の各クラスの加算や乗算などの基本的な計算制御について説明します。
共通の挙動¶
Int
やNumber
の各値は以下のコード例のようにint
やfloat
などのPythonビルトインの値と計算することができます:
import apysc as ap
ap.Stage()
int_1: ap.Int = ap.Int(10)
int_1 = int_1 + 20
assert int_1 == 30
また、同じ型同士(例 : Int
とInt
同士など)での計算も同様にサポートしています:
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