2011/02/28

魔法使いの弟子(その9-1) ~Pythonはじめました~

【ミッション: 是非 Python やりましょう (`・ω・´)】

東京大学の mono さんから、Python という言語を勧められた。しかもだいぶ前に

ぼくは当時、3D プログラミングに興味があったのだが、どうやら Python ならばそっち方面にも強いらしい。

というわけで、そろそろぼくも Python をやってみようかなと思った。どんだけ放置してたんだよ、と。



まず、Python 環境を構築しよう。

せっかく PHP 環境(というか XAMPP)を USB メモリに入れて持ち運べるようにした事だし、ついでに Python もポータブルじゃなくちゃ!

というわけで、Portable Python をダウンロード & インストール……したいところだが、実は Python には 2.x 系と 3.x 系という2種類の系統があり、どちらかを選ばねばならない。

調べてみたところ、
  • 2.x 系と 3.x 系は言語仕様が大幅に異なる
  • 今のところはまだ 2.x 系が主流である
  • Java ほど下位互換性がない
等々の情報が見つかった。特に、『2.x 系のソースが 3.x 系の環境で動作しない事が多い』という点は(少なくとも)ぼくにとって困りものである。どちらを導入するかは悩みどころであるが、まだ 3.x 系の使い手が少ないという理由から、ぼくもみんなと同じ 2.x 系を導入する事にした。

ぼくはここから PortablePython_1.1_py2.6.1.exe を落とした。どうせすぐ新しくなるだろうから 2.x 系であれば特に細かなバージョンには拘らない。



ちなみに Python 自体はちっちゃな言語であり、パワフルなプログラムを開発していくには様々なライブラリの力を借りる必要があるらしい。

ゆえに、Portable Python には以下のライブラリや開発支援アプリケーションが標準でバンドルされている。何がなにやらという状態ではあるが。
  • Django-1.0.2-final
  • IPython-0.9.1
  • PIL-1.1.6
  • Py2exe-0.6.9
  • PyGame-1.8.1
  • PyReadline-1.5
  • PyScripter v1.9.9.6
  • PyWin32-212
  • Rpyc-2.60
  • SPE-0.8.4.c
  • wxPython-unicode-2.8.9.1
前口上はさておき、さっそくインストール。意外と時間がかかるので、売店でおやつを買ってきて食べた。

インストールが終わり、ようやく試運転。便利なことに PyScripter という IDE が標準でくっついてきた。こんなの。

試しに
print('Hello, world')
と入力して、実行ボタンを押すと、コンソールにちゃんと“Hello, world”と表示された。やったね!



せっかくなので、標準で入っている PyGame ライブラリを使ってウィンドウを作ってみた。参考にしたのは『Pythonでゲーム作りますが何か?』である。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pygame
from pygame.locals import *
import sys

SCREEN_SIZE = (640, 480)  # 画面サイズ

# Pygameを初期化
pygame.init()

# SCREEN_SIZEの画面を作成
screen = pygame.display.set_mode(SCREEN_SIZE)

# タイトルバーの文字列をセット
pygame.display.set_caption(u"Tercel")

# ゲームループ
while True:
    # 画面を白色で塗りつぶす
    screen.fill((255, 255, 255))

    # 画面を更新
    pygame.display.update()

    # イベント処理
    for event in pygame.event.get():
        if event.type == QUIT:  # 終了イベント
            sys.exit()

実行してみた。
わー、できた。なんかアレだけどとりあえずできた。

PyScripter はシンタックスハイライトやら入力補完やらの使い心地がよく、これらのお陰で今まで新しい言語を学ぶ際に感じていた諸々のフラストレーション(認知負荷とか)がだいぶ低減されているように感じた。

これで、USB 一本あれば、おうちでも学校でもネットカフェでも快適にプログラミングのお勉強ができるようになったよ。わーい。