1 名前:デフォルトの名無しさん [2008/04/29(火) 23:47:08 ] Python オフィシャルサイト ttp://www.python.org/ ttp://www.python.org/doc/ 日本Pythonユーザ会 ttp://www.python.jp/Zope/ ttp://www.python.jp/doc/ FrontPage - Pythonのお勉強 ttp://python.rdy.jp/ 前スレ pc11.2ch.net/test/read.cgi/tech/1206876081/ ◆関連スレッド Microsoft IronPython 1.0 pc11.2ch.net/test/read.cgi/tech/1157686822/ Python の宿題ここで答えます Part 1 pc11.2ch.net/test/read.cgi/tech/1153585095/ Python Challengeをやろう! pc11.2ch.net/test/read.cgi/tech/1175919288/ Pythonについて(アンチ専用) pc11.2ch.net/test/read.cgi/tech/1203557046/ Pythonに見られるインデントによる制御構造の是非 pc11.2ch.net/test/read.cgi/tech/1169473442/ pythonがこの先生きのこるには pc11.2ch.net/test/read.cgi/tech/1167996371/ Eclipse統合M24【Java/C/PHP/Ruby/Python/Perl】(PyDev) pc11.2ch.net/test/read.cgi/tech/1200918324/ 【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】 pc11.2ch.net/test/read.cgi/tech/1209289408/ デザパタ + Python/Ruby/Smalltalk part2 pc11.2ch.net/test/read.cgi/tech/1175959706/ 2ch検索: [python] find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
47 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:56:05 ] >>47 dictizeを用意しなくてもdict(zip(idx,hello))で辞書化できるよ
49 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:00:22 ] 辞書化いけつしました
50 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:01:31 ] >>13 部品ぽいクラスだったら10行以内とかでも普通。 その辺に転がってるモジュールの中にいくらでも例がある。 要はどういうデータの束に名前を付けるかって言うだけの話なので、 小さいところに名前付けたらクラスも小さくなる クラス=なんか大物 と思ってる人は、勉強した本が悪い
51 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:30:23 ] perl の pmsetup みたいな egg プロジェクトの雛形を作成するスクリプトってありませんか?
52 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:39:00 ] イスパニア語でおk
53 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:45:23 ] It was possible to solve it for myself.
55 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:50:41 ] 我其解決自己的
56 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:53:21 ] >>54 It impossible for native English speaker to understand such a terrible English.
57 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:06:13 ] そういうもん。f2()のxは代入があるからローカル変数だと判断したんだろ。
59 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:46:28 ] >>56 Why didn't you use a verb in your sentense?
60 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 02:27:16 ] >>57 f2()内でglobalとして扱うなら、print x の前にglobal x とか入れるんじゃないかな。
61 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 03:34:58 ] MLのStackless Pythonの内容は酷い
62 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 04:28:51 ] 長文ヌルーしてた…
63 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 06:37:46 ] 関数内のローカル変数が 同名のグローバル変数を隠蔽しちゃうってやつだね JavaScriptも似たような挙動だった気がする 初めてのPythonにはみっちり書いてあったはずから 参照できる人は見てみるのもいいかも
64 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 08:21:24 ] まともな入門書であればたいてい書いてある
65 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 08:43:42 ] 書いてある本ものすごく少なそうなんですが
66 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 08:55:35 ] まともな入門書が少ないってことだね。 ちなみに「初めてのPython」はマルチバイト文字列の扱いについてまったく触れてないので、 「まともな入門書」に入りません。
67 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 09:15:07 ] そこでJython本ですよ
68 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 09:29:03 ] >>67 このスレ的にはどうなの?>Jython本 読んだ人感想プリーズ ネットで読めるのは宗教っぽい妄信的な書評ばっかりで正直キモいと思っているんだが(www
69 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:20:29 ] 民Pyにつづいてそれもか
70 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:28:51 ] 宗教っぽいってこれ? ttp://yoshiori.org/blog/2008/04/jython.php 確かにキモい(www ていうかこのスレでnishioさんを「天才」とか「イケメン」とか言ってるやつってこいつじゃね?(wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
71 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:30:20 ] やんわりと褒めるぐらいなら一般的な対応だけど これはないわwwww
72 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:33:43 ] >>70 無色のネラーだからしょうがないよ(W
73 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 11:19:55 ] アニキ? アッーー!
74 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:06:04 ] >stackless python でも「RuntimeError: maximum recursion depth exceeded」が発生します。 この人は何がしたいんだwwwwwwwwwwwwww
75 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:33:42 ] スタックがない=再帰やり放題じゃね?フィボナッチ数列が美しくかけるんじゃね?
76 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 20:05:06 ] 予約した imprtに期待age
77 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:52:49 ] jp.rubyist.net/magazine/?0003-uva >ちなみに python 2.3 で末尾再帰版 fact を計算したところ、 >n = 900 までは計算でき、 n = 1000 でスタックが溢れた。 これって本当? 1000でスタックが溢れたら大問題だと思うけど
78 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:07:35 ] Py_DEFAULT_RECURSION_LIMITが1000だから当たり前 sys.setrecursionlimitで変更も可能
79 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:10:05 ] >>78 それはスタック溢れとは言わないだろ。
80 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:39:44 ] >>79 >>77 の記事を書いた人に言ってあげなよ
81 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:46:51 ] うへえ、そういう調査もせずに「あふれた」って書いちゃうのか
82 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:53:05 ] 2 つのプログラムの同一仕様検査の難しさ
83 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:31:58 ] Python2.3.5(2005-02-08リリース)の頃は エラーメッセージが違うのかなと思って実行してみたけど、 RuntimeError: maximum recursion depth exceeded と表示された。
84 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:32:08 ] rubyistはエラーメッセージ読まないのん?
85 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:43:21 ] 処理系を信頼してないんだろ
86 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:57:34 ] >>84 奴らは英語ができない情報ニート
87 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 20:13:31 ] RuntimeError: maximum recursion depth exceeded これを見た上で「あふれた」と言ったのか?
88 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 20:50:26 ] >>87 もしかしたら1000に達する前にMemoryError: stack overflowが出たのかもしれない。
89 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:37:54 ] んな小さとこで出るわけない
90 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:52:31 ] 数字が一致していることからしてもRuntimeErrorのほうだろうな
91 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:17:05 ] モジュール名大改造PEPが更新 www.python.org/dev/peps/pep-3108
92 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 06:52:48 ] limitを超えたんだから あふれた でいいと思う
94 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 13:46:59 ] どれぐらい末尾再帰ができるかどうかを調べているんだから setrecursionlimitで値を変更するべきだと思うけど
95 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 13:49:57 ] あくまで limit を越えたのはスタック容量じゃなくて再帰回数だから 溢れたとは言わないだろうな。
96 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:13:36 ] お前ら、こういう話題が好きだったのか?
97 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:24:47 ] 処理系での末尾再帰最適化って、そんなに難しいのかな... なんかちょっと頭のいい人ならすぐできそうな気もするんだが... (まぁ、俺には難しいんだが...)
98 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:28:38 ] まともな処理系なら JIT っぽいことしてると思ってるんだけど (中間言語へのコンパイルかもしれないが)、 末尾再帰最適化を採用する事で どれだけ JIT コンパイルのコストに影響が出るんだろうか。
99 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:47:23 ] 「この回数再帰したら止めてね」という設定値を越えたから止めただけなんだから、 溢れたとは言わないな。「limitに達した」じゃないかな。
100 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:50:16 ] >>97 こんなの見つけた aspn.activestate.com/ASPN/Cookbook/Python/Recipe/474088
101 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 15:04:56 ] >>97 言語仕様と下位層による。 Rubyのブロック引数みたいなへんな言語仕様があると面倒だし、 末尾呼び出し最適化を考慮したスタックフレームを持つ機械の機械語や そのような仮想機械へのコンパイルなら楽。
102 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 15:29:59 ] もはや言葉遊びですね^^
103 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 16:19:33 ] groups.google.co.jp/group/oklab-tech/browse_thread/thread/c4e7fcfba80ed87e 面白いのを見つけました。でもPythonで書き直すには どうしたら良いかわかりません…orz upload.cgi を python で書き直すとしたら どう書いたら良いでしょうか?どうぞよろしくお願いします.
104 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 16:54:21 ] 細川wwww
105 名前:103 mailto:sage [2008/05/04(日) 16:55:34 ] dbm = SDBM.open('db/id',0644) dbm[hash] = id dbm.close このへん、わけわからん orz
106 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 17:03:55 ] >>105 www.google.co.jp/search?q=python+dbm
107 名前:103 mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 20:13:52 ] www.python.jp/doc/2.3.5/lib/httplib-examples.html >>> 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 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 20:17:01 ] >>108 その upload_py.cgi の方に問題があるんじゃないの?
110 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 20:17:46 ] 参考にしてるところがPython2.3.5用だから古くない?
111 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 20:30:41 ] >>110 それはないと思われ。
112 名前:デフォルトの名無しさん mailto:sage [2008/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 mailto:sage [2008/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 mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:49:23 ] スレ違いっつーか板違いだ
116 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 23:22:17 ] お前は黙ってろ
117 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 23:27:57 ] 内容的にWebProg板だな
118 名前:デフォルトの名無しさん [2008/05/05(月) 01:02:08 ] 103を見て絵に描いたような教えて君かと思ったが意外にガッツあるな。期待age。 >>112 302はリダイレクトだよ。レスポンスのLocation:ヘッダに次に読むべきURLが示されている。 詳しくはHTTPの仕様書を読むべし。 >>114 そんな希ガス。ググったら同じ質問をしている使徒を見つけた。一番下にコード例あり。 www.velocityreviews.com/forums/t335298-multipartformdata-in-an-http-client.html emailモジュールにもマルチパートのメッセージを作る機能があった希ガス。 docs.python.org/lib/module-email.mime.text.html この辺を参照のこと。
119 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:01:33 ] 水曜日に最後のアルファ
120 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:23:29 ] chinpo
121 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 14:02:41 ] pythonをやろうと思ってるのだけど、入門には「みんなのpython」と「pythonプログラミング入門」どっちがいいかな? プログラム自体は初めてじゃないです。
122 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 14:08:07 ] プログラム経験あるならネットのドキュメントだけで十分 本買うのが好きなら自分で手にとって選ぶのも好きになれ!
123 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 14:42:19 ] python plograming language和訳まだー
124 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 14:53:30 ] >>122 THANK YOU!! 基礎は書籍でしっかりやりたいから、自分で見てかうことにするよ
125 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:13:32 ] 基礎からやりたいのならみんPyじゃね? もう一つの方は流しすぎ まあ自分で中身見て選ぶのが一番だけどな。
126 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:56:10 ] 基礎だけ学びたいなら最近でたJythonの本でいいと思うよ
127 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:57:58 ] それはないわ(w
128 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 16:51:36 ] neet山
129 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 17:59:55 ] プログラミング経験者があえて書籍で入門するなら 初めてのPythonくらいの内容がないと無駄遣いに終わると思う
130 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 18:08:03 ] 選択肢なんでほとんどないんだから、 立ち読みして比べりゃいいじゃん。
131 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 18:18:37 ] Jython本を買えば間違いは無い。正しくも無い。
132 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 18:39:50 ] プログラムしたことがあるのであればWebのチュートリアル読めばすむ話のような気がする そんなに複雑じゃあない 本家のチュートリアルが読めるのであればなおよい
133 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 19:25:00 ] だから、本を買いたいんだろ。 だったらJython本しか無い。
134 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 20:24:53 ] 俺も最初は本よりチュートリアルの方が良いと思う。 まず使えるようになることに焦点が合ってるし、内容に間違いが少ないから一番確実。
135 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 20:38:55 ] テストサーバ動かして python の cgi 動かしたいんだけど、Leopard の apache2 に mod_python 入れた人いる? それとも素直に CGIHTTPServer.CGIHTTPRequestHandler つかってテストに使った方がいいかね。
136 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:12:20 ] >>135 MacPortsつかえばすぐ入るんじゃね?
137 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:19:44 ] >>135 Leopard の Apache2 でハマったばかりなんで、晒しとく。 pc11.2ch.net/test/read.cgi/mac/1190016804/683-693 洩れは結局 i386 な Apache2 を入れ直した。
138 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:40:17 ] Jython本買ってきました。 クソでした。 理由は言うまでもない。
139 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:42:25 ] 言わないと工作としか思えないわ。
140 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:44:12 ] ぶっちゃけ作りが雑な気がするんだが>Jython本 図とか表とかほとんどないし。 文章ばっかり。 内容もあまりぱっとしないよねぇ...。
141 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:00:55 ] 今出ている本って内容が古すぎたり中途半端だったりであまりおすすめできるものってないような。 何か作りながらチュートリアルかリファレンスを参照するのが効率的かもね。
142 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:58:22 ] Jython本はコードが見難いね、説明してるのがどれだかわかりにくい 編集がちょっと丁寧な仕事すればだいぶ違ったと思う 内容的には初心者な俺には勉強になってる でも中途半端だな、対象読者一体どこだよ、とは思った Python全然知らないときつくないか?Javaも結構知ってないときつくないか?
143 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:13:50 ] Jython本の執筆者のtwitter読むと解るけど、かなりの突貫執筆だったようだ。 あの若さでこれだけの仕事したんだから、まあ認めてやってもいいんじゃないか?
144 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:20:51 ] イケメンハッカー信者はもういいよ
145 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:22:23 ] 本買う人にとっては執筆に至る経緯なんて関係ないしなぁ
146 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:24:27 ] まあ信者も認めるほどの出来だってことだよ。
147 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 00:09:57 ] 宗教論はもういいよ。イケメンハッカーの話はyosoでやれ。