2012/02/09
Python は私のお気に入りのプログラミング言語です。文法が簡潔で強力で、一貫性があり、入門用のプログラミング言語としても良いと思います。
Python は次の URL から無料でダウンロードできます。
全て PDF 版です。これらは個人での利用の他に、大学や専門学校等の教育目的に使用しても構いませんが、出典は明記してください。
筆者が愛知大学の「プログラミング入門」と「プログラミング論」で使用しているテキストです。
download (2008/05/01)
| ページ | 誤 | 正 |
|---|---|---|
| 4 | 他の括弧 [ ] や は | 他の括弧 [ ] や { } は |
| 11 | 個数は重要な持っている | 個数は重要な意味を持っている |
| 14 | 人手を解する事無く | 人手を介する事なく |
p.8 の
-2**3+1
これは
-2**4+1
の方が良い。
理由: 問題の式の意味を
(-2)**3+1
と勘違いしている学生がいる。その場合の誤りが認識されない。
この記事は1999年に発表された筆者の記事
「Python によるグラフィックス」
「Com」Vol.10,No.2 ( 愛知大学情報処理センター、1999年9月)
を最近の変化に合わせて手直ししたものです。またこの内容は筆者の講義テキスト第III部を構成しています。Python によるグラフィックスの最初の手引きとして手頃です。
downloadこの記事は2000年に発表された筆者の記事
Python による GUI の構築法 I --- ウィジェットの配置 ---」
「Com」Vol.11, No.1
愛知大学情報処理センター
2000年3月
の再録である。
但し、表現の微小な校正は行なっている。 Python によるグラフィクスの解説の日本語版がまだ出ていないので役に立つと考え Web 上に公開する。なおこの記事の実行環境は古いが、解説の内容は現在でも修正を必要としていない。また末尾の参考文献には現在では当然載せるべき書物が載っていない。当時のまま載せている。
download (2005/03/01 改訂)
この記事は2000年に発表された筆者の記事
「Python による GUI の構築法 II --- ウィジェット各論 ---」
「Com」Vol.11, No.2
愛知大学情報処理センター
2000年9月
の再録である。
但し、読みやすくするための改訂と校正は行なっている。 Python によるグラフィクスの解説の日本語版がまだ出ていないので役に立つと考え Web 上に公開する。なおこの記事の実行環境は古いが、解説の内容は現在でもほとんど修正を必要としていない。また末尾の参考文献には現在では当然載せるべき書物が載っていない。当時のまま載せている。必要に応じて脚注に最近の状況をコメントしてある。
download (2005/03/01)
この記事は2001年に発表された筆者の記事
「Python による GUI の構築法 III --- Text ウィジェット ---」
「Com」Vol.12, No.1、
愛知大学情報処理センター、
2001年5月
の再録である。
但し、読みやすくするための改訂と校正は行なっている。 Python によるグラフィクスの解説の日本語版がまだ出ていないので役に立つと考え Web 上に公開する。なおこの記事の実行環境は古いが、解説の内容は現在でもほとんど修正を必要としていない。また末尾の参考文献には現在では当然載せるべき書物が載っていない。当時のまま載せている。必要に応じて脚注に最近の状況をコメントしてある。
download (2005/03/09)
この記事は2001年に発表された筆者の記事
「Python による動的グラフィックス」
「Com」Vol.12, No.2、
愛知大学情報処理センター、
2001年9月
の再録である。
但し、読みやすくするための改訂と校正は行なっている。 Python によるグラフィクスの解説の日本語版がまだ出ていないので役に立つと考え Web 上に公開する。なおこの記事の実行環境は古いが、解説の内容は現在でもほとんど修正を必要としていない。また末尾の参考文献には現在では当然載せるべき書物が載っていない。当時のまま載せている。必要に応じて脚注に最近の状況をコメントしてある。
download (2005/03/25)
2010/06/05
僕のゼミの学生にテーブルを使いたいとの声があったので調べてみた。"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()
2012/02/09
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 と名付ける事はもはやふさわしくないかも知れない。