Pythonのお勉強 Part3 ..
75:デフォルトの名無しさん
09/02/21 02:21:17
>>39
Cythonの方がいいよ
76:デフォルトの名無しさん
09/02/21 02:30:13
うちのFreeBSDのPythonちゃんが2.5.4になったお
77:デフォルトの名無しさん
09/02/21 02:39:26
>>73-74
やれやれ、嘘を書くのはそこまでにしなさい。関数タイプの書き方許される様になったのは昔から。2.0とかじゃないの。
78:デフォルトの名無しさん
09/02/21 03:26:54
>>73
式っていうなら昔からもこれからも式だろw
3.0で文から関数に変わったんだろ
79:デフォルトの名無しさん
09/02/21 08:32:52
>>72
IPython 使ってみな。超便利だぜ。
In [1]: ord 'A' # これを
------> ord('A') # 勝手にこう解釈してくれる
Out[1]: 65
80:70=79
09/02/21 08:35:46
うわー、恥ずい。完全勘違い。
(1,)はタプルだけど(1)は1ってだけの話だな。
Python3.0ではIPython使えないしな。
>>77
from __future__ import print_function ってすればの話だよね。
81:デフォルトの名無しさん
09/02/21 10:11:50
>>80
式っていうなら昔からもこれからも式だろw
3.0で文から関数に変わったんだろ
82:70=79
09/02/21 10:36:05
>>81
俺は式とか文とかいう話題には参加してないが?
83:デフォルトの名無しさん
09/02/21 12:32:19
Pythonスレに粘着してるのは多分一人だと思うんだが奴は何がしたいのか
84:デフォルトの名無しさん
09/02/21 13:09:12
その一人は83の脳内にいる。
85:デフォルトの名無しさん
09/02/21 15:06:22
ぼくたちの心のなかにいるんだ
86:デフォルトの名無しさん
09/02/21 17:28:48
そもそも2chってめっきり人減ったよな
げろゆきが魅力無くなって手放したのも
理解出来る
87:デフォルトの名無しさん
09/02/21 17:41:17
URLリンク(lucumr.pocoo.org)
jinja2ってこんな面倒なことしてたんだな。
def bar(a=a):でいいと思うんだけど
88:デフォルトの名無しさん
09/02/21 18:23:03
結局
パイソンかルビーどっちがいのよ。
ルビーは日本人口が多くて
パイソンはハッカーも認める初心者にもおすすめの奥の深い言語
って聞いたんだけど。
89:デフォルトの名無しさん
09/02/21 18:29:29
gamilのパスワードを変えるスクリプトを
urllib,urllib2,cookielibで書いてみた
Rubyよりも簡単な気がするのは樹の精?
90:デフォルトの名無しさん
09/02/21 18:31:10
どっちも同じようなもんだろ
91:デフォルトの名無しさん
09/02/21 18:58:44
Python が連立方程式だとすれば
Ruby はつるかめ算みたいな感覚かな
92:デフォルトの名無しさん
09/02/21 20:00:16
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
早稲田理工スレの次スレ [大学受験]
93:デフォルトの名無しさん
09/02/21 23:14:13
つURLリンク(www.youtube.com)
94:デフォルトの名無しさん
09/02/21 23:36:24
パイパンかこうぜ
95:デフォルトの名無しさん
09/02/21 23:45:28
>>88
最近Google App Engineのために勉強がてら出来るだけPythonを使うようにしている
いままではRubyで書いていた、仕事で使う書き捨てツールや日常の自動化ツール等をPythonで書くようにした
その結果感じたのは
使いやすさではRubyの圧勝
96:デフォルトの名無しさん
09/02/21 23:53:59
最近勉強がてらに出来るだけ英語を使うようにしている
いままでは日本語で読んでいた、仕事で使う本や趣味の本等を英語で読むようにした
その結果感じたのは
使いやすさでは日本語の圧勝
97:デフォルトの名無しさん
09/02/21 23:58:38
一応、慣れの問題は差し引いて考えてるよ
98:デフォルトの名無しさん
09/02/21 23:58:57
>>95
判断しかねるので、もうちょっと具体的に聞きたいな。
99:デフォルトの名無しさん
09/02/22 00:14:15
最近Google App Engineのために勉強がてら出来るだけPythonを使うようにしている
いままではRubyで書いていた、仕事で使う書き捨てツールや日常の自動化ツール等をPythonで書くようにした
その結果感じたのは
使いやすさではPythonの圧勝
100:デフォルトの名無しさん
09/02/22 00:16:20
str.len() じゃなくて len(str) だったり
str(u'ほげ') すると死んだり
Ruby 使ってたら疑問にも思わなかったことが
Python だと「あれっ?」て思うことはかなりある
101:95
09/02/22 00:17:00
まず第一にPythonのドキュメントって読みにくくない?
第二に len がメソッドでなかったりする一貫性の無さが
未知の仕様の推測やドキュメントのどこを調べればいいのかの推測を難しくする
まぁ、これは慣れれば問題ないというか、慣れれば逆にこっちの方が良いのかもしれないけど
こういうのって慣れにくさの原因にもなるでしょ
あと、ライブラリのインターフェースがユーザーフレンドリーじゃない感じ
正規表現が言語に溶け込んでなくて使いにくい
102:デフォルトの名無しさん
09/02/22 00:20:25
>>> u'ほげ'.__len__()
2
>>> 'ほげ'.__len__()
4
>>> len(u'ほげ')
2
>>> len('ほげ')
4
>>> len(u'ほげ'.encode('utf-8'))
6
>>> len(u'ほげ'.encode('ujis'))
4
>>> str('ほげ')
'\x82\xd9\x82\xb0'
>>> str(u'ほげ')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters
in position 0-1: ordinal not in range(128)
>>> str(u'ほげ'.encode('utf-8'))
'\xe3\x81\xbb\xe3\x81\x92'
>>> str(u'ほげ'.encode('ujis'))
'\xa4\xdb\xa4\xb2'
103:デフォルトの名無しさん
09/02/22 00:21:49
>>101
>まず第一にPythonのドキュメントって読みにくくない?
少なくとも Ruby よりましですね
104:デフォルトの名無しさん
09/02/22 00:23:36
正規表現については、perlより使いやすい構文に出会ったことがない。
やはりfirst class扱いされてると使いやすさは段違いだ。
105:デフォルトの名無しさん
09/02/22 00:23:53
lenくらい光速で覚えられないゆとりはRubyを使えばいいよね。
106:デフォルトの名無しさん
09/02/22 00:26:12
私がPythonにイラっとくるのは戻り値がない(selfを返さない)メソッドが多いことかな
obj.hoge().fuga().hage()
っていうことが(出来るケースもあるけど)出来なくて鬱陶しく感じるときがあります
式と文が区別されてることは事情が判るので我慢出来るんですが
107:デフォルトの名無しさん
09/02/22 00:26:14
>>101
RubyはどうかしらないけどPythonのドキュメントは俺も読みにくいと思う。
108:デフォルトの名無しさん
09/02/22 00:26:49
C++とかの正規表現よりまし
¥記号いくつ並べるんだよって思う
109:デフォルトの名無しさん
09/02/22 00:29:21
読みにくいと思うひとは具体的に例をあげてもらえますか?
110:デフォルトの名無しさん
09/02/22 00:32:39
初めてのPythonにUNICODEの扱いがほとんど書かれてないし
しかも間違ってるwことかな
111:デフォルトの名無しさん
09/02/22 00:33:43
>>109
まず例が少ないよ
112:デフォルトの名無しさん
09/02/22 00:35:51
>>105
lenが覚えられないとは書いてないじゃない
lenがあることで他の仕様が推測しにくくなるった書いてるんですよ
113:デフォルトの名無しさん
09/02/22 00:36:02
>>110
あれは著者が UNICODE についてなにも知らないので
触れてるフリしてさりげなくスルーしてるだけかと
114:デフォルトの名無しさん
09/02/22 00:37:34
>>87
違いは、
def bar(a=a): だと barが定義された時点のaの値が func_defaultsに入る。
URLのはcell creationとある様に、barが呼び出された時点のaの値がfunc_closureにcellオブジェクトとして格納される。
…くらいかな、。jinja2内での用途は知らないけど、
locals()の返す辞書にaを含めるという点はどちらも満たしてるし、
記事にはcellはoevrheadと書かれているので、cellオブジェクト自身が必要なのではなく
結果だけ欲しいのであれば、どちらでもいいのかもしれない。
115:デフォルトの名無しさん
09/02/22 00:37:48
流れを切る様ですみません。
class C:
f = lambda x: x + 1
と書いて、C.f(3)などとやろうとすると
fの第一引数がCのinstanceになってしまうのですが、
なんとかならないでしょうか?
今は仕方ないので
@classmethod
def f(cls,x): return x + 1
としていますが、わずらわしいです。
116:デフォルトの名無しさん
09/02/22 00:38:48
カッコ無しでメソッド呼び出しをできるようにしてしまったばっかりに
メソッドオブジェクトの代入に特別な文法を導入せざるを得なかったRubyってかっこいいよね。
117:デフォルトの名無しさん
09/02/22 00:39:36
tupleとlistの使い分けが良くわからないんですけど
それぞれに決まった用途ってあるんですか?
118:デフォルトの名無しさん
09/02/22 00:44:17
4.16 Why are there separate tuple and list data types?
URLリンク(www.python.org)
119:デフォルトの名無しさん
09/02/22 00:44:24
>>115
f = staticmethod(lambda x: x + 1)
120:デフォルトの名無しさん
09/02/22 00:48:54
>>119
できました!
ありがとうございます。
121:デフォルトの名無しさん
09/02/22 00:54:22
>>117
tuple は型が違うものを混ぜても気にせず放り込んで
list は型がそろっている
という使い分けを無意識にしてるような気がします
122:デフォルトの名無しさん
09/02/22 00:56:53
>>121
listで型をそろえるとなるとtreeが作れないね
123:デフォルトの名無しさん
09/02/22 01:05:03
そうしないといけないって訳じゃないのでは
124:デフォルトの名無しさん
09/02/22 01:06:53
tuple は immutable だからね
125:デフォルトの名無しさん
09/02/22 01:08:40
>>117
tupleとlistで一番違うのは、辞書のキーに使えるかどうかかな。
tupleは辞書のキーにできるが、listはできない。
辞書のキーには変更可能(mutable)な型は使えないから。
126:デフォルトの名無しさん
09/02/22 01:09:20
pythonのlistはvectorに改名した方が実情にあっている。
そして、immutableなlistを新しく入れて欲しい。
127:デフォルトの名無しさん
09/02/22 01:10:14
>>126
同時に末尾最適化も入れないとあまり意味が無いな
128:デフォルトの名無しさん
09/02/22 01:13:21
immutableなlistとtupleの違いを詳しく
129:デフォルトの名無しさん
09/02/22 01:15:20
>>126は、力点としては関数型的なconsリストを指しているのだと思う
130:デフォルトの名無しさん
09/02/22 01:18:00
immutableなlist [a1,a2,a3,a4]は
(a1,(a2,(a3,(a4,()))))
で代用できる。面倒だけど。
131:デフォルトの名無しさん
09/02/22 01:20:05
>>130
確かにそれでできるけど、map/filter/foldとか使えないし
自前で再帰的なアルゴリズムを記述しても末尾最適化もされないから
ぶっちゃけオモチャだよね
132:デフォルトの名無しさん
09/02/22 04:29:54
lenが一貫性ないってのはよくわからん。一貫性がないっていうのは
Javaみたく配列の長さはa.length、ArrayListはa.size()、文字列の長さは
a.length()みたいのを一貫性がないというのであって、Pythonのは違うと
思う。まあ、慣れの問題だね。
133:デフォルトの名無しさん
09/02/22 05:19:36
一貫性ねえじゃんwww
134:デフォルトの名無しさん
09/02/22 05:25:43
愚かな一貫性は・・・
135:デフォルトの名無しさん
09/02/22 05:31:34
length size count
add append push_back
delete remove erase
title caption text
widget control component
list array vector
136:デフォルトの名無しさん
09/02/22 05:34:41
一貫性を定義しろ。話はそれからだ
137:デフォルトの名無しさん
09/02/22 05:38:33
goo国語
いっかん-せい ―くわん― 0 【一貫性】
最初から最後まで矛盾がない状態であること。同じ態度を持続すること。
138:デフォルトの名無しさん
09/02/22 08:35:30
Ruby厨の言うことは一貫性がない。
139:デフォルトの名無しさん
09/02/22 10:58:51
結局のところどっちも使えるようにしとけっ!
みたいな
140:デフォルトの名無しさん
09/02/22 11:08:14
>一貫性がないっていうのは
>Javaみたく配列の長さはa.length、ArrayListはa.size()、
>文字列の長さは a.length()みたいのを
>一貫性がないというのであって
どうして一つの文章で一貫性がないを二度も言う必要があるのはなぜなのかはおいといて
Javaでは「敢えて使い分けてる」んですよ
型安全と、メソッド名から型が判別出来こととの冗長性をわざと実現しているんです
141:デフォルトの名無しさん
09/02/22 11:27:49
nautilussvnを使っているんですが、クライアント認証を使ったSSLを経由してsvnサーバに
つなごうと思ったら、SSLに対応していないのかエラーが出てしまいます。
Error : callback_ssl_client_cert_prompt required
↑こんなの
なんとなく、クライアント認証用のプロンプトが必要だとか言ってるっぽいので、pythonのSSL
ライブラリでも入れればいいのかと思うのですが、対処方法ご存知のかたがいらしたら教えていただけませんか?
142:デフォルトの名無しさん
09/02/22 12:06:32
つURLリンク(www.google.co.jp)
143:デフォルトの名無しさん
09/02/22 13:02:27
>>110
間違ってるってどのへん?
144:デフォルトの名無しさん
09/02/22 13:57:52
a.__lt__(self, b) : a < b
a.__eq__(self, b) : a == b
a.__getitem__(self, i) a[i]
a.__hash__(self) : hash(a)
a.__len__(self): len(a)
hashやlenも演算子に類するものと見ればいいんジャマイカ。
実際長さは__getitem__とも密接な関係にあるしね。うっかり
同名のメソッドを定義してアボーンなんてリスクを考えれば
これはこれでありだと思ふ。
145:デフォルトの名無しさん
09/02/22 15:53:14
2.6で(まともな)sslモジュールが標準になったけど
中身がCで書かれてて
派生クラスを食ってくれんのが悩み。
146:デフォルトの名無しさん
09/02/22 17:11:00
>>145
自分で拡張したい場合は確かに悩みどころだよな。
一方で、標準機能にいろんなものを詰め込んで欲しいと考える人もいるし。
妥協点としては、基本エンジンを簡潔・高速にして、よく使いそうな機能はライブラリで容易するとか。
147:デフォルトの名無しさん
09/02/22 17:53:44
暗いなら自ら明かりをつけましょう
148:デフォルトの名無しさん
09/02/22 18:46:17
クレクレ厨乙
149:デフォルトの名無しさん
09/02/22 18:47:28
誤爆
150:デフォルトの名無しさん
09/02/22 19:52:09
pythonのlambdaで実験していて、以下の問題に突き当たりました。
識者の方がいらっしゃいましたら、
ご教授願えるとありがたいです。
//無名関数をn個リストにして返す関数
def make_funcs(n):
fn_list = []
for i in range(n):
fn_list.append(lambda x : i*x)
return fn_list
//code block
fL = make_funcs(5)
for f in fL:
print(f(10))
//実行結果
40
40
40
40
//期待する実行結果
0
10
20
30
40
for文中のiが上手く認識されていないように思えます。
Schemeのクロージャとは振る舞いが異なるのでしょうか?
151:デフォルトの名無しさん
09/02/22 20:10:18
lambda x, i=i: i*x
152:デフォルトの名無しさん
09/02/22 20:27:38
>>150
Pythonでもクロージャは環境をキャプチャするんだが
そのforループではiが逐次破壊的に書き換えられてしまう
(let束縛ではなくset!のイメージ)んでそういう動作になる
単一代入でない&クロージャをサポートする言語で破壊的なループを使って
そういう書き方をすると、そういう動作になるのが普通で、
JavaScriptやPerlなんかもそうなったはず
Pythonでは>>151のような方法で対処できるが、魔術的だと感じられるなら
ループの中でさらにdefで明示的にブロックを作って、その中で
クロージャを作ったりするといいと思うよ
153:152
09/02/22 20:34:39
例えばこんな風に書くということね
def make_funcs(n):
def make_func(i): return lambda x: i * x
fn_list = []
for i in range(n):
fn_list.append(make_func(i))
return fn_list
もっと短く書く書くこともできる
def make_funcs(n):
make_func = lambda i: lambda x: i * x
return [ make_func(i) for i in range(n) ]
154:デフォルトの名無しさん
09/02/22 20:54:37
>> 151, 152
非常に分かりやすい説明で、問題の原因が良く理解できました。
また、正しい書き方も分かりました。
ありがとうございました。
155:デフォルトの名無しさん
09/02/22 21:13:08
…で、実際処理速度はどうなの?>パイソン
PHPより早いのかな?
156:デフォルトの名無しさん
09/02/22 21:19:48
おおむねPython>Perl>PHP>Rubyってとこじゃね?
157:デフォルトの名無しさん
09/02/22 21:33:59
URLリンク(shootout.alioth.debian.org)
その手のベンチマークで定番?になってるサイトです。
言語の種類だけでなく、プログラミングの手法によっても結構変わるみたいですね。
158:デフォルトの名無しさん
09/02/22 21:47:06
URLリンク(shootout.alioth.debian.org)
159:デフォルトの名無しさん
09/02/22 21:55:27
C++が0.08秒で、PHPが48分って・・・orz
完全にやる気なくした・・www
160:デフォルトの名無しさん
09/02/22 22:01:33
>>156
馬鹿じゃない?
161:デフォルトの名無しさん
09/02/22 22:03:23
>>142
この回答って
Error : callback_ssl_client_cert_prompt required
これの対処法の回答という認識でいいんですかね・・・?
ググってみたんですがどれが回答になるのか分からなかったんですけど・・・。
そういうレベルの人はここに来てはいけないということですかね??
162:デフォルトの名無しさん
09/02/22 22:14:19
>>159
用途に合わせて言語を選ぶ。 当たり前のことじゃないか。
163:デフォルトの名無しさん
09/02/22 22:31:45
>>160
なんで?
164:デフォルトの名無しさん
09/02/22 22:33:07
>>161
こっちで質問しる
URLリンク(gimpo.2ch.net)
165:デフォルトの名無しさん
09/02/22 22:50:42
>>157
python 3 もっとがんがれ
おれもPHPが一番鈍足だとはしらんかった
166:デフォルトの名無しさん
09/02/22 22:54:23
>>163
根拠を示さないレス乞食はそっとしてあげて。
167:デフォルトの名無しさん
09/02/22 23:04:54
pass
168:デフォルトの名無しさん
09/02/22 23:34:42
インタプリタが遅いのは当たり前田のSPAM
169:デフォルトの名無しさん
09/02/22 23:37:20
まぁ>>156自体に根拠がないけどね
170:デフォルトの名無しさん
09/02/22 23:40:26
まあ・・ウェブならスクリプト言語でも十分ですけどね
2〜3秒以上もかかる計算滅多にないし
確かにベンチマークではpythonの方が良い成績のことが多いみたいだけど
スクリプト言語である以上、ドングリの背比べのような気もしないではない
ただ、pythonってphpに取って代わるメジャーなスクリプト言語になり得るのかな?
171:デフォルトの名無しさん
09/02/22 23:41:30
>>158見ると>>156の順番通りだけど?
172:デフォルトの名無しさん
09/02/22 23:44:35
>>170
パフォーマンスを気にする必要があるのは、10K問題とかだと思う。
173:デフォルトの名無しさん
09/02/22 23:57:17
しっかしPHP6はいつ出るんだ?
WEBはDBへの接続とDB自体の処理速度が一番ボトルネックだと思う。
そこが早ければある程度なら問題ないんじゃないだろうか。
174:デフォルトの名無しさん
09/02/22 23:59:41
PHPは(言語)仕様がどうのってよりも、ビジネス戦略で広まってるだけですがな。
175:デフォルトの名無しさん
09/02/23 00:02:38
10k問題という言葉・・初めて知りましたw
一万接続なんて、スクリプトじゃむりぽ
…というか、アパッチも無理なんじゃ
176:デフォルトの名無しさん
09/02/23 00:02:43
ビジネス戦略って一体何なんだ?
177:デフォルトの名無しさん
09/02/23 00:52:54
Python 3.0の変更点を調べていると、
URLリンク(text.world.coocan.jp)'sNewInPython3.0
> callable関数は削除されました。
>『callable(f)』の代わりに、
>『hasattr(f, '__call__')』が使えます。
> operator.isCallable関数もなくなりました。
とあるのですが、後者の方が書き難いのではないかと思います。
Pythonでは複数のやり方を嫌うという説明を見ました。
しかし、より良いものが残るべきとう意見は分かります。
でも、今回の件は消す必要が無かったのでは?
と思ってしまいます。
皆さんの意見はいかがでしょうか?
178:デフォルトの名無しさん
09/02/23 01:01:28
正直 2.x でも callable なんて使ってなかったからどうでもいい。
EAFPってやつだ。
179:デフォルトの名無しさん
09/02/23 01:32:36
レスありがとうございます。
EAFPという考え方、初めて知りました。
Googleで調べたら、いろいろ勉強になりました。
そもそもオブジェクトの属性が持つかどうかをチェックするよりは、
try, ecept構文で実行して、例外を補足するスタイルが推奨されているんですね。
180:デフォルトの名無しさん
09/02/23 08:03:08
>>175
> 一万接続なんて、スクリプトじゃむりぽ
Erlangなんかの実績はあるよ。
181:デフォルトの名無しさん
09/02/23 08:34:59
魚病理学者って何だ?
182:デフォルトの名無しさん
09/02/23 09:57:42
pass
183:デフォルトの名無しさん
09/02/23 11:36:33
10k問題って西暦で10000年になって桁が増えるときの問題かと思ったぜ
184:デフォルトの名無しさん
09/02/23 14:29:48
10種類も苦しいことがあるなんてどんな業界だよ。
185:デフォルトの名無しさん
09/02/23 14:42:07
休憩がない、帰れない、給料安い、休暇(取れ)ない、雇用不安定
キリがない、規則が理不尽、経費が自腹、心を病む、過労死
で10kじゃね
186:デフォルトの名無しさん
09/02/23 14:51:47
>>185
おいおい、「彼女ができない」 が抜けてるぞ
187:デフォルトの名無しさん
09/02/23 14:54:28
「彼女(or結婚)できない」、すっかり忘れてたよ
188:デフォルトの名無しさん
09/02/23 20:50:30
Erlangでいけるなら
stackless + libev でいけるだろ、たぶん、きっと
189:デフォルトの名無しさん
09/02/23 20:51:29
>>157
これ見ると、概してCよりC++のほうが早いと思って良いのかなぁ。
190:デフォルトの名無しさん
09/02/23 21:04:40
>>188
有望ではあるよね。
C10K問題への対策の一つが高次並列化なんだが、stacklessが
変数使い捨てを強化すれば、並列化との相性が良くなる。
191:デフォルトの名無しさん
09/02/23 21:08:43
C10K問題対策って普通単にサーバ分散させるだけじゃねえの?
192:デフォルトの名無しさん
09/02/23 21:13:41
>>185-191
C10K: >>185 - 規則が理不尽 + 彼女ができない + コーディング規則が理不尽
193:デフォルトの名無しさん
09/02/23 21:26:10
>>191
静的コンテンツを同時に多数同時に見てもらうだけの時代はそれで済む事もあったけど、
例えば「10万人同時ログイン&互いに同じ関心を持つ者のグループをダイナミックに」
などとやろうとすると、別の手が必要。
関数型言語が並列化と相性がいいんで、stacklessみたいなのが関数型のいい所を
取り込んでくれるといいな、というのが感想。
194:デフォルトの名無しさん
09/02/23 22:06:09
10万人同時ログインってw
GLAYの幕張ライブやないねんからw
195:デフォルトの名無しさん
09/02/23 22:14:08
チャットみたいなもんか?
よくわかんねえけど
10万人で一緒にチャットする必要は感じないが……
今の大規模サービスって別にダイナミックコンテンツでも
普通にスケールさせてないか?
勿論サーバ分散させて
196:デフォルトの名無しさん
09/02/23 22:38:39
少数のサーバーに集中
↓
安価な多数のサーバーに分散するといいぜ
↓
でも、物理メンテ大変だし、あんまり安いマシンじゃなくて
ちょっと高級な中グレードのマシンで台数減らした方がよくね?
(イマココ)
197:デフォルトの名無しさん
09/02/23 23:08:25
C10K問題の先駆けは既に、Skype、Twitterなどでも出始めてる。
10万人というのは一例で、従来型サービスの延長じゃない事を
スケールさせたい場合の問題の一つ。
198:デフォルトの名無しさん
09/02/23 23:44:25
あんまり言語とは関係ない話になってるなw
199:デフォルトの名無しさん
09/02/24 00:07:49
10万人同時チャットってwww
忙しすぎw
200:デフォルトの名無しさん
09/02/24 11:41:28
ちょっと面白そうだな>10万人チャット
201:デフォルトの名無しさん
09/02/24 12:53:56
2chのスレの一番速い流れでスレあたり1000人だもんな。
202:デフォルトの名無しさん
09/02/24 13:35:13
人数の多いチャット部屋覗いたことあるが、大半はROM専
数人が発言しまくりで、残りは単発発言の奴かな
余程盛り上がる話題が無いとそんなにログ流れんし
ログが流れる時ってのは会話が成立しない祭状態で
会話したい奴は「特定の相手とのみ会話する機能」使って身内話
203:デフォルトの名無しさん
09/02/24 14:17:58
10KのKはKOBITOのK。
204:デフォルトの名無しさん
09/02/24 16:40:23
TwitterのPublic Timelineがある意味10万人チャットみたいなものか
205:デフォルトの名無しさん
09/02/24 17:50:41
聖徳太子「10Kまで同時通話おk」
206:デフォルトの名無しさん
09/02/24 20:37:20
pythonでhtmlを処理しようと思うんだがどういう方法がベターなの?
207:デフォルトの名無しさん
09/02/24 20:37:35
>>189
Linusの回答
URLリンク(tabesugi.net)
オリジナル
URLリンク(lwn.net)
208:デフォルトの名無しさん
09/02/24 20:53:57
C++のそういうネタは好きw
209:デフォルトの名無しさん
09/02/24 23:45:18
ネストした関数をunittestモジュールで外からテストにかける方法って
ない?
210:デフォルトの名無しさん
09/02/25 00:23:43
BeautifulSoupが流行ってる
211:デフォルトの名無しさん
09/02/25 01:21:36
>>206
htmlparserってのがあるけど、速度的には正規表現で処理するのがお勧め。
212:デフォルトの名無しさん
09/02/25 01:55:50
lxml
213:デフォルトの名無しさん
09/02/25 08:37:03
"substandard programmers"が書くCのコードもそれはそれは恐ろしいけどな。
214:デフォルトの名無しさん
09/02/26 02:22:46
lxmlが最強って聞いたけどそうでもないの?
215:デフォルトの名無しさん
09/02/26 14:51:02
lxmlが最強
216:デフォルトの名無しさん
09/02/26 15:21:07
lxmlが速いみたいだよ。どうしてもpure pythonが良いならBeautifulSoupだろうけど。
217:デフォルトの名無しさん
09/02/26 20:08:27
人の書いた作例とどう動くかが多数解説されたサイトを教えて下さい
解説サイトの理論を見ても理解できません
つーかPrologしかやったことないです
218:デフォルトの名無しさん
09/02/26 20:58:40
>>217
俺はむしろPrologのほうが分からんぜ…。
・ドキュメントのチュートリアルを一通り読む
・>>1のまとめwikiにある問題集とドキュメントを照らし合わせながら読む
・とにかく書く
辺りかなぁ。
他の手続き型言語からの人なら
「自分の前に書いてたコードを今の言語に書き直してみる」
ってのも結構有効なのだろうけれど、Prologは毛色が違い過ぎて難しいだろうなぁ…。
特にユニフィケーションをフル活用するようなコードは言語としてサポートしてるPrologのほうが楽だろうし。
小さな練習問題が欲しいなら「練習問題 Python」辺りでググると大量に出てくると思う。
219:デフォルトの名無しさん
09/02/27 04:08:54
作例で数が多いとこならcookbook。でも、詳細な解説は期待できないかな。
いろんな人が投稿してるので質はバラバラだけど、
コードをベースに議論したりするので、他よりは割とコメント(解説)多めだと思う。
URLリンク(code.activestate.com)
220:デフォルトの名無しさん
09/02/27 08:52:56
generator について一言で言うと何なんでしょうか?
221:デフォルトの名無しさん
09/02/27 09:02:06
>>220
魔法
222:デフォルトの名無しさん
09/02/27 09:08:31
関数をイテレータ化するための魔法
223:デフォルトの名無しさん
09/02/27 14:28:57
今 URLリンク(www.python.jp)
の
4.7.1 デフォルトの引数値 の中の
def f(a, L=[]):
L.append(a)
return L
print f(1)
print f(2)
print f(3)
このコードを打とうとしてたんだけど、eclipseに
「.」ピリオド打つと固まってしまう。
コピペすると落ちないんだけど、直接「.」打つ方法ありませんか?
環境は
Eclipse Classic(SDK)3.4.1
Pydev 1.4.4.2636
Python 2.6
です。
お分かりの方いらっしゃいますか?
224:デフォルトの名無しさん
09/02/27 15:04:14
>>223
> 「.」ピリオド打つと固まってしまう。
「.」を入力した瞬間に、メソッド一覧を表示しようとしてると推測。
225:デフォルトの名無しさん
09/02/27 15:16:14
>>223
1日ほっとく
226:デフォルトの名無しさん
09/02/27 15:37:35
>>223
もっと早いマシン買えよ底辺ドカタ。
227:デフォルトの名無しさん
09/02/27 16:00:44
pass
228:デフォルトの名無しさん
09/02/27 17:58:08
>>220
遅延リスト
229:デフォルトの名無しさん
09/02/27 17:59:40
新しくpythonを勉強する際に、3.0対応の書籍・サイト・マニュアルはありますか?
230:デフォルトの名無しさん
09/02/27 18:36:20
>>229
はじめてのPython3
中身読んでないのでどのくらい使えるのかわからんけど。
231:デフォルトの名無しさん
09/02/27 19:08:48
URLリンク(www.catonmat.net)
URLリンク(inkhorn.org)
根性 types, object, attributes, method 理解
232:デフォルトの名無しさん
09/02/27 22:27:08
んじゃぁ
比較的新しいいい本は?
233:デフォルトの名無しさん
09/02/28 01:11:09
西尾さんが書いたJython本だな
234:デフォルトの名無しさん
09/02/28 01:34:54
>>229
スレリンク(tech板)
235:デフォルトの名無しさん
09/02/28 01:48:17
>>229
URLリンク(www.amazon.co.jp)
この本が一番日本語のPython本として一番よく出来ている。
他のがかすんで見えてしまうほどだ。この一冊さえあれば
Pythonについて完璧にマスターできるだろう。
236:デフォルトの名無しさん
09/02/28 02:47:46
>>235
その本を買って初心者を脱出したいと思います。
良著紹介ありがとうございました。
237:デフォルトの名無しさん
09/02/28 04:00:27
>>236
どういたしまして
238:デフォルトの名無しさん
09/02/28 07:30:36
>>235
Python関係ないだろ
239:デフォルトの名無しさん
09/02/28 09:29:57
>>238
はあ?
言語自体はPythonだろ
240:デフォルトの名無しさん
09/02/28 09:39:32
つか、Jythonってジャイソンって読むのか。ジェイソンだと思ってたw
241:デフォルトの名無しさん
09/02/28 09:48:20
爺さんって読むんだよ
242:デフォルトの名無しさん
09/02/28 09:48:25
>218-219
thx
パズル感覚でやってみます
243:デフォルトの名無しさん
09/02/28 11:55:31
>>239
Jthon本に対するコメントだよ
言語自体はPythonだけどその本に
Python的内容を期待してたら外れ
244:デフォルトの名無しさん
09/02/28 11:59:56
>>243
どっちかっつーとありゃJavaの本だ
ターゲット読者の絞込みが中途半端なんだよ
Java使いにとってはJavaのインストールとかEclipseとか
わざわざ説明してるのは馬鹿じゃないかと思う訳で
Python使いにとっては何が嬉しくてわざわざ
Javaインストールしてまで(ry
245:デフォルトの名無しさん
09/02/28 12:11:42
CPython から Java を呼び出して使えますか?
246:デフォルトの名無しさん
09/02/28 12:30:08
これから槍始める人は3.0かそれ以前をやるべきなのか・・・
247:デフォルトの名無しさん
09/02/28 12:40:18
2.5の日本語ドキュメントを利用できて、3.0の雰囲気も味わえる2.6
248:デフォルトの名無しさん
09/02/28 13:00:38
Guidoによると2.2の頃に書かれて改訂されたクソ本は買わない方がよいらしいよ。
249:デフォルトの名無しさん
09/02/28 13:06:40
クイックリファレンス一冊でオケ
ただし古すぎみたいな
250:デフォルトの名無しさん
09/02/28 13:19:37
Jython本をいつも推薦してくれるjava-jaの非モテ君ありがとう。
251:デフォルトの名無しさん
09/02/28 13:23:38
ジャイソン以外の良本はないのか
252:デフォルトの名無しさん
09/02/28 13:30:13
>>249の2.6/3.0対応版がもうすぐ出るよ
ピアソンがんばってくれないかね
253:デフォルトの名無しさん
09/02/28 13:49:19
すいませんアドバイスください m__m
コマンドプロンプト上でPythonを実行して
待機秒数を表示させたりする場合、
待機するループ内でprintやsys.stdoutの出力を行うと
データがどんどん流れていってしまうのですが、
それを防ぐ方法はありませんか?
254:デフォルトの名無しさん
09/02/28 13:54:03
import sys, time
for i in range(10):
sys.stderr.write("%d\r" % i)
time.sleep(1)
255:デフォルトの名無しさん
09/02/28 14:00:45
なるほど!!
どうもありがとうございます。
256:デフォルトの名無しさん
09/02/28 14:11:28
西尾さんのブログを読むべきだと思うけどな
257:デフォルトの名無しさん
09/02/28 14:12:14
>>254
すみません、ピコ秒単位で制御したいのですがどうすればいいんでしょうか
258:スルー力が足りない!
09/02/28 14:20:02
本人装った荒らし乙。
259:スルー力が足りない!
09/02/28 14:28:27
>>257
本人装った荒らし乙。
260:258 (!= 259)
09/02/28 14:38:09
図星だったwww
261:デフォルトの名無しさん
09/02/28 15:03:29
//
/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ まピョーん☆
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
262:デフォルトの名無しさん
09/02/28 16:24:57
pass
263:デフォルトの名無しさん
09/02/28 18:15:08
ぬるぽ
264:デフォルトの名無しさん
09/02/28 19:28:41
try:
ガッ
265:スルー力が足りない!
09/02/28 23:07:40
except ちんぽ as e:
266:デフォルトの名無しさん
09/02/28 23:37:00
俺の息子がexceptionalにepsironってことですね
267:デフォルトの名無しさん
09/03/01 15:15:27
SHA-1を計算するのに
f = open(target,'rb)
b = f.read()
f.close()
hashlib.sha1(b)
で計算はできたのですが
これをループを使って複数のファイルに対して行うと
途中でメモリエラーが出てしまいます(OutOfMemoryException)。
強制的にメモリを開放させるようなことはできないでしょうか?
b = ''
というようなこともしてみましたが無駄でした。
環境はIronPython 2.0.0.1、Windows Vista SP1です。
268:デフォルトの名無しさん
09/03/01 16:52:43
URLリンク(d.hatena.ne.jp)
269:デフォルトの名無しさん
09/03/01 17:04:45
入力されたフォームデータをsqliteでデータベースに溜め込むCGIをPythonで実現しようとしてるんですが
同時アクセスが有った場合にコリジョンを回避するにはどうしたらいいでしょうか?キューにしたいんですが。
270:デフォルトの名無しさん
09/03/01 17:07:42
import Queue
271:デフォルトの名無しさん
09/03/01 17:16:06
CGIじゃプロセスがそれぞれ異なるから無理でしょ。
あと、SQLiteに書き込むならロックされるはずだから
同時アクセスは気にしなくてもいいと思うよ。
272:デフォルトの名無しさん
09/03/01 17:26:26
aritayaki
273:269
09/03/01 17:26:54
下げ忘れてた。失礼。
ということは、例外を捕まえてtime.sleep(1)とかやった方がスマートですかね。
アクセスが集中したときは順番ゴチャゴチャになるかもしれないけれど。
マヌケな話で申し訳ないんですがコリジョンを意図的に発生させる方法を教えて貰えますか?
実際に例外出して見ないと不安で。
274:デフォルトの名無しさん
09/03/01 18:11:59
sqlite コマンド側からテーブルにロックかけたままにしておいて
CGI実行してみればどう?
タイムアウトはconnect時に指定できる。
あと、タイムアウトが発生してるような状態なら
時間をおいて再実行とかは、あまり意味がないだろう。
すぐにエラーにしてしまったほうがいいと思うけど。
275:デフォルトの名無しさん
09/03/01 18:44:49
ちょっと聞いてみたいことがある。
ある辞書の中から、いくつかのキーを持つ要素だけを取り出した部分辞書を作
りたい。
>>> request = {'hoge':1, 'fuga':2, 'piyo':3, ...}
>>> a = {}
>>> for key in ('hoge', 'fuga'):
... a[key] = request[key]
...
>>> a
{'fuga': 2, 'hoge': 1}
これをもっと簡潔に書く方法は無いだろうか?
276:デフォルトの名無しさん
09/03/01 18:58:39
簡潔か微妙な気もするけど
dict([(key, request[key]) for key in ('hoge', 'fuga')])
277:デフォルトの名無しさん
09/03/01 19:15:26
リスト内包表記を map にしてみた。
dict(map(lambda x: (x, request[x]), ('hoge', 'fuga')))
なんだこの微妙さは。
278:デフォルトの名無しさん
09/03/01 19:37:35
dict([(x,request[x]) for x in request if x in ('hoge', 'fuga')])
279:デフォルトの名無しさん
09/03/01 19:41:54
英語的な連中には
コレが構文的に分かりやすいのかね?
280:デフォルトの名無しさん
09/03/01 20:28:58
内包表記って便利といえば便利だけど
python の魅力・長所である、
「記述内容が形(インデント)で見える」って
ところを完全に無視しているのが何と言うか…
281:デフォルトの名無しさん
09/03/01 21:16:08
え?内包表記、読みやすいじゃん・・・
トリッキーなことやりすぎるとあれだけど。
282:デフォルトの名無しさん
09/03/01 21:17:53
forの左に書けるのが文だけで式が書けないから色々微妙なことをしないといけなくなる
283:デフォルトの名無しさん
09/03/01 21:24:04
>>280
個人的には内包表記は「記述内容が形で見える」ものの最たるものだと思うなあ。
Z = [(x / y if y != 0 else None) for x, y in zip(X, Y)]
となっていたら Z はリストで要素は x / y か None だということが一目で分かるから。
たぶん問題なのは内包表記を入れ子にすると一気に難読化するということかと。
個人的には入れ子にして読みにくくなるぐらいならバラして for 文なりにするかな。
284:デフォルトの名無しさん
09/03/01 22:10:34
276と277の比較なら276のが読みやすい。
285:デフォルトの名無しさん
09/03/01 22:24:53
>>276-278共通して
('hoge', 'fuga')
なんだけど
['hoge', 'fuga']
じゃだめなの?
286:デフォルトの名無しさん
09/03/01 22:34:59
偏向する必要がないならタプルを使う。
287:269
09/03/01 23:05:54
じゃ俺はちょっと違った切り口で。
>>276とほぼ一緒だけどfilter使えばコメント無くても何やってるか分かりやすい。
あとrequestに無いキー持ってこようとしてもエラー吐かない。
request = {'hoge':1, 'fuga':2, 'piyo':3}
def f(x): return x in ('fuga','hoge')
dict([k,request[k]] for k in filter(f,request))
288:デフォルトの名無しさん
09/03/01 23:44:01
遅くね?
289:デフォルトの名無しさん
09/03/01 23:46:22
dict([k,request[k] if k in request else None] for k in ('fuga','hage'))
290:デフォルトの名無しさん
09/03/01 23:54:14
dict{[(k, v) for k, v in request.items() if k in ('fuga','hoge')]}
3.xであれば
{(k, v) for k, v in request.items() if k in ('fuga','hoge')}
291:デフォルトの名無しさん
09/03/01 23:57:35
ごめん、↑のdict{}はdict()だ
292:デフォルトの名無しさん
09/03/02 00:10:11
見つからないkeyは結果からは無くなった方が良いのかな
293:デフォルトの名無しさん
09/03/02 00:14:25
部分辞書だからな
294:デフォルトの名無しさん
09/03/02 09:44:29
URLリンク(blog.livedoor.jp)
>本書を見てびびった人は、以前紹介した「実践Python」を薦めておく。
勧めるなよ(wwwwWwwWwwwWWwwww
295:デフォルトの名無しさん
09/03/02 09:56:50
この本が一番いいんだけどな
URLリンク(www.amazon.co.jp)
296:デフォルトの名無しさん
09/03/02 10:00:33
っ URLリンク(blog.livedoor.jp)
子飼が紹介するとクソ本認定?
297:デフォルトの名無しさん
09/03/02 15:22:57
Windowsにpythonインストールしたら
付属でついてるpython editorのデバック環境が充実してておどろき
しかしemacs key-bindになれてるからemacs ぽく使える環境で便利なのないでしょうか?
emacsのpython.elはbreak pointの設定が右クリック一発でできなくて使いにくい
298:デフォルトの名無しさん
09/03/02 15:50:51
>>294
その本出版社が潰れて買えなくなってるよ。
299:デフォルトの名無しさん
09/03/02 16:08:32
>>297
じゃぁ右クリック一発でできるように改造すれば?
300:デフォルトの名無しさん
09/03/02 17:00:12
どうみてもクソ本認定です
本当にありが(ry
301:デフォルトの名無しさん
09/03/02 17:06:56
age
302:デフォルトの名無しさん
09/03/02 17:08:06
>>297
xkeymacs入れてしまえ
303:デフォルトの名無しさん
09/03/02 21:22:48
hoge.__setitem__(key, value)
無理やりreduceで書くなら例えば
reduce(lambda d, x: d.__setitem__(x, request[x]) or d, ['hoge','fuga'],{})
こんな書き方になると思うけど、Python使いはこの例を普通こんな風には書かない
dict((k, request[k]) for k in ['hoge','fuga'])
のほうがずっと素直で短く読みやすいからね
304:デフォルトの名無しさん
09/03/02 23:26:46
はぁ?
305:デフォルトの名無しさん
09/03/02 23:35:41
複素演算の構文調べてたら、とあるSEの書いたブログが引っかかったが
そこのサンプルはNameErrorとTypeErrorの出力ばっか張ってあって役に立たなかった
306:デフォルトの名無しさん
09/03/03 00:07:05
reduce とか lambda とかそのうちなくなるだろ。
307:デフォルトの名無しさん
09/03/03 00:34:39
それはそうかもしれないけど、3.0を生き残ったことで想定寿命は激延びな希ガス
308:デフォルトの名無しさん
09/03/03 00:51:03
lambdaって無くなるのかな
309:デフォルトの名無しさん
09/03/03 01:08:45
>>297
IDLEのこと?
OptionsのConfigure IDLEを開いて、KeysでClassic Unixにすれば
C-aで行頭とかになるよ。
C-x C-s みたいなキーシーケンスもできる。
310:デフォルトの名無しさん
09/03/03 01:29:17
lambdaの中で代入とか複数の文とか出来るようになるのはいつ?
311:デフォルトの名無しさん
09/03/03 01:52:36
mapとfilterは最悪消えてもリスト内包表記で書けるけど
reduceって代用あるっけ?
312:デフォルトの名無しさん
09/03/03 01:54:42
どっちみちreduceはfold_left相当でfold_rightはないし
unfoldもないけどな
313:デフォルトの名無しさん
09/03/03 01:56:01
>>310
つーか全部式にしてほしいという発想にはならんのか
文が存在する関数型言語ってあるっけ
314:デフォルトの名無しさん
09/03/03 04:53:23
Haskellのwhereって式?
315:デフォルトの名無しさん
09/03/03 08:02:01
⊂二二二( ^ω^)二⊃
316:デフォルトの名無しさん
09/03/03 09:02:51
>314-315
ナ、ナンダッテー>ΩΩΩ
317:デフォルトの名無しさん
09/03/03 09:53:35
Haskellのwhereはcase式の一部
URLリンク(www.haskell.org)
318:デフォルトの名無しさん
09/03/03 12:15:02
URLリンク(www.atmarkit.co.jp)
319:デフォルトの名無しさん
09/03/03 12:54:49
URLリンク(www.oreilly.com)
この本の日本語版ってありますか?
320:デフォルトの名無しさん
09/03/03 13:34:23
>>245
JCC
321:デフォルトの名無しさん
09/03/03 14:53:57
>>319
この表紙は人を選ぶな…
322:デフォルトの名無しさん
09/03/03 16:16:11
>>321
俺も初めて見たときはこれはさすがにどうかと思ったよ
323:デフォルトの名無しさん
09/03/03 16:23:05
>>319
> URLリンク(www.oreilly.com)
グロ
閲覧注意
324:デフォルトの名無しさん
09/03/03 17:39:28
ただの模様じゃん
なんも樹に成らん
325:デフォルトの名無しさん
09/03/03 23:36:22
俺は樹になる
326:デフォルトの名無しさん
09/03/04 01:06:21
カバーをひっくり返して、好きな絵を描くといいよ。
327:デフォルトの名無しさん
09/03/04 07:15:06
へび(そのものあるいはその絵)を嫌うひとは心理的に
328:デフォルトの名無しさん
09/03/04 09:21:27
そもそも蛇嫌いはpythonでアウトな気がする。
329:デフォルトの名無しさん
09/03/04 12:36:48
Python の由来は Monty Python であって、ヘビは関係ないと Guido は言って
たんだがなー。まあ O'Reilly の表紙にパイソンズ出すわけに行かないか。
330:デフォルトの名無しさん
09/03/04 17:52:34
>>329
Guido的には、元ネタ的にはそうなんだが
オライリーのPython本の絵が蛇になっちゃうのはそりゃ仕方ないよなーってことで
諦めた(受け入れた)、みたいな感じだったかと
331:デフォルトの名無しさん
09/03/04 18:34:07
日本語版はおっぱいでおk
332:デフォルトの名無しさん
09/03/04 20:03:47
>>331
エロ本コーナーに並びそうだな。
333:デフォルトの名無しさん
09/03/04 21:15:19
ジャイソンかサイソン
どっち?
334:デフォルトの名無しさん
09/03/05 15:44:46
get 333
335:デフォルトの名無しさん
09/03/05 17:29:58
URLリンク(www.python.com)
336:デフォルトの名無しさん
09/03/05 18:16:01
Firefoxでアドレスバーにpythonと打つとpython.jpにつながるのでそれを期待して古いMozillaでやったら
大学のワークステーションでpython.comにアクセスしてしまったでござる
337:デフォルトの名無しさん
09/03/06 02:04:38
アイコンの蛇って名前とか付いてないの?
338:デフォルトの名無しさん
09/03/06 02:11:47
やっぱ時代はRubyだよな
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5401日前に更新/114 KB
担当:undef