整数 | 0, 1, 2, 3, -1, -2, -3 |
---|---|
実数 | 0., 3.1415926, -2.05e30, 1e-4 |
(小数点または指数部を付けます) | |
虚数/複素数 | 1j, -2.5j, 3+4j |
(最後のは和です) |
足し算 | 3+4, 42.+3, 1+0j |
---|---|
引き算 | 2-5, 3.-1, 3j-7.5 |
掛け算 | 4*3, 2*3.14, 1j*3j |
割り算 | 1/3, 1./3., 5/3j |
べき乗 | 1.5**3, 2j**2, 2**-0.5 |
2数が同じ型でないときは、結果は高位(整数-実数-複素数の順)の方の型になります。
注意: 1/3 は整数なのでゼロです。1./3. は(期待される通りの)実数です。
実数と複素数の精度は、Python インタープリタを生成したときに使われた C コンパイラの倍精度になります。これは殆どのシステムでは、約 16 桁の精度に相当します。
標準的な算術関数 (sqrt, log, log10, exp, sin, cos, tan, arcsin, arccos, arctan, sin, cosh, 他にいくつか後述) と pi や e といった定数は、言語に標準装備されてはいなくて、Numeric というモジュールに含まれています。 そこで、使う前にそれらを import する(取込む)必要があります。
それらは個別に import 出来ます:
from Numeric import sqrtあるいは、まとめて import しても良く:
from Numeric import sin, cos, tanまたは、そのモジュールから全部を import することも出来ます:
from Numeric import *
さらに、モジュールそのものを import することも可能です:
import Numericこの場合、Numeric.sqrt、Numeric.exp などの "拡張名" を使います。
例:
from Numeric import pi, sin print sin(pi/3)
二つの形式があります: 'abc' または "abc"
改行は \n で示します: "abc\ndef"
結合: "abc"+'def' は "abcdef" になります。
反復: 3*"ab" は "ababab" になります。
ベクトルは Python の標準データ型には無く、Scientific.Geometry モジュール内で定義されているので、そこから import する必要があります:
from Scientific.Geometry import Vector
記法: Vector(1,0,0)
足し算、引き算: Vector(1,0,0)+Vector(0,-1,3), Vector(,1,0)-Vector(1.5,4,0)
スカラー倍: 3.5*Vector(1,1,0), Vector(0,0,1)*4.
スカラー除算: Vector(1,1,0)/2.
内積: Vector(1,2.5,0)*Vector(0,-1,3.1)
外積: Vector(1,2.5,0).cross(Vector(0,-1,3.1))
長さ: Vector(2.5, 3.4, 1.).length()
規格化: Vector(1.,4.,2.).normal()
2ベクトル間の角度: Vector(1,2.5,0).angle(Vector(0,-1,3.1)) (結果はラジアン単位)
要素のアクセス: Vector(1,0,3)[0], Vector(1,4.,3).normal()[1] (添字は 0 から 2)
値に名前を付けて格納するために変数を使います:
x = 2. sum = x + 25 greeting = "hello" a_very_special_value = 42
変数名は文字と数字を含む任意の長さのものが使えます。始まりは文字でなくてはなりません。大文字と小文字は区別されます。
このプログラムは、三角形の3点を定義し、全ての対の距離を印字します。
from Scientific.Geometry import Vector a = Vector(0, 1, 0) b = Vector(4.3, -2.4, 0.005) c = Vector(-3.2, 5.1, -3.) print "a-b:", (a-b).length() print "a-c:", (a-c).length() print "b-c:", (b-c).length()