[Python勉強日記:005] 文字列 その1
2007/11/12 23:33 posted by kunkichi
わー、いきなり放置状態!(爆)
いやー、ほんと忙しいのですよ、最近。帰ってきてもブログ更新するエネルギーがなくて、土日も基本的には何もせず完全に引きこもり状態(笑)
これではいかん、ということで、がんばって進めます。今日は『文字列』。
わー、いきなり放置状態!(爆)
いやー、ほんと忙しいのですよ、最近。帰ってきてもブログ更新するエネルギーがなくて、土日も基本的には何もせず完全に引きこもり状態(笑)
これではいかん、ということで、がんばって進めます。今日は『文字列』。
新しい職場は少し遠めなので朝が早くて夜は早く眠くなります。
しかも障害対応中で忙しくてPython勉強日記がかけません。早く続きを、、、
閑話休題。
PS3 FAN || PS3システムソフトウェア Ver2.00の内容が明らかに
はてなのホッテントリで見たとき、PS3のファンがファームウェアで改善されると普通に思ったのはやっぱりこの業界にいるからですか、そうですか、
ということで、Python勉強日記は週末にまとめてポスト予定。
さて、週末少しお休みしたので続きを。今日は第5章の文字列まで読み終わっただけど、ブログが追いつきません!!!
ということで、とりあえず、前回の数値のお話の続きでちょっと変数のお話。
変数の扱い
まず、以下の例。
>>> a = 3
よくある代入の例だけど、PerlやPHPと同じく、Pythonでは
ということ。まあPerlやPHPに慣れてればあんまり気にしなくていいところ。
で、上記例の式の場合に、どのように内部処理が行われるかをスライドで説明してみる。うふふ、SlideShareを使ってみたかったのです(笑)。
ということで、あくまでもリンクされているってところがポイント。これまでは、メモリ上に指定した変数の領域があってその中に値が入っているっていうイメージがあったのだけど、そういうことじゃないみたい。なんかCでいうポインタっぽいのかな。
さらにも一つ例。
ということで、代入するたびにオブジェクトが生成されるというわけ。これを言い換えると、オブジェクトの値自体は変更できないということ。
ただし、一部のものについては、オブジェクトの値を変更することができるらしいのだけど、これはまだ先の話らしいので、とりあえず今の段階ではPythonのオブジェクトの値は変更できない、変数はあくまでもオブジェクトへのリファレンスということで理解しておきます。
明日は文字列です。
たった今決めたのだけど、週末はお勉強お休みにします(爆)
まあこの辺が読者のいないブログの気楽なところ(笑)
昨日は朝から体調が悪く、仕事から帰るなりそのまま布団に直行、というわけで、「毎日やります!」というのも、三日でいきなり挫折していますが(爆)
いや、しんどいながらも通勤時間は読み進めていたのですよ。ただねー、しんどいときってほんと頭に全然入んない(爆)
ということで今日は昨日読んだ4章を再度読み直しました。ここからしばらくはPythonのビルトインオブジェクトに関する章が続くみたい。ビルトインオブジェクトというとわかりにくい印象なんだけど、なんてことはない、数値とか文字列とか配列とかの扱いのお話です。今日は『数値』。
前回の続き。『初めてのPython 第2版』の3章と4章の半分ぐらいを読みました。いよいよ実際に動かしてみます。まずは3章。(※目次はここ)
前回から始まった勉強日記ですが、早速『初めてのPython 第2版』を読み進めています。2章まで読み終わりました。(※目次はここ)
とりあえずここまでのまとめ。
仕事では PHP とか Perl を使ってたので、比較的インタープリタ系な言語がどういうものかっていうイメージは持ってるつもり。だから Python も大きく変わることはないかなということで、同じようなところは省略。で微妙に違ってるところだけあげると 3. のところ。

Python のスクリプトは、拡張子.pyが一般的なようなのだけど、これを実行すると拡張子.pycの中間コードが生成されれて、インタプリタの一部であるPython仮想マシンがそれを読み込んで実行するらしい。で次回以降の実行の際はこの中間コードを読み込むだけなので処理が高速化される。
Perl や PHP も基本的にはバイトコードにコンパイルしてると思うのだけど、たぶんそれはメモリ上で行われていて、こういった中間ファイルを作成することはないんだよね。PHPの場合なんかはこれを実現する為にアクセラレータがあるくらいだし。この辺は Java に近いのかも、というかJava知らないし嫌いだけど(爆)。
で、こういう仕組みなので極端な話、.py がなくても .pyc があればプログラムは動作すると。これはちょっと今までとは大きく違うところなので新鮮でした。また、これは標準のCPythonの実装の場合で他にもいろいろな実装があるらしく、より高速な実装もあるということなので、大規模での運用にも耐えれるというのはあながち大げさな表現でもないのかなと。なかなか興味深いところでした。
さて、次回はいよいよ実際にプログラムを実行していきます。
最近は、
とかみたいに、プログラミングを学ぶ過程をブログで公開してるのをちらちらと見かけるのにインスパイアされて、こちらも勉強日記を始めてみようかと思います。
で選んだのが Python。
理由はLightweight Language AHP で 一番向いていると言われたから(笑)。
というのは冗談として(いや、実は↑にかなり影響されてその気になってる、爆)、
まじめな理由としては、個人的に翻訳とかしている cobbler が Python で書かれていて、もちょっと内部処理を読めるようになりたいなと。結構いろいろいじったりしてバグとかおかしな挙動を見つけては ML で報告とかしてるんだけどね、やっぱりパッチとか投げれるようになりたい、ちょっとかっこいいし(笑)。まあ、少しぐらいはオープンソースコミュニティに貢献していきたいということです。
とりあえず、IDEA*IDEAをパクっ(ry、以下のポリシーで進めます。
では早速勉強開始〜。この本、700ページ(!)近くあるんだけど、がんばって進めていきたいと思います。
2008/02/19/ 23:52
2008/01/23/ 21:27
2007/12/07/ 10:36
2007/07/23/ 02:06
2007/07/14/ 05:40