Pythonのお勉強 Part 26
at TECH
1:デフォルトの名無しさん
08/04/29 23:47:08
Python オフィシャルサイト
URLリンク(www.python.org)
URLリンク(www.python.org)
日本Pythonユーザ会
URLリンク(www.python.jp)
URLリンク(www.python.jp)
FrontPage - Pythonのお勉強
URLリンク(python.rdy.jp)
前スレ
スレリンク(tech板)
◆関連スレッド
Microsoft IronPython 1.0
スレリンク(tech板)
Python の宿題ここで答えます Part 1
スレリンク(tech板)
Python Challengeをやろう!
スレリンク(tech板)
Pythonについて(アンチ専用)
スレリンク(tech板)
Pythonに見られるインデントによる制御構造の是非
スレリンク(tech板)
pythonがこの先生きのこるには
スレリンク(tech板)
Eclipse統合M24【Java/C/PHP/Ruby/Python/Perl】(PyDev)
スレリンク(tech板)
【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】
スレリンク(tech板)
デザパタ + Python/Ruby/Smalltalk part2
スレリンク(tech板)
2ch検索: [python]
URLリンク(find.2ch.net)
2:デフォルトの名無しさん
08/04/29 23:47:59
>1
乙
3:デフォルトの名無しさん
08/04/29 23:50:23
初めてのPython 第2版
URLリンク(www.amazon.co.jp)
4:デフォルトの名無しさん
08/04/29 23:53:00
_
-「 ̄ |
| | | なんかバギしたら>>1乙でた
|| +| ありえん(笑)
.L ‐--‐'ヽ
|l リV _` ≡乙
|cl | ´ヮ ノ/
.l レ l |
/ | +|
5:デフォルトの名無しさん
08/04/29 23:53:45
関連書籍
URLリンク(python.rdy.jp)
6:デフォルトの名無しさん
08/04/30 02:49:36
日本語対応における注意点のようなもの
URLリンク(python.rdy.jp)
7:デフォルトの名無しさん
08/04/30 18:39:57
前スレ>>998
2.5ならカリー化できるみたいよ、
URLリンク(d.hatena.ne.jp)
8:デフォルトの名無しさん
08/04/30 20:29:06
くだすれPython(超初心者用)
スレリンク(tech板)
9:デフォルトの名無しさん
08/04/30 21:52:34
【pygame】pythonでゲーム製作【ぱいがめ】
スレリンク(gamedev板)
10:デフォルトの名無しさん
08/04/30 22:44:25
自分の環境で利用できるモジュールの一覧を取得する方法ってありますか?
11:デフォルトの名無しさん
08/04/30 23:15:16
pkgutil.iter_modules
12:デフォルトの名無しさん
08/05/01 02:27:16
>>11
ありがと、ちょう便利。
13:デフォルトの名無しさん
08/05/01 11:14:25
20行程度のコードでクラス作るやつってなんなの?変態?
14:デフォルトの名無しさん
08/05/01 12:08:38
継承してるんだとすればそんなの当たり前だろ
15:デフォルトの名無しさん
08/05/01 12:47:35
>>13
なんともいえない。20行程度なら全ソースを貼ってみ。
16:デフォルトの名無しさん
08/05/01 13:02:04
>>15
お前がやってみろゴミクズが
17:デフォルトの名無しさん
08/05/01 13:13:06
ポカーン....
18:デフォルトの名無しさん
08/05/01 13:14:23
切り返しになって無さ過ぎて、煽りとしても成立してないぞ。
何を見て>>13を書いたのか、君の目撃例を出してみれって話だろう。
君が何を見て言っているのかの提示を、どうやって君の話し相手が「やる」んだ?
19:デフォルトの名無しさん
08/05/01 13:48:09
自己解決しました。
20:デフォルトの名無しさん
08/05/01 14:11:15
若い人はちょっとしたコメントにも全身全霊で反応してくれるので楽しいですの〜
21:デフォルトの名無しさん
08/05/01 14:15:19
オッサンは下水に流れてフナの餌にでもなれ。
22:デフォルトの名無しさん
08/05/01 14:49:37
20行程度貼るのを、そこまで拒否せんでもねえ。
23:デフォルトの名無しさん
08/05/01 15:20:35
1関数500行以上、
っていうヘンテコルールが弊社に存在します
24:デフォルトの名無しさん
08/05/01 15:28:51
自己解決禁止
25:デフォルトの名無しさん
08/05/01 15:31:13
他者解決しました。
26:デフォルトの名無しさん
08/05/01 16:24:42
イケメンハッカーが解決しました。
27:デフォルトの名無しさん
08/05/01 16:35:38
解決禁止
28:デフォルトの名無しさん
08/05/01 16:42:50
自決しました。
29:デフォルトの名無しさん
08/05/01 17:23:20
墓穴しました
30:デフォルトの名無しさん
08/05/01 17:43:53
アナルを開発しました。
31:デフォルトの名無しさん
08/05/01 18:07:12
ほんとにpythonの勉強をしている人達の掲示板とか、有りますか?
32:デフォルトの名無しさん
08/05/01 18:40:07
>>31
このスレの住人がPython勉強してないみたいなこと言うな自己解決しました。
33:デフォルトの名無しさん
08/05/01 19:01:45
ここは雑談スレ
本スレはあっち
34:デフォルトの名無しさん
08/05/01 19:35:12
hello = ["Hello", "こんにちわ", "Здравствуйте", "Buongiorno", "Bonjour"]
みたいなデータを
hello['e'], hello['j'], hello['r'], hello['i'], hello['f']
みたいにアクセスするにはどうしたら良いでショッカー
35:デフォルトの名無しさん
08/05/01 19:53:37
近所の本屋に jython 本が入荷してあった。
ちゃんと import になってたぞ。残念な気分になった。
36:デフォルトの名無しさん
08/05/01 19:55:51
>>35
>ちゃんと import になってたぞ
じゃあ買うのよすわ
37:デフォルトの名無しさん
08/05/01 19:56:19
工エエェェ(´д`)ェェエエ工
38:デフォルトの名無しさん
08/05/01 20:02:33
imprtの方は希少価値がついたな
39:デフォルトの名無しさん
08/05/01 20:03:56
>>35
イケメンハッカーは神になりそこねたと思うよ.
40:デフォルトの名無しさん
08/05/01 20:13:52
>>35
自己解決したんですね。
41:デフォルトの名無しさん
08/05/01 20:19:27
>>34について、興味がわいたので、
class hoge(list):
def __getitem__(self,x):
if x == 'e':
return self[0]
としても、リストのインデクス0番目が帰ってこない。
print x及びprint type(x)とすると、
入力した値と<type 'str'>と帰ってくるんだが、どういう現象?
42:デフォルトの名無しさん
08/05/01 20:27:16
なんで突然レス途切れるんだよ orz
43:デフォルトの名無しさん
08/05/01 20:29:00
>>41
self[0]を使うとhoge.__getitem__がもう一度呼ばれるので
return list.__getitem__(self, 0)じゃないと駄目
>>34は普通に辞書を作った方がいいと思うが
44:デフォルトの名無しさん
08/05/01 20:29:49
>>43
馬鹿な俺に答えだしてくれてありがとう
45:デフォルトの名無しさん
08/05/01 20:32:10
非結合メソッドの扱いかただね、
勉強不足すぎるわ俺
46:デフォルトの名無しさん
08/05/01 20:45:08
>>34
hello = {'e': 'Hello', 'j': 'こんにちわ', 'r': 'Здравствуйте', 'i': 'Buongiorno', 'f': 'Bonjour'}
47:デフォルトの名無しさん
08/05/01 20:53:06
>>34
def dictize(word):
for k,v in zip(idx,word):
temp[k] = v
return temp
idx = ['e', 'j', 'r', 'i', 'f']
hello = ["hello", "こん", "ズドラストヴィーチェ", "buongiorno", "bonjur"]
hello = dictize(hello) # 識別子hello を 辞書化
hello # 素のhelloリスト (データ)
こんなかんじやね。じこかいけつしました
48:デフォルトの名無しさん
08/05/01 20:56:05
>>47
dictizeを用意しなくてもdict(zip(idx,hello))で辞書化できるよ
49:デフォルトの名無しさん
08/05/01 21:00:22
辞書化いけつしました
50:デフォルトの名無しさん
08/05/01 21:01:31
>>13
部品ぽいクラスだったら10行以内とかでも普通。
その辺に転がってるモジュールの中にいくらでも例がある。
要はどういうデータの束に名前を付けるかって言うだけの話なので、
小さいところに名前付けたらクラスも小さくなる
クラス=なんか大物
と思ってる人は、勉強した本が悪い
51:デフォルトの名無しさん
08/05/01 23:30:23
perl の pmsetup みたいな egg プロジェクトの雛形を作成するスクリプトってありませんか?
52:デフォルトの名無しさん
08/05/01 23:39:00
イスパニア語でおk
53:デフォルトの名無しさん
08/05/01 23:40:25
?el pmsetup del perl Como el huevo no Est? all? cualquier escritura que crea el formulario de un proyecto?
54:デフォルトの名無しさん
08/05/01 23:45:23
It was possible to solve it for myself.
55:デフォルトの名無しさん
08/05/01 23:50:41
我其解決自己的
56:デフォルトの名無しさん
08/05/01 23:53:21
>>54
It impossible for native English speaker to understand such a terrible English.
57:デフォルトの名無しさん
08/05/02 00:02:26
>>> x = 'global'
>>> def f():
... print x
...
>>> f()
global
>>> def f2():
... print x
... x = 'local'
...
>>> f2()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "<stdin>", line 2, in f2
UnboundLocalError: local variable 'x' referenced before assignment
ってなるのは何故?
58:デフォルトの名無しさん
08/05/02 00:06:13
そういうもん。f2()のxは代入があるからローカル変数だと判断したんだろ。
59:デフォルトの名無しさん
08/05/02 00:46:28
>>56
Why didn't you use a verb in your sentense?
60:デフォルトの名無しさん
08/05/02 02:27:16
>>57
f2()内でglobalとして扱うなら、print x の前にglobal x とか入れるんじゃないかな。
61:デフォルトの名無しさん
08/05/02 03:34:58
MLのStackless Pythonの内容は酷い
62:デフォルトの名無しさん
08/05/02 04:28:51
長文ヌルーしてた…
63:デフォルトの名無しさん
08/05/02 06:37:46
関数内のローカル変数が
同名のグローバル変数を隠蔽しちゃうってやつだね
JavaScriptも似たような挙動だった気がする
初めてのPythonにはみっちり書いてあったはずから
参照できる人は見てみるのもいいかも
64:デフォルトの名無しさん
08/05/02 08:21:24
まともな入門書であればたいてい書いてある
65:デフォルトの名無しさん
08/05/02 08:43:42
書いてある本ものすごく少なそうなんですが
66:デフォルトの名無しさん
08/05/02 08:55:35
まともな入門書が少ないってことだね。
ちなみに「初めてのPython」はマルチバイト文字列の扱いについてまったく触れてないので、
「まともな入門書」に入りません。
67:デフォルトの名無しさん
08/05/02 09:15:07
そこでJython本ですよ
68:デフォルトの名無しさん
08/05/02 09:29:03
>>67
このスレ的にはどうなの?>Jython本
読んだ人感想プリーズ
ネットで読めるのは宗教っぽい妄信的な書評ばっかりで正直キモいと思っているんだが(www
69:デフォルトの名無しさん
08/05/02 10:20:29
民Pyにつづいてそれもか
70:デフォルトの名無しさん
08/05/02 10:28:51
宗教っぽいってこれ?
URLリンク(yoshiori.org)
確かにキモい(www
ていうかこのスレでnishioさんを「天才」とか「イケメン」とか言ってるやつってこいつじゃね?(wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
71:デフォルトの名無しさん
08/05/02 10:30:20
やんわりと褒めるぐらいなら一般的な対応だけど
これはないわwwww
72:デフォルトの名無しさん
08/05/02 10:33:43
>>70
無色のネラーだからしょうがないよ(W
73:デフォルトの名無しさん
08/05/02 11:19:55
アニキ?
アッーー!
74:デフォルトの名無しさん
08/05/02 12:06:04
>stackless python でも「RuntimeError: maximum recursion depth exceeded」が発生します。
この人は何がしたいんだwwwwwwwwwwwwww
75:デフォルトの名無しさん
08/05/02 12:33:42
スタックがない=再帰やり放題じゃね?フィボナッチ数列が美しくかけるんじゃね?
76:デフォルトの名無しさん
08/05/02 20:05:06
予約した
imprtに期待age
77:デフォルトの名無しさん
08/05/03 17:52:49
URLリンク(jp.rubyist.net)
>ちなみに python 2.3 で末尾再帰版 fact を計算したところ、
>n = 900 までは計算でき、 n = 1000 でスタックが溢れた。
これって本当?
1000でスタックが溢れたら大問題だと思うけど
78:デフォルトの名無しさん
08/05/03 18:07:35
Py_DEFAULT_RECURSION_LIMITが1000だから当たり前
sys.setrecursionlimitで変更も可能
79:デフォルトの名無しさん
08/05/03 18:10:05
>>78
それはスタック溢れとは言わないだろ。
80:デフォルトの名無しさん
08/05/03 18:39:44
>>79
>>77の記事を書いた人に言ってあげなよ
81:デフォルトの名無しさん
08/05/03 18:46:51
うへえ、そういう調査もせずに「あふれた」って書いちゃうのか
82:デフォルトの名無しさん
08/05/03 18:53:05
2 つのプログラムの同一仕様検査の難しさ
83:デフォルトの名無しさん
08/05/03 19:31:58
Python2.3.5(2005-02-08リリース)の頃は
エラーメッセージが違うのかなと思って実行してみたけど、
RuntimeError: maximum recursion depth exceeded
と表示された。
84:デフォルトの名無しさん
08/05/03 19:32:08
rubyistはエラーメッセージ読まないのん?
85:デフォルトの名無しさん
08/05/03 19:43:21
処理系を信頼してないんだろ
86:デフォルトの名無しさん
08/05/03 19:57:34
>>84
奴らは英語ができない情報ニート
87:デフォルトの名無しさん
08/05/03 20:13:31
RuntimeError: maximum recursion depth exceeded
これを見た上で「あふれた」と言ったのか?
88:デフォルトの名無しさん
08/05/03 20:50:26
>>87
もしかしたら1000に達する前にMemoryError: stack overflowが出たのかもしれない。
89:デフォルトの名無しさん
08/05/03 22:37:54
んな小さとこで出るわけない
90:デフォルトの名無しさん
08/05/03 22:52:31
数字が一致していることからしてもRuntimeErrorのほうだろうな
91:デフォルトの名無しさん
08/05/03 23:17:05
モジュール名大改造PEPが更新
URLリンク(www.python.org)
92:デフォルトの名無しさん
08/05/03 23:17:44
「スタックが溢れた」と言っても差し支えないんじゃね?
Ruby では同じ文脈で stack overflow エラーが出るわけだから記事の話の流れからいっても自然だし
Python の sys.setrecursionlimit() の説明でもスタックという表現が使われている。
> setrecursionlimit( limit)
> Set the maximum depth of the Python interpreter stack to limit. This limit prevents
> infinite recursion from causing an overflow of the C stack and crashing Python.
個人的には>>80に同意。
93:デフォルトの名無しさん
08/05/04 06:52:48
limitを超えたんだから
あふれた
でいいと思う
94:デフォルトの名無しさん
08/05/04 13:46:59
どれぐらい末尾再帰ができるかどうかを調べているんだから
setrecursionlimitで値を変更するべきだと思うけど
95:デフォルトの名無しさん
08/05/04 13:49:57
あくまで limit を越えたのはスタック容量じゃなくて再帰回数だから
溢れたとは言わないだろうな。
96:デフォルトの名無しさん
08/05/04 14:13:36
お前ら、こういう話題が好きだったのか?
97:デフォルトの名無しさん
08/05/04 14:24:47
処理系での末尾再帰最適化って、そんなに難しいのかな...
なんかちょっと頭のいい人ならすぐできそうな気もするんだが...
(まぁ、俺には難しいんだが...)
98:デフォルトの名無しさん
08/05/04 14:28:38
まともな処理系なら JIT っぽいことしてると思ってるんだけど
(中間言語へのコンパイルかもしれないが)、
末尾再帰最適化を採用する事で
どれだけ JIT コンパイルのコストに影響が出るんだろうか。
99:デフォルトの名無しさん
08/05/04 14:47:23
「この回数再帰したら止めてね」という設定値を越えたから止めただけなんだから、
溢れたとは言わないな。「limitに達した」じゃないかな。
100:デフォルトの名無しさん
08/05/04 14:50:16
>>97
こんなの見つけた
URLリンク(aspn.activestate.com)
101:デフォルトの名無しさん
08/05/04 15:04:56
>>97
言語仕様と下位層による。
Rubyのブロック引数みたいなへんな言語仕様があると面倒だし、
末尾呼び出し最適化を考慮したスタックフレームを持つ機械の機械語や
そのような仮想機械へのコンパイルなら楽。
102:デフォルトの名無しさん
08/05/04 15:29:59
もはや言葉遊びですね^^
103:デフォルトの名無しさん
08/05/04 16:19:33
URLリンク(groups.google.co.jp)
面白いのを見つけました。でもPythonで書き直すには
どうしたら良いかわかりません…orz
upload.cgi を python で書き直すとしたら
どう書いたら良いでしょうか?どうぞよろしくお願いします.
104:デフォルトの名無しさん
08/05/04 16:54:21
細川wwww
105:103
08/05/04 16:55:34
dbm = SDBM.open('db/id',0644)
dbm[hash] = id
dbm.close
このへん、わけわからん orz
106:デフォルトの名無しさん
08/05/04 17:03:55
>>105
URLリンク(www.google.co.jp)
107:103
08/05/04 18:46:34
>>106
>>> db=shelve.open("db/id", "c")
>>> db["spam"]=1024
>>> db.close()
>>>
>>> db=shelve.open("db/id")
>>> db["spam"]
1024
こんなかんじですね。どもです。 ほかにdbmは
anydbm, pickle, shelve とか三種類くらいありました。
108:デフォルトの名無しさん
08/05/04 20:13:52
URLリンク(www.python.jp)
>>> import httplib, urllib
>>> params=urllib.urlencode({'id':1, 'imagedata':"spam"})
>>> headers={"Content-type": "application/x-www-form-urlencoded",
... "Accept": "text/plain"}
>>> conn=httplib.HTTPConnection("localhost")
>>> conn.request("POST", "/cgi-bin/upload_py.cgi", params, headers)
>>> res=conn.getresponse()
>>> res.status
500
ここを見ながら、client側の部分を書いてみたのですが
うまく行きません…どう書いたら良いでしょうか?
109:デフォルトの名無しさん
08/05/04 20:17:01
>>108
その upload_py.cgi の方に問題があるんじゃないの?
110:デフォルトの名無しさん
08/05/04 20:17:46
参考にしてるところがPython2.3.5用だから古くない?
111:デフォルトの名無しさん
08/05/04 20:30:41
>>110
それはないと思われ。
112:デフォルトの名無しさん
08/05/04 20:58:44
>>109
#File.open("data/#{hash}.png","w").print(imagedata)
fname = "%s.png" % hash
file(fname, 'w').write(imgdata)
ここの所が間違ってたみたいでした。w のとこが r になってました。
>>> res.status
302
と、変更したら返されるcodeが 500 から 302 になりました。
200 じゃない…ということは間違ってる…よくわからんです orz
113:103
08/05/04 21:16:12
db = shelve.open("tmp/id", "c")
db[hash] = id
db.close()
>>> import shelve
>>> db=shelve.open('tmp/id')
>>> db["e09f6a7593f8ae3994ea57e1117f67ec"]
'1'
上手くいきますた!
114:103
08/05/04 21:18:52
data = <<EOF
--#{boundary}\r
content-disposition: form-data; name="id"\r
\r
#{id}\r
--#{boundary}\r
content-disposition: form-data; name="imagedata"\r
\r
#{imagedata}\r
\r
--#{boundary}--\r
EOF
あと、もう一つだけ
バイナリデータをPOSTする場合はこの書式に沿って
組み立てないと駄目なのですか?
115:デフォルトの名無しさん
08/05/04 22:49:23
スレ違いっつーか板違いだ
116:デフォルトの名無しさん
08/05/04 23:22:17
お前は黙ってろ
117:デフォルトの名無しさん
08/05/04 23:27:57
内容的にWebProg板だな
118:デフォルトの名無しさん
08/05/05 01:02:08
103を見て絵に描いたような教えて君かと思ったが意外にガッツあるな。期待age。
>>112
302はリダイレクトだよ。レスポンスのLocation:ヘッダに次に読むべきURLが示されている。
詳しくはHTTPの仕様書を読むべし。
>>114
そんな希ガス。ググったら同じ質問をしている使徒を見つけた。一番下にコード例あり。
URLリンク(www.velocityreviews.com)
emailモジュールにもマルチパートのメッセージを作る機能があった希ガス。
URLリンク(docs.python.org)
この辺を参照のこと。
119:デフォルトの名無しさん
08/05/05 13:01:33
水曜日に最後のアルファ
120:デフォルトの名無しさん
08/05/05 13:23:29
chinpo
121:デフォルトの名無しさん
08/05/05 14:02:41
pythonをやろうと思ってるのだけど、入門には「みんなのpython」と「pythonプログラミング入門」どっちがいいかな?
プログラム自体は初めてじゃないです。
122:デフォルトの名無しさん
08/05/05 14:08:07
プログラム経験あるならネットのドキュメントだけで十分
本買うのが好きなら自分で手にとって選ぶのも好きになれ!
123:デフォルトの名無しさん
08/05/05 14:42:19
python plograming language和訳まだー
124:デフォルトの名無しさん
08/05/05 14:53:30
>>122
THANK YOU!!
基礎は書籍でしっかりやりたいから、自分で見てかうことにするよ
125:デフォルトの名無しさん
08/05/05 15:13:32
基礎からやりたいのならみんPyじゃね?
もう一つの方は流しすぎ
まあ自分で中身見て選ぶのが一番だけどな。
126:デフォルトの名無しさん
08/05/05 15:56:10
基礎だけ学びたいなら最近でたJythonの本でいいと思うよ
127:デフォルトの名無しさん
08/05/05 15:57:58
それはないわ(w
128:デフォルトの名無しさん
08/05/05 16:51:36
neet山
129:デフォルトの名無しさん
08/05/05 17:59:55
プログラミング経験者があえて書籍で入門するなら
初めてのPythonくらいの内容がないと無駄遣いに終わると思う
130:デフォルトの名無しさん
08/05/05 18:08:03
選択肢なんでほとんどないんだから、
立ち読みして比べりゃいいじゃん。
131:デフォルトの名無しさん
08/05/05 18:18:37
Jython本を買えば間違いは無い。正しくも無い。
132:デフォルトの名無しさん
08/05/05 18:39:50
プログラムしたことがあるのであればWebのチュートリアル読めばすむ話のような気がする
そんなに複雑じゃあない
本家のチュートリアルが読めるのであればなおよい
133:デフォルトの名無しさん
08/05/05 19:25:00
だから、本を買いたいんだろ。
だったらJython本しか無い。
134:デフォルトの名無しさん
08/05/05 20:24:53
俺も最初は本よりチュートリアルの方が良いと思う。
まず使えるようになることに焦点が合ってるし、内容に間違いが少ないから一番確実。
135:デフォルトの名無しさん
08/05/05 20:38:55
テストサーバ動かして python の cgi 動かしたいんだけど、Leopard の apache2 に mod_python 入れた人いる?
それとも素直に CGIHTTPServer.CGIHTTPRequestHandler つかってテストに使った方がいいかね。
136:デフォルトの名無しさん
08/05/05 21:12:20
>>135
MacPortsつかえばすぐ入るんじゃね?
137:デフォルトの名無しさん
08/05/05 21:19:44
>>135
Leopard の Apache2 でハマったばかりなんで、晒しとく。
スレリンク(mac板:683-693番)
洩れは結局 i386 な Apache2 を入れ直した。
138:デフォルトの名無しさん
08/05/05 21:40:17
Jython本買ってきました。
クソでした。
理由は言うまでもない。
139:デフォルトの名無しさん
08/05/05 21:42:25
言わないと工作としか思えないわ。
140:デフォルトの名無しさん
08/05/05 21:44:12
ぶっちゃけ作りが雑な気がするんだが>Jython本
図とか表とかほとんどないし。
文章ばっかり。
内容もあまりぱっとしないよねぇ...。
141:デフォルトの名無しさん
08/05/05 22:00:55
今出ている本って内容が古すぎたり中途半端だったりであまりおすすめできるものってないような。
何か作りながらチュートリアルかリファレンスを参照するのが効率的かもね。
142:デフォルトの名無しさん
08/05/05 22:58:22
Jython本はコードが見難いね、説明してるのがどれだかわかりにくい
編集がちょっと丁寧な仕事すればだいぶ違ったと思う
内容的には初心者な俺には勉強になってる
でも中途半端だな、対象読者一体どこだよ、とは思った
Python全然知らないときつくないか?Javaも結構知ってないときつくないか?
143:デフォルトの名無しさん
08/05/05 23:13:50
Jython本の執筆者のtwitter読むと解るけど、かなりの突貫執筆だったようだ。
あの若さでこれだけの仕事したんだから、まあ認めてやってもいいんじゃないか?
144:デフォルトの名無しさん
08/05/05 23:20:51
イケメンハッカー信者はもういいよ
145:デフォルトの名無しさん
08/05/05 23:22:23
本買う人にとっては執筆に至る経緯なんて関係ないしなぁ
146:デフォルトの名無しさん
08/05/05 23:24:27
まあ信者も認めるほどの出来だってことだよ。
147:デフォルトの名無しさん
08/05/06 00:09:57
宗教論はもういいよ。イケメンハッカーの話はyosoでやれ。
148:デフォルトの名無しさん
08/05/06 06:21:33
粗悪本乱発しすぎ
149:デフォルトの名無しさん
08/05/06 06:40:46
Jython本ほど最高の本は無いよ。
書いてあることがスラスラと頭の中に入ってきて、
まるでコードが踊ってるみたい。
びっくりするようなイノベーションも体験できて、
いいと思うんだけどなあ。
最新の本だから最新のことが載っていて安心だし。
150:デフォルトの名無しさん
08/05/06 06:42:36
さっき読んでたらすぐ眠たくなって寝てしまったが
151:150
08/05/06 06:48:52
でも、起きてからすらすらと本の内容が浮かんできたな
152:デフォルトの名無しさん
08/05/06 07:50:20
今知ったんだが、彼って自分のことイケメンなんぞと言ってるんだ!
153:デフォルトの名無しさん
08/05/06 07:56:24
IKEMEN
154:デフォルトの名無しさん
08/05/06 08:36:13
流れが意味不
155:デフォルトの名無しさん
08/05/06 09:37:43
stackless pythonとpsycoは共存できないんだな。
残念だ。
156:135
08/05/06 12:19:12
とりあえず mod_python ダウンロードしてきて
./configure
vi src/Makefile
LDFLAGS= 行の "-arch i386 -arch ppc" を "-arch x86_64" で置換。
make
file src/.lib/mod_python.so してみると、
src/.libs/mod_python.so: Mach-O 64-bit bundle x86_64
と表示されるので 64ビット版にはなっているようだ。
と、ここまではいい.
sudo /etc/apache2/httpd.conf で
LoadModule python_module libexec/apache2/mod_python.so
って入れてから
httpd -t
やるとシンタックスエラーでるのよね。。。。
って、これ単なる設定の問題か。
>>137
なんて良いタイミング!参考にしてみるよ
157:デフォルトの名無しさん
08/05/06 17:26:02
Webのチュートリアルは日本語の品質がいまいちな部分がない?
結局は英語にあたらないと意味が取れない事がよくある。
書籍のチュートリアルの方が日本語がいいし、読みたいところに
すぐ飛べるのでいいと思う。
他言語経験者なら、これ読めばある程度できるようになるんじゃ
ない?
158:デフォルトの名無しさん
08/05/06 17:32:25
他言語経験者なら普通に公式チュートリアルでいいだろ
ねえなんで本買わせようとすんの?
159:デフォルトの名無しさん
08/05/06 18:02:06
本のほうが読みやすいから
160:デフォルトの名無しさん
08/05/06 18:34:16
Webの方がコピペできていい
161:デフォルトの名無しさん
08/05/06 19:06:39
本が欲しいと言っているから。
162:デフォルトの名無しさん
08/05/06 19:25:07
検索できる分デジタル版の方がいいけどね
でもチュートリアルの日本語書籍版はチュートリアルの読み方の部分が秀逸なので
立ち読みだけでもしておくといいよ
163:デフォルトの名無しさん
08/05/06 19:31:36
>>157
> Webのチュートリアルは日本語の品質がいまいちな部分がない?
>
> 結局は英語にあたらないと意味が取れない事がよくある。
ここなり翻訳者宛のメールなりで問題点を具体的に報告すれば改善されると思われ。
164:デフォルトの名無しさん
08/05/06 19:33:08
いま >163 がとてもいいことを言った。
165:デフォルトの名無しさん
08/05/06 19:41:13
本を買って欲しいから。
166:157
08/05/06 19:48:43
>163がとてもいいこと言ったと思います。
翻訳者あてのメールは敷居が高くても、ここになら書けるなぁと思った。
(でも私は書籍版買っちゃったから今後はWeb版読みに行く事は中々
ないはず)
167:デフォルトの名無しさん
08/05/06 20:08:55
>>158
俺は他言語経験者で、公式チュートリアルで入門したけど本も買って勉強したよ。
Mark Lutz の Programming Python の第1版の原著を買った(確か当時は和書が1つもなかった)。
理由は「書籍から入手できる情報」≠「オンラインで入手できる情報」だから。
あと、1冊まるまる最初から最後まできちんと勉強することで「やり終えた!」という充実感があった。
これは結構重要なポイントのような気がする。
絶対本を買うべきだとは思わない。買いたい人は買えばいいと思われ。
ちなみに上記の本には誤植が多かったので読み進めるのと並行して全部メモしておいた。
読み終えたあとにまとめて Mark Lutz に報告したらオライリーの担当者からお礼のメールが来て
オライリーの本から好きなのを1冊プレゼントすると言われた。そんなの初めての経験だったから
意味が分からなくて「お金払わなくていいの?」とか聞いちゃったりして(無論無料で送ってくれた)。
168:デフォルトの名無しさん
08/05/06 21:29:18
これはいい話
169:デフォルトの名無しさん
08/05/06 21:31:30
threadって計算速度の向上に効果ある?
a = b1 + b2の計算を(a,b1,b2はarray)
b1とb2をthreadで計算して,
それぞれ計算終了後に足すというプログラムを作ったんだけど,
普通にb1とb2をメインスレッドで順番に求めて足した方が早かった...
ちなみにb1とb2の計算はダミーのforループ10000回です.
170:デフォルトの名無しさん
08/05/06 21:43:49
>>169
ダミーループのような、単純処理を連続的に行う場合は、threadのメリットは少ないと思われ。
有り難味があるケースは、
・入力待ちの間に、他の処理をさせておきたい
・ネットワークを表現する際に、各処理を独立のモジュールみたいに動かしたい
など。
171:デフォルトの名無しさん
08/05/06 21:45:50
>>167
第3版が手元にあるけど1552ページある。このサイズをまるまる勉強したとし
たら、尊敬します。すげー。
172:デフォルトの名無しさん
08/05/06 22:39:53
>>170
なる。やっぱりそんな気はしてた。。。
サンクス
173:デフォルトの名無しさん
08/05/06 22:49:58
>>171
そんなにあったっけと思って書誌情報を確認したら第1版は902ページだった。
174:デフォルトの名無しさん
08/05/06 23:13:06
>>169
マルチコアの場合は、計算スレッドを複数に分けてやると速くなったりする
あと計算規模が小さいとスレッドの生成・破棄のコストのせいで
高速化の効果が見えないよ
175:Free Tibet
08/05/06 23:57:15
>>167
オライリー信者乙
176:デフォルトの名無しさん
08/05/07 00:20:38
>>175
そんな、人類の足引っ張ることしかできない悲しい奴みたいな言い方しないで
前向きに行きましょうよ。
177:デフォルトの名無しさん
08/05/07 00:24:08
「きさま、マック信者だな?」
178:デフォルトの名無しさん
08/05/07 00:25:34
「きみはゆくえふめいになっていたマックじゃないか」
179:デフォルトの名無しさん
08/05/07 08:13:21
>>169
JythonやIronPythonだと速くなるかも知れない。
CPythonだと複数スレッドを同時に動かせないんで速くならない
180:デフォルトの名無しさん
08/05/07 11:57:52
Python絡みで信頼のおける日本人って
柴田さんしか居ない状況?
他の人ってあっちの人と話したことないよね
181:デフォルトの名無しさん
08/05/07 12:01:59
>>180
んなこたあない
もっと偉い人はいる
多くはないけど
182:デフォルトの名無しさん
08/05/07 12:02:11
>>180
あっちの人と話したことがある=Python絡みで信頼のおける日本人
と言う事ならmatz
183:デフォルトの名無しさん
08/05/07 12:04:01
多くの日本人Pythonistaは引きこもり
184:デフォルトの名無しさん
08/05/07 12:04:28
柴田さんは信頼できるの?
185:デフォルトの名無しさん
08/05/07 12:04:50
個人攻撃が始まった(www
186:デフォルトの名無しさん
08/05/07 13:18:23
自分以上の人間を言いがかりで叩くって
気持ちいいんだもん。
187:デフォルトの名無しさん
08/05/07 13:57:56
柴田淳はじまったな。
188:デフォルトの名無しさん
08/05/07 14:09:25
>>182
ブレース採用の話しかしてないじゃんかw
そういう意味じゃなくて、
開発者が誰で誰がどれを担当していて
今どのモジュールが開発中もしくは放棄中とか
そういった情報を知ってる日本人のことだよ。
189:デフォルトの名無しさん
08/05/07 14:15:11
186が184をカス認定している件。
190:デフォルトの名無しさん
08/05/07 14:29:11
>>188
ある程度ならsvnのコミットのログとか
ソースコードのコメント読めば分かるんじゃないか
191:デフォルトの名無しさん
08/05/07 16:00:25
pygame.orgの英文をなんとかしてほしいんだよね
英文を読んでまでのヤル気が必須になってるから
興味もった素人達にとっては敷居が高すぎる。
ただでさえわからないプログラム解説を、わからない英語で解説されるわけだから。
誰か、日本語翻訳サイトつくってよ
翻訳だけの協力でもいいよ、
俺がサーバー借りてサイト作ってもかまわない
サイト作りは出来るから。
なんなら、このスレのみんなでpygame公式サイトの日本語解説版作っていかないかな?
192:デフォルトの名無しさん
08/05/07 16:03:18
まずはお前が率先して道を示せ。
話はそれからだ。
193:デフォルトの名無しさん
08/05/07 16:53:27
ほとんどSDLのラッパーなんだからSDLをさらっと習得しちゃえば
なんとなくわかるっしょ。
194:デフォルトの名無しさん
08/05/07 17:47:19
>179
>CPythonだと複数スレッドを同時に動かせないんで速くならない
そうなの?俺の持っている本では、
執筆時点(2006?)でフォークはWindowsのPythonでサポートされていない
けど、スレッドはすべてのプラットフォームのPythonでサポートしている・・・
みたいな事かいてあるよ。なのでサポートしていると思うんだけど、違うの?
195:デフォルトの名無しさん
08/05/07 17:54:04
どこのクソ本だよそれ。
196:デフォルトの名無しさん
08/05/07 18:06:26
>>194
C記述の拡張コードがマルチスレッドを考慮していないので
Python上ではマルチスレッドでも実質グリーンスレッド状態になる。
ちゃんとしたマルチスレッドな動作を期待するならJythonやIronPythonになるかな。
文脈でわかるのかもしれないけど「スレッド」といってもいろいろ観点があるから。
>>195
まちがっちゃいないけど説明不足でミスリードしちゃいそうだね。
197:デフォルトの名無しさん
08/05/07 18:13:21
>>194
俺の理解では、Python のスレッドは交互に動いている。つまり、ある時点において1つのスレッドしか動かない。
だから、同時に(並列で)動くことを期待しているマルチスレッドプログラムは速くはならない。
>>170さんの言うように、あるスレッドが入力待ちをしていて、別のスレッドがGUIを司る、というような
マルチスレッドプログラムならば期待通りに、一見並列に動く。
こういう実装になっているのは、種々のモジュールにスレッドセーフであることを要求するのが困難だから。
間違ってたらゴメス
198:デフォルトの名無しさん
08/05/07 19:08:58
194です。
なるほど。私が本のスレッドの説明の最初のとこだけしか読んで
なかったので、勘違いしてました。
もうちょっと読むと>197がいうとおりのような事も書いてました。
「いつでも1つだけのスレッドしか動いていない」って感じで。
現状(2006年?)ではスレッドを複数のCPUに分配できない、み
たいなことも書かれてた。
という事は計算が速くなるわけないですね。>170みたいな用途に
限る、ということか。
199:デフォルトの名無しさん
08/05/07 19:09:16
>>183
自分一人の例を全員の例のように敷衍するひとのひとりですね
200:デフォルトの名無しさん
08/05/07 19:12:07
>>191
URLリンク(www.halb-katze.jp)
201:デフォルトの名無しさん
08/05/07 19:49:30
>>191
> 英文を読んでまでのヤル気が必須になってるから
> 興味もった素人達にとっては敷居が高すぎる。
敷居が高過ぎると思ってしまうのは、その人自身の勝手な固定観念なんだけどな
あと敷居が高過ぎると思って、よりつかない人は、そこまでのモチベーションしかないんだと思うよ
人に聞いているようでは、マジで駄目なんだよ
> 俺がサーバー借りてサイト作ってもかまわない
> サイト作りは出来るから。
> なんなら、このスレのみんなでpygame公式サイトの日本語解説版作っていかないかな?
個人的、希望だが、英文のpygameを学習する際に頻出する英単語帳をつくったりとか、
英文を読み解くためのテクとかを、補助ツールを扱うwikiを作ってくれ
頻出する英単語を500語に厳選して、暗記すれば、かなり読み解けると思うよ
調べるためにググる際も英文の方のほうがひっかかるし、内容が高いことが多い
Wikipediaも英語版のほうが内容が豊富だし、すごくマイナー単語も載っているし
英文には、絶対慣れたほうがいいよ
あとわざわざ翻訳すると逆に読みづらくなるし、理解も難しくなる
これは、既出?
URLリンク(www.unixuser.org)
あと下の本をどういう読み方でもいいから、読んで感想を聞かせてほしいところだね
Amazon.com: Beginning Game Development with Python and Pygame: From Novice to Professional (Beginning from Novice to Professional): Will McGugan: Books
URLリンク(www.amazon.com)
とりあえず、wikiをつくって、2chに晒してみたら?
協力してくれる人もいるかもしれないよ
202:デフォルトの名無しさん
08/05/07 19:54:46
マルチcore対応のスレッドが使えるスクリプト言語を実装するのは難しいの?
Rubyも結局1つでしか動かないらしいし。
203:デフォルトの名無しさん
08/05/07 20:08:34
pygame翻訳しろの話は、くだすれPythonスレとマルチになってたんだな。
204:デフォルトの名無しさん
08/05/07 20:11:45
pygameスレにも貼ってあった
205:デフォルトの名無しさん
08/05/07 20:17:16
pygameなんてなんか人前で言いづらいな。
206:デフォルトの名無しさん
08/05/07 20:18:59
こういうのって勝手に翻訳して公開していいんだっけ?
まぁ事後承諾だろうと拒絶されるこたまずないだろうからどーでもいいんだろうけど
ゲーム用にしか聞こえないよなw
207:デフォルトの名無しさん
08/05/07 20:22:24
>>202
言語自体は各スレッドにインタプリタを1つずつ用意することで簡単に並列化できると思われ。
問題は膨大な量のライブラリモジュール、特にC等で書かれたライブラリのバインディングだ。
スレッドセーフでないライブラリは統合不可ということになる。つまり言語として制約が大きい。
大域変数でメモリ管理ってのは割とありがちだけど、これはスレッドセーフではないのでNG。
こういうものを除外していくとどんどん言語としての有用性が下がっていく。
代替品の再実装なんてやってられん。PythonにしてもRubyにしてもそんなところだと思われ。
208:デフォルトの名無しさん
08/05/07 20:24:13
pygameがLGPLだからドキュメントも同じ扱いになるんじゃないか?
ちゃんと調べてはいないけど
209:207
08/05/07 20:41:33
あんま関係ないけど、OpenMPで並列化されたライブラリを拡張モジュールとしてPythonに組み込んだことがある。
これだと並列化がモジュール内で閉じてるから何も問題ない。
俺はOpenMPで並列化された線形解法ライブラリのラッパを書いてPythonに組み込んだ。フツーに使えた。
ただし、Intel C コンパイラの場合はPython一式を -openmp オプション付きでコンパイルする必要があった。
あと、PythonでMPIプログラムを書いてマルチコア環境で実行するというアプローチもあるね。
これだと真に並列に動作するはず(マルチスレッドプログラミングと同じ要領というわけにはいかないけど)。
Python用のMPI実装にはいくつかあった希ガス。
210:デフォルトの名無しさん
08/05/07 20:53:31
PythonのWikiエンジンってあったんだね
知らなかった
使い勝手は、どうなの?
Python製Wikiエンジン"MoinMoin"、日本語化担当者募集
URLリンク(www.python.jp)
211:デフォルトの名無しさん
08/05/07 21:09:58
URLリンク(moinmoin.wikiwikiweb.de)
比較ページを見つけたけど、いい事しか書いてないなぁ。
まぁMoinMoinのサイトだから仕方ないか。
212:デフォルトの名無しさん
08/05/07 22:00:43
>>207
勉強になった。
スレッドセーフなモジュールを分類してかき集めるってプロジェクトがおこっても
良さそうとか思ったけど見つけられなかった。いろいろと難しいことがあるのかな。
213:デフォルトの名無しさん
08/05/07 22:46:07
>210
昔、自サイトでつかってたけど、まあ中の上ぐらいかしら。
設計はそれなりに綺麗で、たとえばpybloxsomとかから
エンジンだけ利用してレンダリング、とか、pyblosxomの
間で相互リンク、とかできた気がする。
ただ、見た目のきれいさとかはないけどね(デフォルトの設定では)
214:Tracの方が良いよな
08/05/08 00:07:36
先に言っておく。この話題で
MoinMoinじゃなくてTracの方がいい
なんて思ってる人は、何かがずれていると自覚したほうがいい。
215:デフォルトの名無しさん
08/05/08 10:54:55
MoinMoinで気に入ってるのは
Pythonのソースを表示すると
色分けで表示するってやつかな。
あと微妙に軽い。
欠点として‥登録ユーザじゃないと
ページ変更時刻がUTCで記録されてしまう。
これが地味に嫌だ
216:デフォルトの名無しさん
08/05/08 13:12:49
以前、翻訳してみようとWikiを作ってみたけど頓挫しているサイト
Displayモジュールの一部しかまだ翻訳してません
ぶっちゃけ翻訳の作法とかよくわからないし・・・
pygame日本語ドキュメント
URLリンク(wiki.livedoor.jp)
手伝ってくれる人がいたら嬉しい
ちなみにMLで聞いてみたところドキュメントもLGPLらしいね
217:デフォルトの名無しさん
08/05/08 13:41:35
>215
今使ってないからなんとも言えないけど、
Config.tz_offset ってのを書換えれば良さそうですが...
(デフォルトのタイムゾーン)
218:デフォルトの名無しさん
08/05/08 13:43:15
もいんもいん
219:デフォルトの名無しさん
08/05/08 14:19:37
>>212
調べたことないけど、スレッドセーフなモジュール(特にC等で書かれた拡張モジュール)は
ほとんど無いんじゃないかなあ。
例えばCでマルチスレッドのプログラム書いてみると分かるんだけど「このコードはスレッドセーフです」って
言い切るのって結構大変。呼び出しているライブラリ関数がスレッドセーフかどうか逐一確かめて回らないと
いけないから。逐次プログラムの一部分だけをマルチスレッド化できるOpenMPがいかに便利かを実感する。
その点、Java は最初からマルチスレッド対応だから楽チン。
マルチスレッドで真に並列動作するPythonを実現するための一番の近道はJythonだろうね。
220:デフォルトの名無しさん
08/05/08 15:12:06
そのレベルの話であれば、Javaがマルチスレッド対応だから楽ちんだなんてとてもいえないと思うけど。
同期とかの方法と、VMのメモリモデルが規定されているだけでしょ。
結局、使うAPIとかライブラリがMT-Safeかどうか調べなきゃいけない。標準のAPIについては大体書いてあるけど。
221:デフォルトの名無しさん
08/05/08 21:21:29
>>216
今すぐは無理だけど、暇があったら手伝いたい。
勝手に編集してもいいの?
222:デフォルトの名無しさん
08/05/08 23:20:40
>>216 >>221
おまいらがんがれ。
wikiで自分が翻訳したページを他人に修正されると、なんか一瞬犯されたような気分
になったりするけどそんなケツの穴の小さいことは気にしないでがんがん翻訳してくれ。
223:デフォルトの名無しさん
08/05/08 23:26:05
>>222
気にしてるじゃねーかw
224:デフォルトの名無しさん
08/05/08 23:56:46
正規表現検索で
"from A import B, C, ..."
という文字列から A, B, C, ... の部分を抜き出したいんだけど、
正規表現のグループマッチングだけでは対処できない?
re.findall("from\s+(識別子)\s+import\s+(, (識別子))*", source) # 識別子=[\w][\w\d]*
ってやって出てきたマッチオブジェクトは
"A"
"B"
",C"
"C"
っていうふうに、カンマ込みででてきてしまう(当たり前だけど)
"A" "B" "C" だけ抜き出したい場合はやっぱりその他の文字列処理しないとだめ?
225:デフォルトの名無しさん
08/05/09 00:35:11
非グループ化の(?:...)が使えないかな
226:デフォルトの名無しさん
08/05/09 00:41:18
>>224
[A-Z]
227:デフォルトの名無しさん
08/05/09 00:48:28
re.findall('[\w*]+', src) して from と import を filter
228:デフォルトの名無しさん
08/05/09 00:56:39
>>255
おお、こんなべんりなものが!
import re
source = """
from A import BB
from A import CC,DD
"""
print re.findall("\s*from\s+([\w\d]+)\s+import\s+(?:,?\s*([\w\d]+))+", source)
とやってみた。これだと "from 3 import , 4, 5" にもマッチしちゃうけど、
そもそもソースのコンパイルが通る事が前提だから、この簡略化した
判別方法でもOKだという事に気づきました。
が、
上記コードを実行すると
[('A', 'DD')]
という結果になります。期待していたのは
A, BB, A, CC, DD
なんですがグループの繰り返しだけでは取得できないのでしょうか
229:デフォルトの名無しさん
08/05/09 01:37:49
正規表現である必要ってあるの?
こういうなの↓の方が簡単でよくない?
s = "from foo import a, b , c"
f = s.split()
assert f[0] == "from" and f[2] == "import"
buf = []
for name in f[3:]:
if name == ",":
continue
if name[-1] == ",":
name = name[:-1].strip()
buf.append(name)
print buf
230:デフォルトの名無しさん
08/05/09 01:41:52
>>228
\w は数字ともマッチするわけだが。
一回、正規表現について勉強しなおしたほうがいいんじゃね?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5368日前に更新/131 KB
担当:undef