2010年04月たのしいPython今夜コードを書いているすべてのヒトへプロフィールAuthor:辻真吾(つじしんご)www.tsjshg.infoいまは、大学の研究室を主な拠点に、色々やってます。このブログはPythonの話題が中心ですが、どちらかというと日々の仕事で使う知識を、自分のためにメモしたものです。万が一どなたかの役に立てば光栄です。githubgoogle-code-prettify管理者ページこのブログをリンクに追加するPythonスタートブック、その内容2Pythonスタートブックは、全部で10章の構成になっています。最初の1から3章で、Pythonの環境を作って、プログラミングに慣れつつ、基本的なところを学びます。重要なポイントは、データに型と呼ばれる種類があるという事実です。1と言ったら数字の1ですが、これを引用符で囲むと'1'という文字になります。似ているようで全然違うわけです。数字は足すと計算されますが、文字は足すと連結されます。'1''11'という感じ。このあたりの違いから掴んで、日時を表現するデータ型まで含めて使えるようになります。途中いろいろなたとえ話を織り交ぜて出来るだけ分かりやすいようにしたつもりです。4章は、数字や文字のような単体のデータをまとめるためのデータ型を学びます。実際のプログラミングでは頻繁に使われます。数字の1と文字の'1'をまとめるには、[]でくくればよいだけです。これでリストという一つのまとまりになります。'1']5章は、ほとんどのプログラミング言語にある、条件分岐と繰り返しの構文です。ifとかforといったものですが、Pythonはこうした構文もかなりシンプルに作られているので、比較的苦労なく理解できると思います。6章はファイルの読み書きです。この章は独立色が強いので、入れるかどうかすこし迷いましたが、プログラムで実行した結果などを外部のファイルに保存できるようになると、出来ることが広がるので簡単にまとめておきました。7章は教育用プログラミング言語LOGO(ロゴ)の影響を受けてPythonの付属しているturtleモジュールを使って、画面上の亀を操作しながら画を描きます。何を隠そう、私自身が小学生のころ、当時のMSX2というマシンで遊んでいた言語のひとつです。10」などとやると、前に10ピクセル分動いてくれました。これと同じことをやろうと言うのが狙いです。単純では勉強になりませんので、forやifといった構文を駆使して図形を描いたり亀をランダムに動かしたりしてみます。8章は関数を作ります。引き続いて9章は新しいデータ型を作ります。これにはクラスという概念を学ぶ必要があります。ここまでできれば、Pythonの基本的なところはOKです。10章は、あまり簡単な内容だけではせっかく買っていただくのに悪いと思い、ものすごい難しい章にしてみました。編集の方が許してくれたなーと思ったりしますが、半ば趣味で、先ほどの亀を全自動お掃除ロボットに仕立て上げます。いっても、もちろん掃除をするわけではなく、画面上を自動的に動き回るようにするだけです。ちなみにこのルンバという掃除機、おもちゃ感覚で欲しくて買ったんですが、実際使ってみると結構頑張ってくれます。最後に、付録もつけました。日本語文字コードの話や、すこし高度なテクニック、さらにちょっとしたコンピュータの歴史まで詰め込んでいたら、付録だけでも結構なボリュームになってしまいました。Pythonが学びやすく、初心者に向いている言語だとはいっても、その全体像はそう簡単に掴むことは出来ません。この本だけではPythonのすべてを知ることは出来ません。最初の一歩として知っておくべきことはすべて網羅してありますので、プログラミングしながら読んでいただけると、かなり出来るようになるのではないかと思っています。いうか、大規模で本格的なプログラムを作るのではなく、日常のちょっとした計算やファイルの処理などを自動化したいという要望には十分応えられる実力はつくと思います。top↑Pythonスタートブック、その内容1本を作ると、結構いろいろなところから反響があるもので、うれしい限りです。今日は、同じ職場の人に声をかけていただきました。ブログが本になったのですか?というご質問をいただいたのですが、Pythonということ以外、本とブログはまったく関係ありません。このブログは、自分のための備忘録的な意味合いが強かったので、マニアな話題が多いですが、本は完全な初心者の方でもPythonをある程度理解できるようになることを目的としているので、ほんとにゼロからわかるように書いたつもりです。これが結構難しくて、かなり骨が折れました。知恵を絞ってたとえ話を考えたり、わざと動かないコードを先に紹介してその仕組みを解説したり、いろいろと工夫をしましたが、伝わるものかどうか不安はあります。原稿が完成して出版社の方が本のような見た目に組版してくださったあと、あたまから一気に読んだ時には、それなりにいい流れになってるんじゃないかなーとアホな自画自賛をしてしまいました。この後、厳しいご指摘をいくつも頂戴することになるとも思いますが、人生修行ということで・・・まったく本の具体的な内容になっていませんが、今日は遅いのでこれくらいで。昨日ねこさんにコメントをいただいたので、うちの気まぐれ猫の写真をあげておきます。top↑Pythonの入門書を書きました日本Python界の中心人物のお一人である柴田さんにお話をいただいてから、かれこれ2年。やってるのに技術評論社の編集青木さんに見捨てられずにここまでたどり着き、なんとか出版出来そうです。Pythonは本当に書いていて楽なので好きです。楽だと感じるかというと、文法を忘れないから。記憶力は元来悪いほうなので、ありえないくらいいろいろな事を忘れますが、Pythonの文法はシンプルで統一性があるからか、書き始めるとすっと思い出します。これは、絶対に初心者にも良いと思っています。あとは、プログラムを書かない人から、書く人に一歩だけ踏み出すだけです。ご興味ありましたら、ぜひ。内容は、おいおい紹介させていただきます。top↑Pythonインタラクティブシェルでディレクトリの変更Pythonインタラクティブシェルを使っていて、インタラクティブシェルからOSのディレクトリを変更したいと思うことが時々あるかもしれません。そんなときは、osモジュールを使います。directoryの略です。今いるディレクトリが表示されます。os.getcwd()'/Users/tsuji'一つ上に移動出来ます。os.getcwd()'/Users/tsuji/temp'もちろん、別のディレクトリへの移動も可能。ファイルの一覧はlistdirを実行すると、リストで返ってきます。引数で、どのディレクトリかを指定できます。カレントディレクトリは、ドット(.)で。'build',...Windows環境の場合に注意点がありますが。Windwosでは、ディレクトリの区切り文字にバックスラッシュ(\または¥)記号が使われますが、これをそのまま利用することは出来ません。ラベルの構文が間違っています。Documents/Downloads/source_code')バックスラッシュの代わりに、普通のスラッシュ/を使うとうまくいきます。