wvogel日記

自分用の技術備忘録が多めです.

Python test

合宿や小豆島旅行の記事を書かないといけないなあと思いつつ、なかなかPCと向かい合う時間さえとれない今日この頃。


Pythonの環境を整えるかあ、と思う。
早速windows7を立ち上げる。
インストール方法を調べてみるけれど、なんか段々面倒になってくる.....
とりあえずコマンドプロンプト起動して、Pythonの環境が奇跡的に既にインストールされていたりしないかな、と、あるはずのない期待を込めて、

python

とタイプ。


したら。
なんかインタプリタ動いたーー!!
過去の自分は、Python環境を既に確立してくれていたようです......
純粋に感動。


早速Pythonの文法を色々調べてみる。
私、C/C++,HSP,Haskell以外の言語触ったことなかったですけれど、びっくり。
なにこれ。
ttp://www.oklab.org/python.htmlを参考に調べてますが、
リストのデータ構造が標準で使えるし、無名関数の記述も、Haskellみたいにできる。

>>> y = lambda x:x**2
>>> print y
<function <lambda> at 0x01805070>
>>> print y(5)
25

面白いですね、Python
ちょっと興味湧いてきた


というわけで
九九の表示をさせてみた。test.pyに保存、

python test.py

で実行

def kuku():
    for i in xrange(1,10,1):
        for j in xrange(1,10,1):
            print '%2d'%(i*j),

        print ""

kuku()

桁数揃えの処理が面倒.....
まだ慣れてないから、xrangeの使い方も見よう見真似。
Haskellでは、

import Control.Monad

list = [x*y | x <-[1..9] , y <-[1..9] ]

main = forM_ (partition list) print

partition :: [a] -> [[a]]
partition [] = []
partition ls = a:partition b
  where (a,b) = splitAt 9 ls


次いで、階乗

def kaijou(x):
    if (x<=0):
        return 1
    return x*kaijou(x-1)

print kaijou(4)

Haskellでは、

kaijou x = product [1..x]