hrkt0115311の、迷えるプログラミング教室  RSSを登録する

プログラミングに興味はありますか? 素人が入門書片手にソースコード書いたりcgi作ったり、迷子になったりするメルマガです。広大なプログラミングの森で、一緒に迷子を楽しんでみませんか?

最新号をメルマガでお届けします    
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
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

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
最新号をメルマガでお届け
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。

最近の記事

上へ戻る