Part 1: Python を電卓として使う

数値:

整数 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, 他にいくつか後述) と pie といった定数は、言語に標準装備されてはいなくて、Numeric というモジュールに含まれています。 そこで、使う前にそれらを import する(取込む)必要があります。

それらは個別に import 出来ます:

from Numeric import sqrt
あるいは、まとめて import しても良く:
from Numeric import sin, cos, tan
または、そのモジュールから全部を import することも出来ます:
from Numeric import *

さらに、モジュールそのものを import することも可能です:

import Numeric
この場合、Numeric.sqrtNumeric.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

変数名は文字と数字を含む任意の長さのものが使えます。始まりは文字でなくてはなりません。大文字と小文字は区別されます。


初めての Python プログラム

このプログラムは、三角形の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()

練習問題

  • Python インタープリタの使い方に慣れましょう。簡単な算術式を入力して見ましょう。入力の間違いに対してインタープリタはどのように反応するでしょうか。
  • 例題プログラムを実行出来ることを確認しましょう。これに意味のある変更を加えて見ましょう。三角形の重心を印字するように出来ますか?三角形で定義される平面の法線ベクトル、三角形の三つの角度はどうでしょう?
    目次