HPO機密日誌

自己をならふといふは、自己をわするるなり。

Pythonへの熱い思い その後

はしかにかかったみたい。なにやってんだろうねぇ...


# sort_list
# 二分木的にわけていく、[a,b]という単位で、aが基準値とそれ以下、bがそれを超える数
# ということは、nとn+1の要素を比べてどんどん交換していくということか?
# 結局、左から大きい順に並べていく方式が私には一番わかりやすかった。
# いや、それしかできなかったというべき。 orz

def sort_list(x):
L=
first=x.pop(0)
L.append(first)
for a in x:
j=0
loop=len(L)
# print "x=",x,"L=",L,"a=",a,"j=",j
while j=L[j]:
L.insert(j,a)
j=loop
j = j+1
# print "a=",a,"j=",j
x.insert(0,first)
return L

このあとL[1:]という表現を覚えて書き換えた。


def sort_list(xx):
L=
L.append(xx[0])
x=xx[1:]
for a in x:
j=0
loop=len(L)
while j=L[j]:
L.insert(j,a)
j=loop
j = j+1
return L

ちなみにウェブで配布されているのってタブがスペースに変換されてたりするけど、私の愛用のemeditorでコピペしてPython形式で保存してやると自動的にタブに変換されるようだ。

importも必須のものをメモっておく。


>>> from math import *
>>> from random import *

ちなみに100個の整数の乱数を発生させてソートしても一瞬だった。


>>> for i in range(100):
ll.append(randrange(100))

さすがに10万個だとこんなアルゴリズムじゃ帰ってこない。もっとまじめに考えないとだめみたい。

Tutotrialを一通り「見た」。圧倒的に「理解」には至っていないが、少なくとも[http://d.hatena.ne.jp/hihi01/20080205/1202190990:title=昨日の「誤差」の問題]も、「__future__」のおまじないの意味もわかった。

Pythonのプログラミングを勉強するために、まずはこれを自分なりに後で訳してみたい。

import this

The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

■追記

いや、おっしゃるとおり!

print "Hello, world!\n" # perl, python, ruby 共通!

と書ける言語からはじめた方が、教える方の効率も、教わる方の満足度も高い。

実際、初心者な、あまりに初心者な自分でフィボナッチとソートのプログラムを初めてトライ&エラーで書いてみて、プログラミングってこうやるんだ!って実感があった。CとJavaではいまだにたどりつけていない。