Views
Python (パイソン)を始める
プログラミング
- 皆さんは、1学期に「パソコンの使い方」を習ってきました。また、この授業では「UNIX の使い方」を習っています。しかし、どちらもどこかの人が「こんなふうに使いなさい」と言うので、その「使い方」を学んでいるにすぎません。
- これからは、自分が「こんなふうに使いなさい」と言える人になることを学びます。それが、プログラミングです。
プログラム言語
- 世の中には数多くのプログラミング言語があります。
- C言語 ... 単に C とも呼ぶ. コンピュータのオペレーティングシステムの記述に 使われている. 殆どの UNIX 系システムではアプリケーションプログラムの コンパイルのために ヘッダファイル (/usr/include) と ライブラリ (/usr/lib) を提供している.
- Pascal ... アルゴリズムの記述に優れていると言われる. 普通は Pascal の 処理系は別売りで, システムとの低レベルでのインターフェース は苦手らしい.
- FORTRAN ... 科学計算に昔から使われてきた. ゆえに, プログラミングスタイルが 古臭くなっているが, なかなか無くならない.
- Python ... 上の3つのコンパイラー言語と違ってインタプリタである. このため, 作成したプログラムを即実行できる. ただし, 実行速度は 遅いので, 何度も繰り返し実行するなら不適当である. (Python はパイソンと読む)
- 近年は CPU の速度が飛躍的に向上しているため, インタプリタ言語も適用範囲が広がっています。ここでは Python を使って簡単なプログラム作成を学びます。
教科書について
- 教科書の「初めての Python 第2版」は初めてプログラミングをする人だけでなく、他の言語でプログラミングを学んだ人が「初めて」Python を使う場合にも使えるように書かれています。従って、高度な内容が含まれていますが、難しいところは読み飛ばしてかまいません。
- また、教科書には Windows PC で Python を利用する方法についても触れられています。余裕のある人はぜひ試してみてください。
Python を始める
- ここでは,まずプログラミング以前のこととして,Pythonを「電卓」的に使った計算を試してみます。(教科書では、第3章のはじめ及び第4章あたりです)
Python (インタラクティブモード)の開始と終了
- 開始: コマンドラインから python を引数なしで呼び出す.
tkikuchi@eurus$ python Python 2.3.5 (#1, Mar 20 2005, 20:38:20) [GCC 3.3 20030304 (Apple Computer, Inc. build 1809)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
- ここで >>> は python のプロンプトである。 Python を終了するには ^D (Ctrl+d) を入力する。
Python で計算
- それではもういちど Python を起動して計算をしてみよう。
>>> 1 + 1 2 >>> 3 - 1 2 >>> 2 * 1 2 >>> 4 / 2 2 >>>
- 掛け算には * (アスタリスク) 割り算には / (スラッシュ) を使うことに注意。
ちょっとした癖
- 自分の好きな数を使って計算の練習をしてみよう。
>>> 5 / 2 2
- あれ?なんかおかしい。これは、整数の範囲で計算しているから。小数を使うことを明示すると、小数(浮動小数ともいう)で結果を出してくれる。
>>> 5. / 2 2.5
- 注:浮動とは、小数点の位置が変わることを言う。例1 ... 2.8e7 = 2.8 x 107, 5e-3 = 5.0 x 10-3
変数を使う
- 消費税込みの金額を計算することを考えよう。品物の金額に 1.05 を掛ければよい。
>>> 300 * 1.05 315.0
- この 1.05 をどこかに保存しておくと何度も使える。保存する場所に名前を付けたものが変数である。
>>> a = 1.05 >>> 500 * a 525.0 >>> 600 * a 630.0
- 注: 何度でも使えると言っても、いったん Python を終了してしまうと、もう一度起動したときにはその変数はご破算になっています。本当に何度も使うには、、、次回以降に。
数学的関数
- sin, cos, sqrt などの数学的関数を使うには,次のまじないをする必要がある。
>>> from math import *
- 数学的関数には以下のようなものがある。
- sin(x) ... sin x (x はラジアン単位)
- cos(x) ... cos x
- tan(x) ... tan x
- atan(x) ... arctan x (tan-1 x)
- pi ... π (円周率)
- e ... e (自然対数の底)
- log(x) ... log x (自然対数)
- log10(x) ... log10 x (常用対数)
- sqrt(x) ... √x (2乗根)
例
>>> from math import * >>> pi 3.1415926535897931 >>> e 2.7182818284590455 >>> cos(pi/4) 0.70710678118654757 >>> sin(pi/4) 0.70710678118654746 >>> sqrt(2) 1.4142135623730951
長い整数
- 整数はメモリーの許す限り大きな桁にすることができます。
- これを長い整数と呼び、数の最後に L を付けて表します。
>>> 1000000000000000000000000000000000000000000000000000000 1000000000000000000000000000000000000000000000000000000L
複素数
- Python では複素数の虚数部を表すのに j を使います
>>> 1j * 1j (-1+0j)
- 複素数の数学関数は cmath に入っています。
>>> from cmath import * >>> exp((pi/4)*1j) (0.70710678118654757+0.70710678118654746j)
問題
- 整数、浮動小数を使った四則計算をいくつか試して見なさい。また、括弧 ( ... ) を使って計算順序も確かめなさい。何か変わったことはないだろうか?(ヒント:割れない)
- lim(x→0) sin(x)/x は 1.0 である。しかし,sin(0.0)/0.0 を計算することはできない。x に小さい値を入れて計算してみて,1.0 に近づいていく様子を見てみよう。どのくらいの値で答えが 1.0 になっただろうか?
- **(アスタリスク2個)は「べき乗」を計算する。(例: 3 ** 3)
1eN (Nは数字) の形式で表す浮動小数と、10 ** N の形式で計算する整数のそれぞれ最大の値はどのくらいになるだろうか?
(計算に時間がかかって途中で止めたいときは、^Z (Ctrl+z) で 停止 し、 ps でプロセス番号を調べて kill しなさい. 参考: 便利なコマンド)
- 公式 によれば
(a + bj)/(c + dj) = (ac+bd)/(c2+d2) + j(bc-ad)/(c2+d2)
である。適当な数値を入れて、これを確かめなさい。
解答は、"メール":mailto:tkikuchi+ci2006@is.kochi-u.ac.jp?subject=07_StartPython で送ってください。