Archives
18/11: Pythonを触っています
にしきへびにしきへび。ぱいそんというのはプログラム言語のひとつです。知ってる人は既に知ってるし興味のないひとにはまったくもって縁のない話なのでそのへんご斟酌いただく方向でひとつ。
Pythonという言語とRubyという言語がよく聞かれるようになり、Rubyって名前かわいいよねと思って取っついてみたんだけど即放り投げたあたくし。名前とロゴはすんごく良かったんだが記述方法が気に入らなかったの。好きな人ごめんなさいほんとごめんなさい。だってPerlきらいなんだもの。なんとなくだけど、あれに似てたんだもん。
でもRubyの悪口を言えるほど知ってるわけではないしそういうつもりもないのよ。
で、Rubyという素敵な名前の言語を放り出したので、Pythonというのをさわり始めているわけです。
ちなみにPythonも持ち上げたりけなしたりできるほど知ってるわけじゃないです。書いたコードはトータルでも100行に届かないす。
脈絡なくてすいませんけれど、あたしがPythonをはじめた理由はすごくくだらなくて、
1:phpだけは書けるようになったけど、なんかプログラマっていろんな言語使えるものらしいし
2:違う思想で生まれた言語を学ぶのもなんかの役に立ちそうだし
3:コンパイルしなくていいし(←コンパイルが好きじゃないの。筋の通った説明できないけど面倒なの)
4:ソースの最初にパス書くのがイヤじゃなくなったし、パーミッション変更するのも慣れたし(←すごく嫌いだった)
5:それにヘビだし
みたいな。うわーほんとにくだらないよー
以下はその、コンピュータで動くへびのはなし。
じつはスタート時点でよろけています。
なんか、名前はよく聞くんだけど使ってる人の姿をあまり見かけないのよね。
何か調べても「どばっっっっっ」と玉石混淆の情報が返ってこないのよ。phpが盛り上がってたときの空気とはまるで違うのね。ちなみにおねーさんはphpだいすき。変数の前に$記号が付くのがステキ。んもう大好き。
で。Pythonて(あちこち見る限り)評価は決して低くないのに、どういうこっちゃ。
で、根拠レスだけど考えてみた。
ドキュメントの充実度が普及の足を引っ張っているんじゃなかろか。とか。
じゃあおまえがやれというのがこういう世界なのですけどほんとそのへんはすいません。ほんとすいません。
いきなりネガでアレなんですけど、ユーザグループのWebサイトを見に行っても記事が2004年とかのゴロゴロしているのね。まさかユーザ不在か?って思うほど。
ライトユーザってこういうところで二の足を踏むんじゃないかしら。あたしがむしろそうなんだけど。
「あんまり活発じゃないのかな?」→「普及しなさそうだし、様子みようかな」→「あーそんなのもありましたねGoogleが使ってる奴でしょ?」みたいな。
あたしphpやれそうかなって思ったのは、オンラインのリファレンスのまとまりが良かったからというのも大きかったの。LL(軽量言語?)の世界じゃphpのドキュメントがいちばん読みやすいし、探しやすい。MySQLも全く同様。逆にPerl世界のCPANとか迷宮過ぎだよ。あんなとこから情報を探そうなんてとても思えないんだもの。
とっつきやすいから裾野が広がるんだよ。と思う。
あ、始めても情報なくて困るってことはなさそう、みたいな安心感というか、そういった空気がもたらす恩恵ってたくさんありそうなんだけどね。
きっといまは英語読める人が本家のドキュメント読んじゃうだろうから、わざわざ日本語にするとかいう作業に手を出すヒトがあんまりいないのかもしれない。
なんだよースペイン語なら読めるのにさー
すいません嘘です。大きく出すぎました。
で、Python。配列っぽい変数が多彩。いままでphpオンリーみたいな生活だったのでコレがすごく新鮮。
リスト、タプル、セットとかなんじゃこらな世界。本を詳しく読むと、このへんの考え方がとても面白い。
とくにset型は。
うん。
いいよいいよ。
同じ値の重複を認めない配列みたいなのなの。集合に使える。これは熱い。
phpだと array_unique()ってやらないといけなかったしね。
現時点での感想
1:val++とかval--くらいはいいじゃないか。いいじゃんかよー。やらせてよー。
2:switch文が欲しいよう。if~elifとか勘弁。
※このへんは理解が深まるにつれ変わるかもしれないけど。
3:zip()って関数が熱い。zipファイルつくるんじゃないよ。二つの配列を平行してと綴じこめるの。zipper(ちゃっく、ふぁすなーのあれだ)のことらしい。
$i=0;
while($list_a[$i]){
$arr[] = array($list_a[$i], $list_b[$i]);
$i++;
}
みたいなのが、
zip(list_a,list_b)
でできる。うわああ。なんてステキ。
ちなみに何に活用できるかはそのうち考えます。
文字のかけ算が謎
「print '-' * 20 とやると-罫線が引けて便利です」という記述をあちこちで見かける。
ほんとに便利だと思っているの?どこで使うのよ。
一瞬、HTMLの長大なテーブルを書くのに!?とか思ったけど、
print '<tr><td></td><td></td></tr>' * 20
……(゚∇゚)ナカミガナイヨ
値埋め込まなきゃいけないんだからやらないよねー。きっと賢い使い方があるんだろう。罫線以外の。
リストの扱い
list = [12, 77, 48, 55, 97, 36, 28]
print list
[12, 77, 48, 55, 97, 36, 28]
とでる。ふんふん。
最大値
print max(list)
97
最小値
print min(list)
12
ふんふん。
平均値
print average(list)
NameError: name 'average' is not defined
print ave(list)
NameError: name 'ave' is not defined
平均値がわかんない。適当にやってみたら「知らんがな」と怒られた。
並べ替えるだけじゃないから足しこんで割るのであろうか。
まあいいや。よくねえな。そのうちわかるであろ。
リストをループで回す
for i in list:
print i
seq = range(7) #listがぜんぶで7個だから7
for i in seq:
print list[i]
どっちもおなじ。
で、ループを抜けたあとで
print i
97
ははーん。ループ内でのみ使える変数ですってことではないのね。
うん、今日はここまで。
En savoir plus ...

