I ♥ WordPress

[Python勉強日記:002] いよいよPythonを起動してみる
2007/10/31 22:59 posted by kunkichi

前回の続き。『初めてのPython 第2版』の3章と4章の半分ぐらいを読みました。いよいよ実際に動かしてみます。まずは3章。(※目次はここ

プログラムの起動

プログラムの起動方法はいろいろあるみたいなんだけど、まずは対話型で。うちは Mac なので Terminal.app から実行します。

$ python
Python 2.3.5 (#1, Jan 13 2006, 20:13:11)
[GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
OSX 10.4では Pythonのバージョンは2.3.5みたい。では早速。
>>> print 'Hello, World'
Hello, World
>>> print 2 + 5
7
>>>
print文は省略も出来る。
>>> 'Hello, World'
'Hello, World'
>>> 2 + 5
7
>>>
あ、これは便利。電卓代わりになります。
変数ももちろん使えます。
>>> Hensuu = 'hello'
>>> print Hensuu
hello
終了するときは Ctrl+D。
>>> ^D
$

(モジュール)ファイルから実行

次はPythonのプログラムをファイルに書いてファイルから実行します。Pythonではこのファイルを”モジュール”と呼びます。ファイル名はPythonの流儀にならって sample.py とします。内容は以下。

print ‘Hello, World’
print 2 + 5

では実行。
$ python sample.py
Hello, World
7
シェルスクリプト風に行頭に#!を使ってファイルを直接実行することもできます。この場合はファイルに実行権限をつけておく。

#!/usr/bin/python

print ‘Hello, World’
print 2 + 5

$ sample.py
Hello, World
7

モジュールのインポートとリロード

モジュールをインポートすることで外部のファイルをロードして起動することが出来ます。大規模なプログラムになると複数のモジュールをインポートして作られていることが多い。

コマンドラインから起動してさっき作成した sample.py をインポートしてみる。
>>> import sample
Hello, World
7
インポートする場合は拡張子は不要です。

一度インポートしたモジュールは2回目以降は実行されない。
>>> import sample
Hello, World
7
>>> import sample
>>>
一旦インポートしたモジュールを再度実行したい場合は reload を使う。
>>> reload( sample )
Hello, World
7
<module 'sample' from 'sample.pyc'>
メッセージにあるように、リロードで2回目に実行した場合は、sample.py ではなく sample.pyc から実行されているのがわかる。これが前回のバイトコードというやつ。

モジュールの属性

モジュールをインポートする場合、そのモジュールが変数を持っている場合、その変数へアクセスすることが出来ます。この変数をモジュールの「属性」といい、その属性の集まりを「名前空間」といいます。

sample.py に以下の行を追加してみます。

a = ‘apple’

sample.py をインポートしてその変数にアクセスしてみます。モジュールの属性にアクセスするには、<モジュール名>.<属性名>で指定します。
>> import sample
Hello, World
7
>>> print sample.a
apple
fromを使うと、モジュールをインポートした上で属性を現在実行中の名前空間にコピーすることができます。この場合、その属性にアクセスする時はモジュール名を指定する必要はありません。
>>> from sample import a
Hello, World
7
>>> print a
apple
複数の属性がある場合でも同じです。sample.pyにさらに属性を追加してみます。

b = ‘lemon’
c = ‘orange’

>>> import sample
Hello, World
7
>>> sample.a, sample.b, sample.c
('apple', 'lemon', 'orange')
printは省略してみました。fromの場合も試してみます。
>>> from sample import a, b, c
Hello, World
7
>>> a, b, c
(’apple’, ‘lemon’, ‘orange’)括弧付きで表示されるのはタプルというらしいけどそれはまた後で。
dir関数を使うと、モジュール内の属性を全て見ることが出来る。
>>> import sample
Hello, World
7
>>> dir(sample)
['__builtins__', '__doc__', '__file__', '__name__', 'a', 'b', 'c']
_(アンダーバー)で囲まれたのはとりあえず今は気にしない。

その他の起動方法

これ以外にもいろいろと起動する方法はあるのだけど、Windows向けだったり、GUIだったりなのでスルー。

とりあえずいろいろなやり方で動かしてみました。はじめてだけどこの辺はPerlなどと大きく変わる訳じゃないし、バイトコードがファイルとして作成されるのも実際に見ることが出来たので、雰囲気がつかめてきました。あとは演習問題がついているのでこれをやって今日は終わりとします。

明日は4章〜。

コメント&トラックバック

トラックバックURL





このページの先頭へ