初心者向けのいろいろ
% python <=コマンド名
Python 1.5.1 (#40, Feb 10 1999, 14:50:49) [GCC 2.7.2.1] on sunos5
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> 3+4
7
>>> _*5
35
>>> list = range(10)
>>> list
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print list % printは単なる構文(Syntax)なのでオブジェクトではありませんね
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> repr (list)
'[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]'
>>> `list`
'[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]'
>>> list[5:-1]
[5, 6, 7, 8]
>>> fun = repr
>>> fun(list)
'[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]'
上のインタラクティブなやりとりの説明
- 大雑把には"_"は最後に表示したものだと考えよ。
- Schemeのように変数にはなんでも(どんな型のオブジェクトでも)代入できる。
- reprとバッククォート(`)はたぶん同じで、文字列を返す。
- list[5:-1]はスライス演算って奴なのね
- 負の数は後ろからのオフセット
- 5や-1の所は省略可能。そのときは最初(もしくは最後)という意味です。
% cat test.py
def fun(arg):
"This function is for test"
for i in range(3):
print arg,
print "End"
fun("Hello")
fun(3.1415)
#end of script
% python test.py
Hello Hello Hello End
3.1415 3.1415 3.1415 End
スクリプト(test.py)の説明
- インデントでブロックを識別する
- 関数defの中のオフセットがそろっている所が同じスコープにあるのです
- 何が嬉しいかというとずばりRAD(Rapid Application Development)ですね
- Emacsのpython-modeを使えばもっとRADになりますね
- defは関数の定義だ。
- 関数funの引数に文字列("Hello")や浮動小数点数(3.1415)を渡しているように
Pythonのオブジェクトはすべてファーストクラスオブジェクトだ。
- 動的な型を持っているともいえる。
- for <variable> in <sequence object> はいわゆるFOR文だ。
- <sequence object>はタプルやリストや文字列のことです。
- range(number)は0からnumberまでのリストを返すぞ。
- rangeは__builtins__って所にあるぞ。
- cf. dir() そのあとに dir(__builtins__) を見よ。
- dirはわざわざライブラリリファレンスを見るまでもないときに重宝するぞ。
- print arg,の最後に付いたコンマはいったい?
- print以外で標準出力に出すには?
- import sys; sys.stdout.write("文字列")
- import文はsysモジュールを現在の名前空間にとってくる
- ピリオド表記はC++とおんなじでオブジェクト指向なのです。
- #はコメントの始まり
- 関数の直後にある文字列はlispにあるようなDocumentation Stringだろう。(なくてもよい)
- python-modeでスクリプトを作成
- python-mode.elは配布ソースのMisc/以下か、www.python.orgから取ってくる
- デバッグの為にprintをいれまくる
- C-c C-c (py-execute-buffer)を実行 => とても早いレスポンスでRADを実感します
shuhei@is.s.u-tokyo.ac.jp
Last modified: Thu May 25 15:17:23 JST 2000