2012/06/05
Python は次の URL から無料でダウンロードできます。
download (2012/06/05)
「Python によるグラフィックス」 「Com」Vol.10,No.2 ( 愛知大学情報処理センター、1999年9月)を最近の変化に合わせて手直ししたものです。またこの内容は筆者の講義テキスト第III部を構成しています。Python によるグラフィックスの最初の手引きとして手頃です。
Python による GUI の構築法 I --- ウィジェットの配置 ---」 「Com」Vol.11, No.1 愛知大学情報処理センター 2000年3月の再録である。
但し、表現の微小な校正は行なっている。 Python によるグラフィクスの解説の日本語版がまだ出ていないので役に立つと考え Web 上に公開する。なおこの記事の実行環境は古いが、解説の内容は現在でも修正を必要としていない。また末尾の参考文献には現在では当然載せるべき書物が載っていない。当時のまま載せている。
download (2005/03/01 改訂)
「Python による GUI の構築法 II --- ウィジェット各論 ---」 「Com」Vol.11, No.2 愛知大学情報処理センター 2000年9月の再録である。
但し、読みやすくするための改訂と校正は行なっている。 Python によるグラフィクスの解説の日本語版がまだ出ていないので役に立つと考え Web 上に公開する。なおこの記事の実行環境は古いが、解説の内容は現在でもほとんど修正を必要としていない。また末尾の参考文献には現在では当然載せるべき書物が載っていない。当時のまま載せている。必要に応じて脚注に最近の状況をコメントしてある。
download (2005/03/01)
「Python による GUI の構築法 III --- Text ウィジェット ---」 「Com」Vol.12, No.1、 愛知大学情報処理センター、 2001年5月の再録である。
但し、読みやすくするための改訂と校正は行なっている。 Python によるグラフィクスの解説の日本語版がまだ出ていないので役に立つと考え Web 上に公開する。なおこの記事の実行環境は古いが、解説の内容は現在でもほとんど修正を必要としていない。また末尾の参考文献には現在では当然載せるべき書物が載っていない。当時のまま載せている。必要に応じて脚注に最近の状況をコメントしてある。
download (2005/03/09)
「Python による動的グラフィックス」 「Com」Vol.12, No.2、 愛知大学情報処理センター、 2001年9月の再録である。
但し、読みやすくするための改訂と校正は行なっている。 Python によるグラフィクスの解説の日本語版がまだ出ていないので役に立つと考え Web 上に公開する。なおこの記事の実行環境は古いが、解説の内容は現在でもほとんど修正を必要としていない。また末尾の参考文献には現在では当然載せるべき書物が載っていない。当時のまま載せている。必要に応じて脚注に最近の状況をコメントしてある。
download (2005/03/25)
僕のゼミの学生にテーブルを使いたいとの声があったので調べてみた。"python tk table" でググってみると、
http://tkinter.unpythonic.net/wiki/TkTable
にそれらしきものが紹介されている。ソースは tktable.py
で http://tkinter.unpy.net/wiki/TkTableWrapper にて手に入る。しかし、添えられているサンプルが本当に分かり難い。この使い方の本質的な部分を示すサンプルを以下に示す。
from Tkinter import Tk, Label, Button, Frame import tktable def run_cmd(): print var.get() root = Tk() label = Label(root, text="Tk Table Usage Sample") label.pack(side = 'top', fill = 'x') bottom_frame = Frame(root) run = Button(bottom_frame, text="Run", command=run_cmd) run.pack(side = 'left') quit = Button(bottom_frame, text="QUIT", command=root.destroy) quit.pack(side = 'right') bottom_frame.pack(side='bottom', fill='x') var = tktable.ArrayVar(root) # we set initial table value for x in range(0, 4): for y in range(0, 5): index = "%i,%i" % (y, x) # note that (row,col) var.set(index, "0") print var.get() table = tktable.Table(root, rows=5, cols=4, variable=var) table.pack() root.mainloop()
Python の string モジュールに join メソッドが含まれている。Python3 の string モジュールにはもはや join メソッドは含まれていないので、正しくは、Python2 には含まれていたと言うべきであろう。Python2.6 の string モジュールの内容を読むと、メソッドでモジュール関数を定義している。かっては(たぶん Python1.x の時代には)、クラスメソッドをモジュール関数で定義していたのだが、立場が入れ替わっている。
string モジュールの join 関数は
join(X,Y)の形で使う。ここに X は文字列のリストあるいはタプルで、Yは文字列である。join が返す値は
X[0] + Y + X[1] + Y + X[2] + ... + Y + X[n-1] 式(1)で n は X のサイズ(長さ)である。Y を省略すれば、式(1)から Y を省いた計算をした方が理に適っているのだが、Y には1文字の空白
" "
が使われる。この仕様は、join が文字列の分解 split の逆を行うものとして考えられているからである。この意味で join の仕様は文字列に特化している。
ところで、join メソッドが他の string メソッドと大きく違う(例外的な)のは
Y.join(X)と書かなくてはならないことである。string モジュールの(join を除いて)どの関数も文字列が第一引数になっている。そして、その第1引数が、メソッドの操作対象になっている。しかし join だけが違う。join の操作対象は文字列のリスト(あるいはタプル)であって、文字列そのものではない。第2引数は文字列であるが、補助的な情報である。従って第2引数を操作対象としている join メソッドの書き方はいかにも不自然である。そのためにネットでググると多くの不満の声が聞こえてくる。なぜ
X.join(Y)でないのかと。
論理的に考えた時に、式(1) を行うメソッドは文字列のメソッドである必要はない。リストやタプルに対するメソッドの位置づけの方がすっきりしている。ここで要求されている事は、X はシーケンスであり、Xの要素達とYの間に加算が定義され、加算に対して閉じていることだけである。そして Y が省略された場合には、式(1) から Y を省かなくてはならない。そのようなメソッドがシーケンスに対して定義されていれば、数字のリストやタプルに対して和を簡単に出す事が可能になるなど、他の応用もあるだろう。ただし、そのようなメソッドに対して join と名付ける事はもはやふさわしくないかも知れない。