2009/04/21
「hrkt0115311の、迷えるプログラミング教室」Vol.86 ~Python入門中の巻~
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 「hrkt0115311の、迷えるプログラミング教室」Vol.86 ━━━━━━━━━━━━━━━━━━━━━━━Python入門中の巻 おはようございます。一月前は、まだかなり寒かったのに、この一月でずいぶんと あたたかくなりましたね。みなさまいかがお過ごしですか? メルマガを登録して下さってる方、それからLDRに登録して下さってる方、 初心者のメルマガにおつきあいいただきありがとうございます。 http://www.mag2.com/m/0000267290.html http://reader.livedoor.com/about/http://archive.mag2.com/0000267290/rss10.xml では、今号をお届けいたします! ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ○目次 ・Python 2.6.1 を色々いじくってます ・PythonでFizzBuzz ・「逆引きRuby - 逆引きRuby」のありがたさが身にしみた件 ・みんなのPython 改訂版 買ったよ! ・Pythonで「AmazonURL整形お手伝いさん」+α ・Pythonで、被はてブ数表示整形スクリプト ━━━━━━━━━━━━━━━━━━━━━━━━━━━免責事項 ソースコードは、発行者が実際に動かし、構文チェックなどもしていますが ご利用になられて万一損害が生じた場合、保証することができません。 ご利用になられる際は、ご自身でご確認になられた上で、お試し下さい。 ━━━━━━━━━━━━━━━━━━言語処理系等の導入について Perl,PHP,Python,Rubyの入手先と、XAMPPの入手先を紹介します。 ○The Perl Directory - perl.org http://www.perl.org/ ○日本PHPユーザ会 http://www.php.gr.jp/ ○Python Japan User's Group http://www.python.jp/Zope/ ○Ruby Install Guide http://preview.tinyurl.com/4ghc3o ○XAMPP http://www.apachefriends.org/jp/xampp.html ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ○ Python 2.6.1 を色々いじくってます 新しいものがいいのかなと思ったのですが、入門者は2.x系を触った方が これまでの遺産の恩恵を受けることができるからいいよー、的な記事を 読みまして、Python 2.6.1を触っています。 テキスト処理がちょっとだけできるようになりました。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ○PythonでFizzBuzz #-*- coding:shift_jis -*- num = 0 while num < 100: num += 1 if num % 3 == 0 and num % 5 == 0: print num,'FIZZ BUZZ' elif num %3 == 0: print num,'FIZZ' elif num %5 == 0: print num,'BUZZ' else: print num ----- 去年Rubyで書いたスクリプトをPython用に手直ししました。 Ruby版は下記です。 a = 0 while a < 100 a += 1 if a % 3 == 0 and a % 5 == 0 puts "#{a} FIZZ BUZZ" elsif a % 3 == 0 puts "#{a} FIZZ" elsif a % 5 == 0 puts "#{a} BUZZ" else puts a end end ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ○「逆引きRuby - 逆引きRuby」のありがたさが身にしみた件 http://www.namaraii.com/rubytips/ 去年、Rubyを勉強してた時に、よくお世話になりました。「こんな風に したいのだけど、どう書くのだろう」って時に、紙媒体のテキストも使いましたが こちらのサイトにもお世話になりました。 Pythonでも同様のサイトがあるのかもしれないのだけど、ちょっとまだ 出会えずにいます。 それで、Pythonのメーリングリストに、「どっから手をつけていいか分からない」(意訳) と、質問を投げたところ、幾つかご助言いただきました。 ソースコード読むならこうしたらいいよとか、他の言語やったことあるなら 移植してみると勉強になるよとか。「書くのが大事だよ」、とか。 Rubyの時もそうなんだけど、その言語処理系のユーザーさんの コミュニティが存在してありがたいなぁ。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ○みんなのPython 改訂版 買ったよ! Amazon.co.jp: 新版Perl言語プログラミングレッスン入門編: 結城浩: 本 http://www.amazon.co.jp/dp/4797336803/ref=nosim/?tag=ermg-22 Rubyをやる前に、変数や繰り返し、それにコンソールからテキスト処理系に スクリプトを渡す方法など、手取り足取り教えてもらったのが上記書籍です。 Amazon.co.jp: みんなのPython 改訂版: 柴田 淳: 本 http://www.amazon.co.jp/dp/4797353953/ref=nosim/?tag=ermg-22 先日、改訂版が発売されましたよね。まだ全部は読み終えてないんだけど、 このテキストも0からスタートできるように書かれているので、Pythonが 初めてな人だけじゃなくて、プログラミングを始めたい人も、安心して 手に取ることができると感じました。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ○Pythonで「AmazonURL整形お手伝いさん」+α http://enjoy-programming.g.hatena.ne.jp/hrkt0115311/20080618/1213748550 Rubyで書いたスクリプトを移植してみました。まだPythonの書き方がよく 分からないので、今知ってることで動くように改造しました。 #-*- coding:shift_jis -*- import re def asin_mix(url): asin = re.compile('[0-9A-Z]{10}') a = asin.search(url).group() aid = 'hrkt0115311-22' #アソシエイトIDの設定 w = 3 #分岐用の数値。1はアソシエイトID込み、2は短いURLになる #3はアソシエイトID込みのはてな記法、4は短いURLのはてな記法版 if w == 1: print 'http://www.amazon.co.jp/exec/obidos/ASIN/%s/%s/' %(a,aid) elif w == 2: print 'http://amazon.jp/dp/%s' %(a) elif w == 3: print '-[http://www.amazon.co.jp/exec/obidos/ASIN/%s/%s/:title:bookmark]' %(a,aid) elif w == 4: print '-[http://amazon.jp/dp/%s:title:bookmark]' %(a) f = open('url.txt','r') #読み込み専用モードでテキストファイルを読み込み s = f.readlines() #一行ずつリストにしてリストsに格納 f.close() for i in s: #リスト一つ一つに、定義した「asin_mix」関数を適用 asin_mix(i) AmazonのURLを含んだファイルを「url.txt」として保存して使います。 一行ずつ処理する仕組みです。 変数wに1〜4の数字を入れることで、どう処理するかを選べるようにしました。 ちなみに、URLに10文字以上連続する英単語が含まれていると、ASINではなく そっちを引っこ抜いてしまいます。このあたりは、正規表現のマッチングが きちんと出来てないので、分かるようになったら手直ししたいです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ○Pythonで、被はてブ数表示整形スクリプト http://d.hatena.ne.jp/hrkt0115311/20080616/HatebCgi 上記も移植してみました。移植といってもCGIにできたのではなくて、 コマンドプロンプトから使う仕組みです。 #-*- coding:shift_jis -*- f = open('b_url.txt','r') #読み込み専用モードでテキストファイルを読み込み s = f.readlines() #一行ずつリストにしてリストsに格納 f.close() w = 2 #1ならURL+被ブクマ数イメージ表示、2だとはてな記法で「タイトル・被ブックマーク・リスト」 if w == 1: for i in s: a = i.strip() #iに含まれている改行を取り除く print '%s <a href="http://b.hatena.ne.jp/entry/%s"><img src ="http://b.hatena.ne.jp/entry/image/%s"/></a>' %(a,a,a) elif w == 2: for i in s: a = i.strip() print '-[%s:title:bookmark]'%(a) AmazonのURL整形の時と同じように、行単位で処理をかけます。このソースコードの 場合は、「b_url.txt」を使っていますね。 ■ 編集後記 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ はてなユーザーであることに変わりはないのですが、メインブログを はてなダイアリーから、FC2blogに切り替えました。 旧 http://d.hatena.ne.jp/hrkt0115311/ 新 http://hrkt0115311.blog10.fc2.com/ テンプレートを設定したり、データをインポートしたり、ランキング的なものが 全て0にリセットされたりと色々あったのですが、「GoogleAnalytics」を入れたり 「google-code-prettify」の設定方法を覚えたりできたのが収穫でした。 ・google-code-prettify http://code.google.com/p/google-code-prettify/ 予約語に色づけすることができます。 引き続きどうぞよろしくお願いいたします。 それではまた、次号でお会いしましょう^^ ■ いただいた反響について ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 「こんな仕組み作れないかな」とか「説明不足で分からないよ」といったご指摘を お寄せいただけると嬉しいです。みなさまの声で、メルマガを育てていきたいです。 また、頂戴したメールをこのメルマガで紹介させていただくかもしれません。 もし、公開を望まれない場合は、恐れ入りますが、「発行者のhtkt0115311に読んで 欲しいだけで、メルマガには掲載しないで」などとお書き下さると助かります。 ■ 転送や再配布について ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ このメルマガをご紹介いただく際は、 このメルマガのURL http://www.mag2.com/m/0000267290.html などを 並記し、私の書いた文章であると分かる形にして下さると幸いです。 メルマガの転送については、転送者さん・転送されたメールを受信される方に 迷惑でない範囲であれば歓迎いたします。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ メールマガジン「hrkt0115311の、迷えるプログラミング教室」 ○発行者 htkt0115311(どんジレ) ○発行システム 『まぐまぐ!』 http://www.mag2.com/ ○配信中止はこちら http://www.mag2.com/m/0000267290.html ○公式サイト http://enjoy-programming.g.hatena.ne.jp/hrkt0115311/ ○blog http://hrkt0115311.blog10.fc2.com/ ○Twitter https://twitter.com/hrkt0115311 ○はてなハイク http://h.hatena.ne.jp/hrkt0115311/ ○Wassr http://wassr.jp/user/hrkt0115311 ○お問い合わせ enjoy.ruby@gmail.com ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-
2009/08/27 「hrkt0115311の、迷えるプログラミング教室」Vol.91 ~htmlSQLで「みそ録」作ったよ! の巻~
-
2009/07/19 「hrkt0115311の、迷えるプログラミング教室」Vol.90 ~URL指定すると、はてな記法を返すスクリプトの巻~
-
2009/07/13 「hrkt0115311の、迷えるプログラミング教室」Vol.89 ~XML処理するTwitterまとめスクリプト改編の巻~
-
2009/07/13 「hrkt0115311の、迷えるプログラミング教室」Vol.89 ~XML処理するTwitterまとめスクリプト改編の巻~
-
2009/04/25 「hrkt0115311の、迷えるプログラミング教室」Vol.88 ~HTMLの部分置き換えスクリプトの巻~



