1 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 19:09:55 ] Pythonオフィシャルサイト www.python.org/ 日本Pythonユーザ会 www.python.jp/Zope/ まとめWiki python.rdy.jp/ 関連スレ find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python 前スレ pc11.2ch.net/test/read.cgi/tech/1223543412/
2 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 19:10:57 ] おっぱい
3 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 19:18:26 ] OOPy オブジェクトオリエンテッドパイソン
4 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 19:19:30 ] _ ∩ ( ゚∀゚)彡 おっぱいそん!おっぱいそん! ⊂彡
5 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 21:15:07 ] >>4 www
6 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 23:12:23 ] >>1 ぱいおつ
7 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 00:26:19 ] >>4 これはいいPythonista
8 名前:デフォルトの名無しさん [2008/11/17(月) 00:29:57 ] 掲示板作ったよ。 なんかホールとか発見したら教えてね。 しばらくしたら忘れてね。 rail.s4.pf-x.net/bbs/
9 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 00:39:56 ] LLなんて言ってもアメリカのITトップ企業では通じないから気をつけろ! メガンテしちゃうぞ!!
10 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 00:56:26 ] 実際通じないだろ。LLは英語風日本語だから。
11 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 00:57:00 ] まあ、英語として使えようが使えまいがSDだが。
12 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 00:59:00 ] ちなみにLLVMのLLは、 Low Levelの略である。PythonコミュニティでLLといって場合には むしろこっちの意味にとられるかもしれないから注意が必要だ。SDですが。
13 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 01:24:14 ] おっぱい
14 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 01:25:42 ] import urllib import urllib2 import cookielib req = urllib2.Request( 'pc11.2ch.net/test/bbs.cgi ', urllib.urlencode( { 'bbs' : 'tech', 'key' : '1226830195', 'time' : 1, 'submit' : u'書き込み'.encode('sjis'), 'FROM' : '', 'mail' : 'sage', 'MESSAGE' : u'おっぱい'.encode('sjis'), 'suka' : 'pontan' } ), {'Referer' : 'pc11.2ch.net/ '} ) opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cookielib.CookieJar())) res1 = opener.open(req) if '<!-- 2ch_X:cookie -->' in res1.read(): res2 = opener.open(req)
15 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 03:21:58 ] while 1: print u"おっぱい"
16 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 04:40:09 ] while 1: print u"( ゚∀゚)o彡°おっぱい!おっぱい!"
17 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 07:57:46 ] PythonコミュニティでLLといって場合にはRuby信者にメガンテされてしまうかもれないから注意が必要で。 まあ俺はアメリカのITトップ企業につとまっているので日本語のおかしいなってきた。
18 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 18:50:15 ] 日本語情報少ないpythonを使うメリットって何? Rubyの方が優れてない?
19 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 18:57:52 ] 今は日本語情報サイトの数は十分だと思うよ。日本産のRubyには負けるだろうけど。 PythonはOSとかの環境を気にせず使えるのが最大の利点かな。
20 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 19:18:03 ] 日本語情報少ないか?
21 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 19:43:58 ] 導入部分はそれなりに情報あるけどさ、フレームワークの情報とかやっぱり少ないよ。 Ruby、というかRailsに持ってかれちゃった感が拭えない。
22 名前:デフォルトの名無しさん [2008/11/17(月) 19:44:28 ] >>18 RubyがPythonをかなりパクってる為、言語としてはそこまで変わ りはないが、世界ではPython人口の方が圧倒的に多く (企業/政府機関で もGoogle、NASA、Appleを筆頭にPythonを全面的に促進)、 ライブラリの数も多いから、やろうと思えばなんでもプログラムできる。 Pythonの方が年配だから、プロジェクト/プログラム例も盛り沢山。 それに gtk、gimp、pidgin など、LinuxやUnixではPythonを 様々なコンポーネントで有効活用しているから、沢山遊べる。 シンタックスもPythonの方が綺麗。 Pythonの作者は まつもとゆきひろ とは違って、DQN気味ではない。 どうも見ても Python の方が有利だし、Pythonを学ぶのが吉。
23 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 19:47:51 ] 日本語情報が少ないのだったら、英語情報にあたればよいだけ。
24 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 19:53:19 ] Pythonの方がライブラリが充実してるから。これにつきる。 言語を選択する際のライブラリの充実度はかなり重要。 文法だけならPythonやRubyよりも好きな言語は沢山あるんだけど、 マイナーすぎてまだつかえない。
25 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 20:06:08 ] Django使ってる俺はここでは少数派かい?
26 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 20:07:01 ] >>25 俺も使ってるよ。 あと、 Google App Engine 使ってる人の多くは Django を使ってると思う。
27 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 20:27:09 ] >>18 なんつうかRubyだのPythonだのよりまず先に英語を学べ
28 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 20:35:58 ] >>24 .NETやJVMにタダ乗り系の奴は、マイナーでも 自動的にライブラリは充実してることになるよな
29 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 20:40:20 ] .netにもIronPythonがあるからな。 .netなしでも動くPythonの価値。 マイナーってホントマイナーな奴。
30 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 20:42:35 ] Linux、Unix、Mac、Windows、全てのOSで強いのが Python。
31 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 20:49:25 ] PythonだろうがRubyだろうが何だろうが、 自分で海外の資料よみあされないと、 プログラマとしての能力に限界を設けることになるからな。
32 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 20:59:43 ] まあ大学院生とかでも英論文読めないとかあり得んだろ それと一緒だ つうか英語以上に学んで役に立つプログラミング言語はねえぞ
33 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 21:05:46 ] 英語はプログラミング言語じゃねぇ! 自然言語だ! このケツ毛野郎が!
34 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 21:06:31 ] 「英語以上に」は「学んで役に立つ」にかかってるんだよ
35 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 21:48:20 ] >>1 乙Python
36 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 21:56:05 ] で、お前らはGAE使ってるの? 最近全然聞かないんだけど。
37 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 21:58:49 ] ココの住人でライブラリつくったら、 OpPythonとかになるんだろ?
38 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 22:06:12 ] いいえ、pyPanを作ります。
39 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 22:14:25 ] 実際CPANの真似しなくて本当によかったと思ってる
40 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 22:16:51 ] >>22 >RubyがPythonをかなりパクってる為 これはダウト。RubyはPerlやLispをパクってるけど、Pythonからはかけらもパクってないだろ。 >ライブラリの数も多いから、やろうと思えばなんでもプログラムできる。 これはPythonに限らずRubyでもPerlでもJavaでも同じだろ。 >>24 >Pythonの方がライブラリが充実してるから。これにつきる。 これはないって。RubyもPerlもJavaも同じようなもん。他の言語をろくに知らないと、こういう見方になるのか。 Pythonにも痛い信者がいるもんだな。もっと冷静な人ばかりだと思ってた。 >>30 >Linux、Unix、Mac、Windows、全てのOSで強いのが Python。 確かに、WIndowsでの動作はPythonは比較的良い。Javaがいちばんだけど。 でもPythonはWindowsではファイルロックができんからなー。あれはなんとかならんのか?
41 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 22:17:34 ] 俺、パイパンが好き。 とか言ってたら変態だからな。
42 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 22:21:29 ] もうちょっとがんばれ!
43 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 22:24:55 ] >>40 うそうそ、全部嘘。 みんな名前のH度でPython選んでるに決まってるじゃん。 俺もそうだ。
44 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 22:31:14 ] >>40 なんでJavaが入ってるの?これだからJ厨は…
45 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 22:41:41 ] portalocker code.activestate.com/recipes/65203/
46 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 22:45:33 ] 何が何をパクろうがどうでもいい。 大事なのは何が一番馴染むか。 もちろん俺はおっぱいそんだがな。
47 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 22:46:44 ] Javaのような糞重い言語がいいなんて言うやつ何なの?
48 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 22:52:13 ] あれは大量にメモリ食うしロードは糞遅いけど 演算速度はPythonより早いから
49 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 23:02:12 ] >>40 > でもPythonはWindowsではファイルロックができん ctypesで別に何でもできるが msvcrt.locking というのがある が、Windowsでのプロセス間排他はMutexやSemaphoeのほうが一般的だろう
50 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 23:03:34 ] Java使うくらいならCで拡張モジュール書けよ
51 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 23:07:18 ] Javaみたいな中途半端が一番使いにくいよな。 まさにC/C++とPython/Rubyみたいなのを両刀できないやつの 逃げ道w
52 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 23:18:13 ] Javaにはctypesのようなffiが無いし、JNIは異常に使いにくいからなあ PythonにはPsycoもboost.pythonもCythonもScipy.weaveもある
53 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 23:41:11 ] JavaにPsycoは要らないだろ。HotSpotあるのに。
54 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 23:43:56 ] ああ、Psycoは「Javaに対して」有利な点にはなってないな
55 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 00:39:44 ] Pythonは適当に書いたスクリプトを、普通にライブラリモジュールとしして使えるのが魅力。 モジュールを作るのがこれほど手軽な言語は他に知らない。
56 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 00:42:53 ] >>40 メガンテという魔法を使えばファイルロックできるよ。
57 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 02:01:03 ] メガザルロック
58 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 02:01:42 ] OpenOfficeライブラリOoo.py
59 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 02:02:35 ] Pythonで書かれたPythonインタプリタは、PyPy
60 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 02:04:24 ] CPANのPython版はPyPI
61 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 02:30:01 ] Pythonで書かれた 円周率計算プログラム。Pyπ
62 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 08:56:53 ] ごめん。目の前が真っ暗だ。 12月が山だと思う。察してくれよみんな。
63 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 10:53:30 ] pythonを最適化された高速ネイティブコードに変換してくれるコンパイラがほしいぞ
64 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 12:53:54 ] >>63 psyco
65 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 13:49:40 ] え?psycoってネイティブコード吐けるの?
66 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 14:18:10 ] なんでCで拡張しないの?馬鹿なの?
67 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 15:19:15 ] .
68 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 15:22:53 ] 普段と同じように振る舞っているのは空元気だと気づいてくれよ。 ごめん、ほんとうにごめん。もう駄目だ。
69 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 15:27:03 ] ごめん。がNGワードって事で。
70 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 15:47:36 ] あ
71 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 15:54:25 ] ん
72 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 15:54:47 ] ごめん駅でごめん
73 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 15:59:30 ] なはり駅でなはり
74 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 15:59:48 ] あ
75 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 16:00:40 ] ん
76 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 19:20:33 ] で、どこに行けばDjango使いに会えるの? Google groupのDjango usersぐらいしかないんだけど。
77 名前:デフォルトの名無しさん [2008/11/18(火) 21:35:14 ] 久々にこの板に来てみたんだけど、 Google App Engineのスレさえないんだね。 しかもPythonスレでも全然話題になってないとは・・・
78 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 21:37:36 ] 最初はなったが・・・ 弄ってる人はここで話してもしょうがないからねぇ・・・
79 名前:デフォルトの名無しさん [2008/11/18(火) 22:43:09 ] 大規模なものを書けば書くほど、Javaとの手間の差がなくなってくるのは気のせい?
80 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 23:31:14 ] >>79 Javaはstrutsの悪いイメージが・・・
81 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 00:48:29 ] >>77 Google App Engine pc11.2ch.net/test/read.cgi/php/1207754942/
82 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 01:09:57 ] >>76 会ってもしょうがないよ。 落胆するだけ。
83 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 02:15:50 ] 161は完全にいなくなっちゃったね。 勿体無い。 思うのはさ、「ウンコに触れたら自分もウンコ臭い」ってことだと思うんだ。 (ww辺りをNGに設定してさ、極力スルーしようよ。 皆で頼み込めばID実装されるかもしれないしさ。 これじゃpythonスレとしての機能を果たしてないよね。
84 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 02:16:16 ] 国籍法改正案について語ろうぜ
85 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 03:01:43 ] >>84 pc11.2ch.net/test/read.cgi/tech/1223709050/ そっちでやれ
86 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 10:42:04 ] import 外国人 as 選挙の票
87 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 10:43:17 ] >>79 javaと根本的に違うって感じは確かにしないね
88 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 13:14:44 ] 簡単に済む仕事がちゃんと簡単に済むようになっているのは十分有難いことだぞ ま、シリアスなタスクはPythonではやりたくないがな 性能は最初から求めないにしても、リソースリーク、排他制御が問題になるような タスクは嫌だ
89 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 15:13:24 ] 便利なpythonのプログラム作ったけど 自分だけの秘密ツールにするか 公開してしまうか悩むな
90 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 15:20:16 ] ここで審議してあげるのでうpしなさい
91 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 15:21:18 ] >>89 公開すると後悔するよ
92 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 15:23:18 ] >>89 どんなツールかだけでも書けばいいのに。
93 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 15:24:01 ] >>89 とりあえず何するプログラムか言え
94 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 15:30:59 ] 掲示板とかです。 ダンジョーを使って作りました。
95 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 15:36:43 ] >>94 ダンジョーってなに? Djangoのことか? 別に公開しても問題ないでしょ。 launchpad あたりにあげてくれれば、参加できるけど。
96 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 15:42:34 ] wgsiとかもです。 パイソンで書きました。
97 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 15:53:20 ] 「じゃんご」 "dg" にこだわるなら「ぢゃんご」
98 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 15:58:22 ] >>76 な、94とか95とか97みたいな奴ばっかりなんだって。 会っても意味ないよ。
99 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 16:16:04 ] 全く辻褄が合っていない >>98 。
100 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 17:13:23 ] (゚Д゚;) ダ、ダンジョー?
101 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 18:15:57 ] >>89 こんなとこで公開すると、変なやつに粘着されるぞw
102 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 18:39:33 ] それなりに優れたコードなら公開しなくても 興味持って聞いてくる奴が出てくる。 それからでも遅くない。
103 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 18:58:37 ] TurboGears、Django両方使ったことある奴ってここにいる?
104 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 19:12:11 ] おれ。
105 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 19:24:28 ] >>104 どっちが柔軟に感じる?
106 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 19:57:03 ] >>105 djangoだね。turbogearsは落ち目だから、もうやめたほうがいいよ。
107 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:02:15 ] djangoに遅延評価はいってるけど どんな使いかたするのかのいい例がみつからない
108 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:05:28 ] >>106 TurboGears、落ち目か。 pylonsと統合するとかいう話はどうなったんだろう。 俺としては、Djangoは便利なんだけど、認証まわりの拡張性がイマイチだと思うのよ。
109 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:16:30 ] >>108 > 俺としては、Djangoは便利なんだけど、認証まわりの拡張性がイマイチだと思うのよ。 それは実際当たってるね。 セッション、ユーザーログインなど、ユーザーの情報をdjangoで有効活用するように するには、多少のプログラミングが必要となる。 あと、個人的にはtemplateへの文字列が atuto escape になったのが嫌い(解除できるけど)。
110 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:23:40 ] ていうかDjangoのORマッパーとか低機能すぎだろ。
111 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:36:07 ] >>110 そんなに困ったことはないなあ。 いざとなったらカスタムSQL書けばいいし。
112 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:38:34 ] >>110 多くの開発者は満足しているようなんだけど、 Django の ORM のどの辺が "低機能すぎ" なの? どこが改良できそうなの? DBスキーマのラッパーなんだから、DBの機能よりは フレキシブルにはいかないのはしってるよね。
113 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:42:19 ] Djangoユーザ怖ええ(wwwww
114 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:46:17 ] >>76 な。111とか112みたいなやつばっかりなんだって。
115 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:48:10 ] 113 = 114
116 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:52:01 ] >>114 106も追加しといて.
117 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 20:59:39 ] >>98 =>>101 =>>113 =>>114 =>>116 また君か、自演君。 もう邪魔なんで消えてくれないかね。
118 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 21:03:44 ] >>117 TurboGearsとPylonsとDjangoどれが好き?
119 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 21:09:29 ] web.py
120 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 21:09:50 ] zope3
121 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 21:23:03 ] >>117 オマエガナー
122 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 21:26:33 ] >>119 web.py作ってた人たちはPylonsに移行したんだぜ。
123 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 21:49:17 ] ダンジョーってなんだよ(w
124 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 22:39:33 ] pythonも昔は「ぴちょん」とか読まれたりしてた
125 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 00:51:05 ] いまでもうっかりすると IDLE に「ぴちょn」とか打っちゃう。
126 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 06:34:57 ] pyてょn
127 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 01:40:50 ] @PAGESの広告いつの間にか増えてる 優良鯖が有料鯖になりそうだ… Python使える無料鯖って少ないよな
128 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 01:53:00 ] 国外でも少なめなのかな。 でもPython使う様になるんだと VPSとか金払ってしっかり環境整えたいから 気にしないなあ。‥嘘ですが
129 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 10:09:14 ] 任意の深さのlisp要素にmapってできないの?
130 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 10:10:27 ] Pythonとlispの夢の競演
131 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 11:09:37 ] Djangoはすばらしいと思うが使ってる奴はイタいな(w
132 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 12:02:38 ] 「おれがDjangoだ!」って奴ばかりだからな。
133 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 12:59:46 ] ダンジョーのひとたちは広めたいのか自己主張をしたいのかよく分からないです。 後者だとしたら、たいしたことないくせに身の程知らずが、と思います。
134 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 13:17:24 ] django をダンジョーと呼ぶ低能人間の方が身の程知らずだと思うけどな。
135 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 13:19:23 ] dyango七人夏物語
136 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 13:31:04 ] ダンジョーってDajngoのことを言っていたのか よく気がついたな >134
137 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 13:57:37 ] >>136 >>94-95
138 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 13:58:34 ] 松永弾正
139 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 16:04:09 ] 痛いDjango野郎を"ダンジョー"と呼ぶことにしませんか。
140 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 16:05:41 ] >>135 アッーーー!!
141 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 16:30:03 ] >>129 普通に出来ると思うけど。どのような利用例を想定してる? ロジック部分の関数とデータ所得(任意の深さにアクセス)を分けるなら単にネストでok。 map(func, map(lambda x:x[0][1][2], alist))
142 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 16:52:54 ] 再帰的に map してくれる map がほしい、ってことでそ
143 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 17:15:22 ] >>133 自己主張という名の自慰行為を見せ合って喜ぶ変態集団,というようななところか。
144 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 17:18:21 ] 西部警察「Django!!」
145 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 17:35:30 ] def treemap(f, xs): for x in xs: if hasattr(x, "__iter__"): yield list(treemap(f, x)) else: yield f(x) こんなもんでいいんじゃね
146 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 17:44:30 ] あ
147 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 17:48:12 ] def recursive_map(fun, arg): def f(a): if hasattr(a, "__len__"): return map(f, a) else: return fun(a) return f(arg)
148 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 13:17:09 ] Pythonクックブック第二版を買ったんだけど サポートサイト(python.is-a-geek.org/wiki/ )が潰れてるみたい なんだよね。どっかに正誤表ないかな?
149 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 13:48:23 ] Python 3.0 rc3 released
150 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 22:47:05 ] Linuxの上でPyQt4のQTextEditなんかで日本語入力したいんだけど、 どうすればいいか分かりますか? scim使ってるので XMODIFIERS="@im=scim" や LANG=ja_JP.eucJP とかしてるんですが、全然だめです。
151 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 23:25:50 ] qtが直接scimとやりとりするように、 scim-qtimm 入れて QT_IM_MODULE=scim ってしないと駄目じゃないかな? つーかPythonの話ではないな。
152 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 08:28:37 ] ありがとです。 そうですね、QTの話だなと思い直してググったら scim-bridgeという奴ならという情報があったので それを使ったら入力できるようになりました。 ただscimで入力できていたktermやFirefoxでは だめになったので、scimとscim-bridge並走状態… とりあえずはいいか… unicodeが普通に使えるようになってPyQt4での 日本語の扱いも楽になりましたね。
153 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 13:51:04 ] PythonインタプリタをPythonで作っているのですが、相談したい事があります。 現在入力中の文がコマンドとして 1 途中なのか、2 エラーなのか、3 コンプリートしたものか 判断する方法はないでしょうか? 1の例 for i in range(1, 3): ←これだけ入力されたら続きがある 2の例 j = foo() ←fooという関数はない 3の例 1+2 ←文として評価する事ができる アドバイス頂けたら幸いですm(__)m
154 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 14:10:53 ] Lib/code.py
155 名前:153 mailto:sage [2008/11/23(日) 15:08:54 ] >>154 ありがとうございます。 見てみまする。
156 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 15:13:15 ] >>153 pypy
157 名前:153 mailto:sage [2008/11/23(日) 16:20:16 ] >>156 なんですか、そのいやらしい名前は。 ありがとうございます。
158 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 19:59:53 ] >>152 scimでもscim-bridgeでもuimでも問題ないだろ。 つーかLANG=ja_JP.eucJPってどんな化石なディストリ使ってるんだよ。
159 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 16:16:54 ] >>156 マジで有るのか。 「パイパイいれていじってみたんだけど良いなコレ。」 「パイパイちょっと触ってみたんだけど、まだ発展途上じゃね?」 みたいな会話が繰り広げられているのか。
160 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 19:50:05 ] こんなプログラムが必要になった。 temp=lst[i]; lst[i]=-1; i=temp #(1) pythonではこんな見苦しい一時変数は必要ないもんね。と思い次のように書いた。 i, lst[i] = lst[i], -1 #(2) 賢明な諸兄はお気づきかと思うが、このプログラムは上手くいかない。 半日悩んだ結果、次のように書けばよいことが判った。 lst[i], i = -1, lst[i] #(3) で、教えて欲しいんだけど、(2)が駄目で、(3)なら良いというこの動作は うちの環境ではたまたま動くだけ? それとも公式に規定された動作ですか? ### 結局、プログラムは(1)の書き方で完成しました。
161 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 20:15:08 ] これのWARNINGのところじゃない? www.python.org/doc/2.5.2/ref/assignment.html www.python.jp/doc/release/ref/assignment.html
162 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 20:27:12 ] >>160 www.python.org/doc/2.5.2/ref/assignment.html > If the target is a target list enclosed in parentheses or in square brackets: > The object must be a sequence with the same number of items as there are targets > in the target list, and its items are assigned, from left to right, to the > corresponding targets. 左から右の順で代入するとあるので公式に規定された動作といえそう。
163 名前:デフォルトの名無しさん [2008/11/25(火) 03:29:32 ] Rubyだとruby会議みたいなイベントが全国であるけど、 Pythonにもそういうイベントってある?
164 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 08:34:11 ] >>163 PyConじゃね?
165 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 08:56:23 ] ttp://pyspa.org
166 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 09:37:52 ] ないわ〜
167 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 11:56:27 ] >>163 残念ですが、なくなったようです。
168 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 12:52:26 ] だからRubyやれって!
169 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 17:18:14 ] >>167 PyConって無くなったの? 知らなかった...orz....Pythonもうダメだ....。
170 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 17:19:02 ] そうだねRubyもうダメだね
171 名前:デフォルトの名無しさん [2008/11/25(火) 17:34:31 ] >>167 =>>169 おい、デマばっか流してんじゃねーよ。 PyCon は今年もあったし、来年もちゃんとある。 www.python.org/community/pycon/ せいぜいお前は Python の人気を妬む Ruby使いってとこだろうが、 大人気ないぞ。
172 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 17:36:51 ] Ruby使いがPythonの「人気」に嫉妬することはなかろ
173 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 17:46:13 ] >>167 ダンジョー乙
174 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 18:01:24 ] だからRubyやれって! 日本でpython使うメリットなんてないんだよ。
175 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 18:27:39 ] rubyにnumpyに相当するものあるの?
176 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 18:45:13 ] Ruby 使いは痛々しいな。。。 なんだ >>174 は、 恥というものを知らんのか。
177 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 18:56:11 ] >>173 いいえ、ターボギアスR2です。
178 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 19:01:46 ] またruby厨が荒らしてるよ
179 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 19:19:21 ] >>174 惨めなやつ!
180 名前:160 mailto:sage [2008/11/25(火) 20:06:14 ] >>161 ,162 なるほど、ちゃんと公式ドキュメントに書かれてたんですね。 「are not safe 安全でない」の解釈が微妙ですが、 規定された動作と考えてよさそうですね。 勉強になりました。ありがとうございました。
181 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 20:20:07 ] LinuxのX端末上で文字の色を反転させて出力する方法はありますか? 例えば、 txt="abcdefg" 5番目と7番目(インデックス4と6)の文字の表示色を反転 print txt みたいなことを望んでいます。
182 名前:181 mailto:sage [2008/11/25(火) 20:24:00 ] 追記 文字と文字の背景の色を反転という意味です。
183 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 20:58:49 ] もちろんできます。
184 名前:sage [2008/11/25(火) 21:00:56 ] エスケープシーケンス使えば。 www.siafoo.net/snippet/88 もっと凝りたいなら、cursesで。
185 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 21:03:19 ] X端末なつかしいな。
186 名前:181 mailto:sage [2008/11/25(火) 22:33:33 ] >>184 ありがとうございます。 エスケープシーケンスを使うことにしました。
187 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 14:44:10 ] >「are not safe 安全でない」の解釈が微妙ですが、 「全く安全という訳ではない」
188 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 19:02:41 ] turbogearsスレにも書いたのですが、過疎ってるようなのでこちらで質問させてください。 turbogearsを構成している各eggファイルをダウンロードして、turbogearsのインストールを行いたいのですが、 公式サイトのファイルリストのどのファイルをダウンロードすればいいのでしょうか。 ちなみにWindows環境です。
189 名前:デフォルトの名無しさん [2008/11/26(水) 19:15:30 ] ttp://nagosui.org/Nagosui/Misc/Turbogears/turbogears-install-on-windows
190 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 19:20:15 ] docs.turbogears.org/1.0/Wiki20/Page1?action=show&redirect=1.0%2FGettingStarted docs.turbogears.org/1.0/Wiki20/Page1
191 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 19:27:41 ] >>189 ご紹介いただいたページは既に拝見しました。 プロクシ環境なのでこの方法が使えません。 そこで、上記サイトのオフラインインストールマニュアルを見たのですが、 "基本的に最新バージョンの各パッケージのeggファイルを落とせばいいけど、lightbox等の一部のパッケージは除く"みたいな表現があったので、悩んでます。 これらのファイルはダウンロードしなくていいって事なんですかね?
192 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 19:35:23 ] いいんじゃない?
193 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 19:38:57 ] >>192 そうですか。では、インストールしてみます。 ありがとうございました。
194 名前:デフォルトの名無しさん [2008/11/27(木) 00:00:43 ] 質問です。 Pythonで数独を解くプログラムを書きました。 色々いじってPenIII933MHzでPsycoなしで70秒、Psycoありで 25秒くらいで回答できるようになりました。 さらに高速化しようとboost.pythonを利用してC++に 移植したのですが返って遅くなってしまいました。 何が原因でしょうか?必要であればソース出します。
195 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:11:03 ] >>194 よくわかんねえな。つうかそんなの組み方次第じゃないの。 数独解くプログラムって ttp://codepad.org/T5tQp3vL こんなもんでいいの? C/CLLなら瞬殺だと思うけど。
196 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 00:11:58 ] >>194 >PenIII933MHz ワーキングプアかよ(wwWwwwWWWwwwwWwwWwwww
197 名前:デフォルトの名無しさん [2008/11/27(木) 00:26:59 ] >>195 回答ありがとうございました。ほとんど同じコードをPythonで書いていました。 あまりC++が詳しくないので、おっしゃられるとおりC++での組み方が 悪いだけなのだと思います。勉強しなおしてきます。
198 名前:195 mailto:sage [2008/11/27(木) 00:44:36 ] CLLって何だw C++のtypoね >>197 ロジックが同じようなもんなら、とりあえず以下の点が疑わしいかなあ ・最適化していない(コンパイルオプションの問題) ・最近のVC++を使っているなら、vectorとかを使うと、[]演算子でもデフォルトで 範囲チェックがなされている可能性が高い(俺も細かいことは知らん)
199 名前:デフォルトの名無しさん [2008/11/27(木) 00:57:35 ] >>198 Pythonでは ttp://codepad.org/3jRpg91x という感じでした。 C++はおっしゃられるとおりvectorを多用していました。 boost.pythonがどうこういう以前の話だったようです。 勉強になりました。
200 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:07:40 ] おお、すごい2chにpostで投稿できた。
201 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:07:55 ] >>199 vector<>は別に悪者じゃなくて、C++ならそれが普通なんだけどね VC++は最近セキュリティがらみで色々やってるみたいだから SECURE_SCLだったかな?そのへんのキーワードでぐぐってみるといい
202 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:10:31 ] >>198 スレ違いだが、vectorの仕様では、 oprator[]は範囲チェックなし、 範囲チェックしたければメンバー関数at(i)を使うことになっている。
203 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 01:12:55 ] >>202 仕様ではそうなっていてもVC8以降は_SECURE_SCLが効いてると operator[]の範囲チェックをするようになっていた気がする だから、[]演算子「でも」と書いたんだけどね
204 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 05:32:11 ] vectorは要素コピーしまくり
205 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 05:34:04 ] Dequeに置き換えるだけで速くなる
206 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 06:17:44 ] >>196 PIII800MHz 192MB ですがなにか?
207 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 08:07:04 ] PenII266を現役で使用してるんだが・・・
208 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 08:23:41 ] cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) res1 = opener.open(req) if '<!-- 2ch_X:cookie -->' in res1.read(): opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) res2 = opener.open(req)
209 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 08:27:50 ] ぱい
210 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 10:41:28 ] 質問させてください。 pythonで一番メジャーなパッケージマネージャは何ですか? 調べてもあんまり出てこないんですよね・・。
211 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 10:53:26 ] >>210 easy_installじゃないの?
212 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 12:26:52 ] うちのファイルサーバーはpenIII 800だ
213 名前:デフォルトの名無しさん [2008/11/27(木) 13:34:53 ] >>194 つか、遅すぎなんだけど。なにそれ。やる気あんの? boost とか使う前にアルゴリズムを改良しろよ。 まずは CSP 学べ。
214 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 13:43:26 ] 産業廃棄物をサーバとして使うなよ(wwWwwWWWwwwwwWwWwwwwWwwww
215 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 14:18:44 ] 総当りでもしてるのかな?
216 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 14:26:15 ] >>215 総当りに近いんじゃね? 25秒とか、古い Pen II でもありえんよ。 CPU が P3 933Mhz もあるんだったら、半秒以上かかる sudoku solver 書いた時点で負け。
217 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 14:31:22 ] コードは上にあがってるじゃん
218 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 14:56:20 ] >>199 のコードに if __name__ == '__main__': import sys main(sys.argv[1]) を付け加えて、 530070000 600195000 098000060 800060003 400803001 700020006 060000280 000419005 000080079 とかいう入力を与えてみたけど、一瞬だったけど? time の結果が0.25秒程度 別にPsycoとか使ってねー PentiumM 1.7GHz Windows XP SP3 Python 2.5.2
219 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:01:05 ] >>194 それって25*25でってこと?
220 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:14:04 ] っと、コードが晒されているのか。 (少なくとも)3種の枝刈り手法があったと思ったが、どれもやってないの?
221 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:16:32 ] 81マスに9通りの数を置くだけなんだから、総当りだってゴミみたいな計算量だろ 上でやってるのはごくシンプルなバックトラックだよ 数十秒とか絶対ありえん
222 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 15:17:26 ] いやさすがに総当りはないか、訂正するw
223 名前:221=222 mailto:sage [2008/11/27(木) 15:18:47 ] 「総当りがゴミ」を訂正するという意味、重ね重ねすまん
224 名前:194 mailto:sage [2008/11/27(木) 16:01:18 ] >215,216,220,221 221さんが指摘されているとおりシンプルなバックトラックです。 他のアルゴリズムも勉強してみます。 >213,218,221 218さんが検証してくださっているとおり簡単な問題は 1秒未満で回答できます。紛らわしくてすいません。 ttp://www.sudoku.name/index-jp.php の問題を使用しているのですが上級++で 004000080 003007000 600800009 030002500 070080090 005000030 200001007 000400100 050000600 というような問題の回答が遅いです。 220さんがおっしゃっているようにアルゴリズムの工夫で 何とかしてみます。ありがとうございました。
225 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 16:32:27 ] 枝刈りしたら、この上級++の問題、数十倍速く解けるみたいだよ。 がんばって。
226 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 17:16:13 ] PyQtを使ったプログラムはソースを公開しないといけないの?
227 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 18:32:35 ] ユーザーはともかく、クリエータはGTK(GNOME)の方が多いだろう GTKがLGPLなのに対して、QtはGPLか最近のtool kit としては高額の 有償ライセンスかのいずれか 利用できる人間は、どうしても限られてくる
228 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 21:04:28 ] turbogearsの2.6対応まだなのー?
229 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 02:59:53 ] おれも最近sudoku作ったよ!ナカーマ どっかのホームページで数独の問題集があって、難易度ごとに別れているんだけど 最強難易度の一番最後の問題(たぶん94番目)を解くのに3秒くらいだったよん。 ==環境== WinXP ActivePython 2.5.2.2くらい Core2Duo1.7GHz
230 名前: mailto: [2008/11/28(金) 10:47:18 ] foo = "hoge" bar = "fuga" TITLE = {"title":foo - bar} print TITLE["title"] これで hoge - fuga と出力したいんだけど "foo - bar"で引用符で囲むと foo - barになる。 囲まないとエラーになる。 どうすれば hoge - fuga に出来ますか?
231 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 11:00:31 ] なんかえらい基本的なことが抜けてる気がするぞ ちゃんと勉強汁 foo + " - " + bar "%s - %s" % (foo, bar)
232 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 11:15:59 ] >>224 >>195 の、単純なバックトラックのCのコードですら その問題は(俺の環境では)0.35秒ぐらいで解けるようだよ アルゴリズム改善がベストだが、C++で書いても そんなに遅いのは、別の理由もありそうだな
233 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 11:21:11 ] \x00とすると16進数で8ビット文字列を作れますよね。 16進数を作ってから、\xとつなげるにはどうすればいいですか? "\x%x"のように文字列フォーマットを使おうとするとエラーになってしまいます。
234 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 11:22:44 ] "\\x%x"で定義してから、置換すればいいんじゃね?
235 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 11:25:31 ] できないじゃないですか。
236 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 11:26:19 ] 素直にchr()使いなさい。
237 名前:デフォルトの名無しさん [2008/11/28(金) 11:30:51 ] printf("%c", 0x25); こんな感じ
238 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 12:18:40 ] >>237 chr(0x25)
239 名前: mailto: [2008/11/28(金) 12:36:35 ] >>231 おぉ! + を使って繋げるのか TITLE = {"title":foo + " - " + bar} print TITLE["title"] hoge - fuga と、無事にできました でも、これが分かりません orz > "%s - %s" % (foo, bar) プログラム経験は昨日からです... www.python.jpを見ながら勉強してます
240 名前:225 mailto:sage [2008/11/28(金) 12:55:52 ] >>229 試してみる。どんな問題?
241 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 13:51:06 ] Pythonのオススメの統合開発環境は何ですか?(日本語化可能だと有難いです PyScripterはバグが多く、使いにくかったです…
242 名前: mailto: [2008/11/28(金) 15:10:40 ] >>241 テキストエディタでいいじゃん
243 名前:デフォルトの名無しさん [2008/11/28(金) 15:15:29 ] >>241 Vimを +python でコンパイルしたもの
244 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 15:26:20 ] >>240 ttp://www.sudoku9981.com/jp/print/extreme.asp の94番目のやつ
245 名前:225 mailto:sage [2008/11/28(金) 15:46:29 ] >>224 ありがと。 0.98秒くらいだった。ハードのスペック違うけど。 Vista CPython 2.6 PentiumM 2.1GHz
246 名前:225 mailto:sage [2008/11/28(金) 16:31:33 ] ごめん、訂正。 3回くらい実行したら、最短で0.2秒くらいだった。
247 名前: mailto: [2008/11/28(金) 16:47:05 ] チュートリアルでさえ難しいです 誰か僕に愛の手を
248 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 16:51:58 ] どこがわからないか*具体的に*いってみ
249 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 16:52:45 ] チュートリアル難しいよねえ。 まあ地道にコード打ってがんばろう。 てなことで今数独問題生成・解答アルゴリズムを考えてる。
250 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 17:17:26 ] BeginnersGuide/NonProgrammers - PythonInfo Wiki wiki.python.org/moin/BeginnersGuide/NonProgrammers
251 名前: mailto: [2008/11/28(金) 17:43:16 ] >>248 >"python file" と "python <file" の違いに注意してください。 >後者の場合、プログラム内でinput() や raw_input() が呼び >出され、ユーザからの入力が必要な場合、入力はファイル から >取り込まれます。この場合、パーザはプログラムの実行を開始 >される前にファイルを終端まで読み込んでおくので、プログラム >はすぐに入力の終わりまで到達してしまいます。前者の場合 >(大抵はこちらの方が望ましい動作です)、入力には Python >インタプリタの標準入力に接続された何らかのファイルまたは >デバイスが充てられます。 まず最初に意味が理解できなかった所です。
252 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 18:01:08 ] perlの場合は両方ともfileを実行するが pythonは違うから注意しろってことだろ
253 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 18:26:17 ] >>251 チュートリアルといいつつ、本当の初心者向けの文章ではないからね Unixの経験と、他の何らかの言語の経験を仮定している記述も多い 必要の無いところは、分からなくても読み飛ばしてしまっていいと思う
254 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 18:34:05 ] >>251 両者ともfileに含まれるPythonコードを解析し実行するという点では同じ。 ただ後者の場合は、解析段階で最後まで読んだfileをinput()の入力にあてがうので、 やってみるとEOFErrorになる。なので普通は誰もやらない。
255 名前:デフォルトの名無しさん [2008/11/28(金) 18:45:00 ] python fileとpython <fileが何の事か分からんです ひょっとしてコンソールで $ python file.py $ python < file.py こういう事?
256 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 18:52:23 ] >>255 なんでそんな簡単なことがわからんの? Pythonがどうこう以前に、そんなこと 普通にシェルに触ったことがある奴なら誰でもしってるよ。 $ cat < file.py がなんで file.py の内容をそのまんま吐き出すか考えてみろよ。 stdin からのインプットを待ってるからだろ?
257 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 19:05:03 ] 触るな危険
258 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 19:19:45 ] 数独をPythonでLISP風に解くとどんなコードになりますか? Pythonにこだわらずに LISPだけでもいいです。
259 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 19:25:11 ] >>258 LISP風の定義を言え。 lambda関数ばっかでやりたいのか? 変数に代入できんだろ。
260 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 19:41:12 ] 触るな危険
261 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 19:47:35 ] >>258 Lispは全然詳しくないが ・インデクスアクセスしたいタイプの問題なので、リストよりベクタ向き ・副作用を避けようとすると、9x9のベクタを大量にコピーしまくる羽目になる ような気がするが、どうなんだろうな >>199 のコードはforとかは使っているが比較的関数型よりのコードに見えるよ つまり、コピーしまくりんぐ
262 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 19:53:30 ] >>258 www.norvig.com/sudoku.html blog.livedoor.jp/k_urushima/archives/554026.html www.unixuser.org/~euske/doc/python/python-lisp-j.html d.hatena.ne.jp/reinyannyan/20080605/p1
263 名前: mailto: [2008/11/28(金) 20:33:07 ] >>256 ごめんなさい
264 名前:デフォルトの名無しさん [2008/11/28(金) 20:37:06 ] python <i>file</i> python < <i>file</i> このようになってたら分かり易いんだけどな。 fileがファイル名なのか "file" という文字を そのまま打つ必要があるのかが解り難い
265 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 21:07:38 ] >>251 の訳文「入力は <i> file </i> から取り込まれます」とすべきだったんだな
266 名前:194 mailto:sage [2008/11/28(金) 22:38:59 ] >>225 ttp://codepad.org/IdQp5HCX 枝刈りとして分岐が少ない場所から走査するようにしたところ 5秒で回答できるようになり5倍高速化しました。 数十倍は難しいです。もしよろしければ後学のために ソースを見せていただけないでしょうか? >>244 ,245 2.8秒でした。自分のプログラムもそれなりの速さがでているようで 安心しました。 >>198 ,201,202,232 C++勉強して書き直したところboost.pythonを利用して 0.5秒で回答できるようになりました。 きちんとC++やりなおさないとだめですね。 ところでC++とPythonで配列をやりとりするとき ttp://codepad.org/rQ1unjWk のように書いてみたのですが他にうまい書き方があるのでしょうか? ttp://www.boost.org/doc/libs/1_37_0/libs/python/doc/v2/faq.html#question2 を見たのですが、vector<->listの変換の自動化は未実装である ということでしたが毎回wrapperを書かないといけないのでしょうか?
267 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 23:00:46 ] >>266 python標準のリストって何でも入るからな 効率よくC++のvector<int>とやりとりしたいんなら とりあえずarrayがいいんじゃないの arrayモジュールについて調べてみることを薦める arrayは単一型のシークエンスで、バッファインタフェースを備えていて、 buffer_info()で思いっきり内部にアロケートされてる配列のアドレスも取れるから
268 名前:225 mailto:sage [2008/11/29(土) 00:36:50 ] あれから遊びで、複数解を求めるように 改造しちゃったけど、それでよければ。 ttp://codepad.org/jYgSN02c
269 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 05:23:48 ] for(std::size_t i=0; i<boost::python::len(l); i++) { board[i]=boost::python::extract<int>(l[i]); } イテレータでまわすほうが速くなると思う
270 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 05:29:06 ] >>268 助けて $ python sudoku.py Traceback (most recent call last): File "sudoku.py", line 80, in <module> main(sys.argv[1]) IndexError: list index out of range
271 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 05:32:09 ] ごめん #test() #sys.exit(0) のコメントアウトを外すんだね。 吊ってくる。
272 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 05:50:26 ] つ ttp://codepad.org/HTWzsnAp ポイントは ・セルごとに次に置ける数字のsetを用意する(テーブル) ・一番数字の個数が少ないセルから分岐する ・テーブルは再帰ごとに新しいのをつくる 最初、数字ごとに次におけるセルをテーブルにして苦労した。
273 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 11:51:43 ] pynumはPython2.6に対応してないんですか?
274 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 12:55:56 ] inforno.net/articles/2008/10/03/python26-features また、-3コマンドラインスイッチにより3.0で削除される機能を使っている場合、警告を出せる。 d.hatena.ne.jp/JiaLu/20081003/1222999530 2.6を使用するために、あなたのコードに下記の変更が必要かもしれない。
275 名前:デフォルトの名無しさん [2008/11/29(土) 17:07:00 ] Python 言語の中身を詳しく説明したサイトはないの? 例えば AST とか、バイトコンパイルの実装とか、そういったやつ。
276 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 19:02:43 ] あるよ
277 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 19:05:49 ] いじわるな人・・・
278 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 19:10:38 ] >>277 そういう池沼にはレスつけないでくれ。
279 名前:デフォルトの名無しさん [2008/11/29(土) 19:33:54 ] >>276 そうか、なら安心だな。
280 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 19:35:53 ] >>275-279 どうみても同一人物だな
281 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 19:36:24 ] >>275-280 どうみても同一人物だな
282 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 20:30:01 ] matplotlibのplot3Dにバグあるってどんなバグ? 自分は普通に使えてるんだけど
283 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 20:46:37 ] pythonで3次元plotしたい場合のお勧めはどれ? matplotlibがもうサポートしないよと言ってる
284 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 22:45:23 ] vpython
285 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 20:49:38 ] >>284 便利そうだ www.nasuinfo.or.jp/FreeSpace/kenji/sf/visualj/index.html
286 名前:デフォルトの名無しさん [2008/12/01(月) 11:47:04 ] 3.xへの移行ってまだまだ先でいいんですかね? 色んなライブラリのパッケージもあって楽だし 今のところは2.5が一番使いやすい環境みたいだけど、 今からそれ勉強しても無駄になりますか?
287 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 15:29:43 ] >>286 >今からそれ勉強しても無駄になりますか? 無駄にはならないと思うよ。ただ2.6を使ったり、Python 3.0で何がどう変わるのか、なぜ変わるのか、その辺りの事情についてアンテナ張って勉強しとけばオッケーかと。
288 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 15:47:03 ] 邦訳ドキュメントも2.5になったばかりだし、しばらくは2.5でいいよ。
289 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 18:28:12 ] 2.6をわざわざVC9でビルドしたが、そこで力尽きてしまった 環境全部移行するのが面倒くさすぎて、結局まだ2.5.2を使っている どーせ主要なディストリとかcygwinとかもまだキャッチアップしてないだろ
290 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 19:15:10 ] >>289 Debian stableだとまだ2.4だw 3に完全移行するのは当分先になるだろうな
291 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 19:15:26 ] このスレでturbogearsやってるのは俺だけの予感
292 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 19:32:20 ] そんなメジャーなものを使ってて良くいうよ。 俺なんかTenginだもんね。
293 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 19:37:18 ] でもturbogearsって聞かなくね? mod_wsgiで動くの?
294 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 19:37:56 ] pythonで画像処理ならPILですが 動画なら何を使うといいのでしょうか?
295 名前:デフォルトの名無しさん [2008/12/01(月) 21:51:44 ] 俺なんかTempita
296 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 22:21:28 ] なんでマイナー自慢になってんだよw
297 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 22:34:55 ] 俺はダンジョーで毎日ヤッてるよ。
298 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 22:38:07 ] >>297 Djangoの話題はスレが荒れる
299 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 22:57:04 ] ぞぺの仲間入りですね
300 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 23:04:19 ] ぞぺとどじゃんごっていろいろ似てるよな 使ってる人たちの香ばしさとか
301 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 23:26:18 ] パイパイで、ぽろーーん
302 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 00:55:46 ] pythonでインデント使わない方法はありませんか? ファイルサイズが大きくて困ってます
303 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:00:59 ] 気にするな
304 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:03:52 ] x=range(100);print x for i in x: print i;print '\n'; これなら出来るけど class hoge: def func(): pass; みたいにインデントが必要なのが2つ以上は無理だと思うよ
305 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:18:02 ] 今時メモリすらギガ単位で計られる時代に たかがスクリプトのファイルサイズを気にする奴がいるとはな
306 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:30:41 ] 低スペックに気を配れないプログラマはゴミ
307 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:31:53 ] 可読性に気を配れない奴もな
308 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:32:03 ] 300K以上のスクリプト起動すると遅くない?
309 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:34:27 ] インタプリタだから容量は実行速度にも影響出るだろ
310 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:51:35 ] じゃぁメモリに置いとけや
311 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:53:12 ] バイトコンパイルして実行するんだから インデントが実行速度に影響するわけないだろ
312 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:53:36 ] >>309 > インタプリタだから 関係ねえし。
313 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:57:51 ] インデント削るととか、大昔のBASICの高速化技術みたいだな 発想が化石過ぎて感動した pycってファイルが何なのか分かってるか?
314 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:11:32 ] 書き込み権限がないからpycが無いです
315 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:13:22 ] 1つの.pyに詰め込んでるのでpycが無いです
316 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:13:30 ] 昔のBASICって、よく使う変数はプログラムの最初の方で 宣言しておいた方が速くなるとかあったなw そういえば、レンタル鯖とかでPythonのCGIを実行する場合って pycは作られるのかな?
317 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:14:17 ] >>316 作られるよ
318 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 02:14:52 ] pyc作られようが作られまいが、内部的にはバイトコンパイルしてから 実行だから、「インデントが」速度に影響出るなんてことは、あり得ねえけどな
319 名前:デフォルトの名無しさん [2008/12/02(火) 04:06:23 ] >>302 > pythonでインデント使わない方法はありませんか? > ファイルサイズが大きくて困ってます ハードタブにしろ
320 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 07:30:44 ] 今時ハードタブはありえない
321 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 08:30:29 ] 内部的にバイトコンパイルする速度には影響出るが 全体の実行時間に対する割合で言えば影響は無いと言ってもいいくらいという
322 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 08:42:55 ] pc11.2ch.net/test/read.cgi/tech/1169473442/l50
323 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 10:06:44 ] >>321 ギャバンが蒸着を完了する程度の差しか無いだろうな。
324 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 10:29:07 ] Pythonのスレで思うのは バージョン間ごとの信者なんて沸かないことだな。 安定だの不安定だの、信頼性に欠けるとか。 ドキュメント化されてるからそうなってるんだろうなー。
325 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 10:36:25 ] >>324 バージョンあがるごとに確実によくなってるし、Deprecated Warning を無視していない 限りはほぼ確実に次のマイナーバージョンアップ (2.4 -> 2.5 みたいな) で問題ないから 移行も楽だからねぇ。 Python3.0も、互換性はなくなるけどオブジェクトシステムとか基本が変わらないし、 Python2.6にPython3.0移行支援が用意されてる (大量の Deprecated Warning と 2to3) から、 php4 -> php5 とか perl5 -> perl6 とか ruby1.8 -> ruby1.9 とかよりも簡単に 移行できそう。まぁ、ある程度有名ライブラリが3.0に対応してくるまで自分のアプリは 2.x 用のままだけど。
326 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 10:37:20 ] まぁ一年は様子見るけどな
327 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 18:45:34 ] PILでimage sequenceをゼロから作る方法をみつけれない どこかにいいsample codeないのかな
328 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 18:51:24 ] GoogleCodeSearch
329 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:41:14 ] 静止画はPIL 動画はpygame という使い分けでいいのか?
330 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:40:31 ] どういう用途において?
331 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 02:00:48 ] PILはaviファイルの読み込みする方法はみつけたけど 加工して書き込みできなかった pygameが読み込みも加工も新規作成もできる
332 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 14:21:04 ] クラス変数についてです。 class foo(object): CON = 'const' print foo.CON # print CON としたい 例えば上のprint文で、いちいち"foo."を書くのが面倒です。 importっぽいことをやって、"foo."を省略できるように させる方法はあるのでしょうか?
333 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 14:53:10 ] 研究室の学生の人数全分のmatlab買えないので pythonに切り替えた はたしてこの選択は間違っていなかったのか
334 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 15:10:02 ] カローラと自転車を比べてもしょうがないな
335 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 16:25:36 ] >333 python というより numpy, scipy の話って感じかな sage ってのもなんか似た臭いなんだけどどういう位置づけなのかな? scipy のさらに上位のまとめライブラリ? ただ matlab から"乗り換え" というのなら普通は scilab とか octave とかが思い浮かぶけど
336 名前:デフォルトの名無しさん [2008/12/03(水) 16:41:24 ] >>333 俺は windows用の matlab なら持ってるけど、俺がメインでつかう linux 用の matlab はもってないから、完全に matlablib に乗り換えた。 (en.wikipedia.org/wiki/Matplotlib ) matlab はソフトウェアには組込めないけど、matlablibは 簡単にインテグレーションできるので、移行してよかった。 てか、matlablib を見つけれてよかったとおもってる。 お勧めするよ。
337 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 16:45:21 ] matplotlib の話なのか、 おれが知らない matlablib の話なのか はっきりしてくれ
338 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 16:48:23 ] >>337 ごめん、matlablib は自分用語で、公式にはmatplotlib。
339 名前:デフォルトの名無しさん [2008/12/03(水) 20:20:50 ] >>333 pythonに切り替えた はたしてこの選択は間違っていなかったのか Matlab は揃いすぎ。理屈が解らなくても、マウス・クリックだけでフィルタ設計ができ てしまう。Python ならば、学生が理論を理解できていなかったら結果を出せない。学生 用ならば python のほうが良いと思う。 >>335 ただ matlab から"乗り換え" というのなら普通は scilab とか octave とかが思い浮かぶけど Python 使いならば matlab から scipy に乗り換えてもおかしくない。sympy など、他の モジュールとの連携させる意味では python のほうが matlab より扱いやすい。もう matlab は言語としては古臭くなっていると思う。 Matlab の優位性は、matlab 言語での膨大な蓄積とドキュメントの豊富さだと思う。
340 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 22:08:10 ] >>332 class foo(object): CON = 'const' CON = foo.CON print CON どうよ?
341 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 01:25:08 ] >332 import foo.CON as CON
342 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 01:36:37 ] すみません、12文字以内でお願いしますです。
343 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 02:45:06 ] file1 -------- class foo(object): CON = 'const' -------- file2 -------- from file1 import foo.CON as CON print CON --------
344 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 05:42:06 ] matlabが今のlapackみたいな位置づけになるのも遠くないのか
345 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 09:09:15 ] 話のネタっす ナイトツアー問題 slashdot.jp/article.pl?sid=08/12/03/0419216
346 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 09:56:16 ] shutil.move() ってめっさ遅くないですか? ローカルにある2MBくらいのファイルを移動するのに0.4秒から1秒かかったんですけど 流体の計算より時間かかるってどんだけ
347 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 10:48:53 ] OSやドライブorディレクトリのマウント状況によるだろう
348 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 11:05:44 ] >>346 時間がかかってるんなら、それはクロスデバイスな移動を行おうとしたからで、 実際にはコピーが走ってるんだろ コピーはshutil.copyfileobj()で行われるはずだが デフォルトでは16KB単位(デフォルト引数でlength=16*1024となっている) のようだから、ddでも使ってその環境での最適なバッファ長を確認したうえで、 shutil.copyfileobj.func_defaultsを書き換えてみたら
349 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 11:08:41 ] 言わずもがなだが、念のため キャッシュに一旦入ってしまうとコピーは一瞬で終わるし コピーの性能を評価する時には色々気をつけなければならないことは沢山あるぞ 勿論同一デバイス上でのrenameでいいのなら、それに越したことは無い
350 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 11:42:52 ] 3.0きたな。
351 名前:346 mailto:sage [2008/12/04(木) 11:43:58 ] いちおスペックは XPsp2 core2 Cドラ 空き100ギガ以上 とりあえずファイルの操作はpopenでシェル呼んでやったほうが速いですか? popen2.popen4('move '+ファイルパス+' '+ディレクトリパス+' /y') でいけますか?
352 名前:332 mailto:sage [2008/12/04(木) 12:02:47 ] >>340 >>341 >>343 お返事有難うございました。 するとなると、下記のような場合で foo.CONX を一気に CONX と 書けるようにするのは難しいのでしょうか? class foo(object): CON1 = 'const1' CON2 = 'const2' # 以下CON3などたくさん
353 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:04:09 ] >>351 よくわからんな Cドライブ→Cドライブの移動で、そんなに時間かかってんの?
354 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:21:56 ] 3.0きたけど様子見。 他のライブラリーが対応してないから
355 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:24:11 ] まあクオリティ的には Ruby 1.9 より断然上だよな> Python 3.0 そういえば、 Perl 6 という vaporware もありました。
356 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:30:13 ] まだ2.6にも移行してねえんだが……
357 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:41:44 ] >>353 CからCです。 いくらなんでも遅すぎですよね。
358 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:45:06 ] >>352 file1 -------- class foo(object): CON = [('const%d' % n) for n in xrange(1000)] -------- file2 -------- from file1 import foo.CON as CON for n in len(CON): print 'CON%d = %s' % (n, CON[n]) --------
359 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 12:47:22 ] >>357 早めにディスクのバックアップ取っとけw
360 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 13:51:33 ] sage使ってる人います? numpy単独よりも便利なのかな
361 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 14:13:38 ] pythonのコードをdllや.soにする方法ってあるのかな
362 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 14:17:33 ] 3.0のWhat's Newは短いなぁ
363 名前:デフォルトの名無しさん [2008/12/04(木) 14:21:57 ] >>362 変更点は全て列挙してあると思うけど、例を載せてほしいってこと?
364 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 15:05:48 ] 2.6に多くの機能が入ったからその分短くなったね
365 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 15:43:10 ] そういう問題なのか??? ありすぎて書けない… わけじゃなく段差の分結果的に "what's new" の項目数は少なくなったって感じ?
366 名前:デフォルトの名無しさん [2008/12/04(木) 15:44:05 ] >>365 いやいや、十分長いがなw 参考文献へのリンクも含めて読んでみろよ。
367 名前:736 mailto:sage [2008/12/04(木) 15:59:14 ] >>359 ちなみに正常な環境だと shutil.move()の実行速度って何秒くらいですか? テスト条件はできれば同じくらいの環境で
368 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 16:16:05 ] shutil.move("C:\test.txt", "C:\Test")みたいにdstにディレクトリを指定すると 実装のos.renameでOSErrorが発生してcopy2の方が呼ばれてるから遅くなってるのかな? shutil.move("C:\test.txt", "C:\Test\test.txt")みたいにファイル名を追加するか os.renameを直で使ってみたら?
369 名前:368 mailto:sage [2008/12/04(木) 16:17:10 ] ↑のはWindowsでの話。他のOSは分からない
370 名前: 株価【52】 mailto:sage [2008/12/04(木) 16:29:59 ]
371 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 17:37:20 ] >367 0秒
372 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 19:02:54 ] 具体的にはどの段階で3.0にいこうすればいいのかね?
373 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 19:35:22 ] >>372 お前の使ってるライブラリが対応したときだろ。
374 名前:デフォルトの名無しさん [2008/12/04(木) 19:59:37 ] まだ 3.0 リリースせずにユーザーがもうちょっと 2.6 に慣れてから リリースすればよかったような気がする。 でも、3.0は長い移行期間が必要とされるから、逆に早めにリリース しておきたかったんだろうね。
375 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 20:17:04 ] >>352 ... class a: ... CONST1=1 ... CONST2=2 ... for x in dir(a): ... if x.startswith("CONST"): ... exec(x + "=" + "a." +x) ... print CONST1 どうよ?
376 名前:375 mailto:sage [2008/12/04(木) 20:18:06 ] インデントがめちゃめちゃだ。 ごめんよ。
377 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 20:57:18 ] printのカッコが地味に面倒だな。 こっちの方が言語的にいいのは、頭では理解してんだけどさ。 いままでの癖がなかなか抜けなくて、ぱいそんたんに怒られてばっかりだ。
378 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 21:26:41 ] 3.0が出たので入れてみた(Vista) 早速起動した。 > help() 打ってみた。動く。 そこで出た文章に従って > modules spam 打ってみた。 エラー出た。 uft-8 ってエンコーディングが見つからないって。 ・・・・あたりまえじゃああああ どこが間違ってるのかよく分からんです。 Python30のディレクトリ下をgrepして出てくるのは Lib/test/bad_encoding.py だけ。これは想定通りだろうが・・・
379 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 21:35:52 ] ・・・もしかしてLib/testはインストール後に 除去するのが正しい使い方? 別んとこによけておいたら、↑も通った。
380 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:38:47 ] print("a%s%s" % ('b', 'c')) なんかキモイな…
381 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:42:12 ] Py3kはユニコード指定しなくていいのが嬉しい。 これでフレームワークが対応してくれれば・・・。
382 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:52:02 ] つーか2.5とかでも別に def printf(fmt, *args): print fmt % args, def fprintf(f, fmt, *args): print >>f, fmt % args, とか定義すりゃ printf("a%s%s\n", 'b', 'c') とか書けるわなあ print()関数は、%とカッコがC風のprintf()より冗長に見えてしまうね
383 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 23:03:10 ] setuptoolもまだ対応してないのかな?
384 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 23:06:11 ] 3.0わしょーい
385 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 00:17:30 ] >>380 boost::format みたいだ
386 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 00:28:39 ] print("a{0}{1}".format('b', 'c')) print("a", 'b', 'c', sep="")
387 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 00:32:32 ] >>386 それもキモいな あまり意味の感じられない多様性 Perlみたい
388 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 00:44:15 ] string template は
389 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 00:53:59 ] print文なんて一発プログラムでしか使わん。 ちょっと込み入った規模ならファイルオブジェクトにwriteするか loggingを使ってる。 潔癖症にかかってる人は 変える必要など無い所まで変えやがるから 迷惑この上ない。
390 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:03:49 ] 一貫性に拘りすぎるのはバカみたいなことを Pythonの中の人言ってなかったっけか
391 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:06:36 ] >>390 それは本当にそう思うけど print()関数は、後方互換性潰してまで導入したのがこれか、とは思う
392 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:07:24 ] printは最初っからキモイ
393 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:09:51 ] >>392 全くだw
394 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:12:03 ] 自演オワタ
395 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:15:56 ] 単要素のタプルもキモイ
396 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 01:21:54 ] >>389 じゃぁお前はprintの変更の影響受けて無いじゃん。 Python開発者は潔癖症なんかじゃないよ。 print文の変更も議論の上だよ。 print文でファイルに出力する方法とか、最後に改行しない 方法とか、その為だけに構文を増やしていたのを、普通の関数呼び出しにして柔軟に 使えるようになった。 数タイプを削減するためだけに構文増やしまくってたprint文がキモ過ぎただけで、 print関数は素直で自然な姿。
397 名前:デフォルトの名無しさん [2008/12/05(金) 02:15:03 ] 後方互換性潰してまで導入したのがこれか
398 名前: mailto: [2008/12/05(金) 02:22:59 ] それが何か?
399 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 04:52:48 ] Cとの互換性を重視して文法がカオスになってるC++を見てると、 どこかで切り捨ては必要だなって思う。
400 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 09:11:27 ] printの構文くらいしか噛みつくとこないんですね
401 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:00:42 ] デバッグプリントしようとしてエラー吐いたときのイラつきは異常
402 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:32:16 ] >>400 printの構文くらいしか噛みつくとこないということにする以外に噛み付く方法無いんですね
403 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:41:21 ] print以外に互換ない所ってどこ?
404 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:44:28 ] そもそも、printの構文なんて存在しなくなったというのが正しい。 printが関数になって、関数の構文で呼び出せるようになり、 Pythonの構文がいっそうシンプルになった。
405 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:46:27 ] >>400 ぶっちゃけPython3.0の新機能なんざ、後方互換性の破壊による 二重保守や移行の手間に見合うほどのもんじゃないよ、どれもこれも Python3.0のほうがより良い仕様だということは認めるが、 別に言語仕様だの性能だのの明白な強化に繋がる仕様じゃないし 単なる切り落としも多い 例えば、reduce()がbuiltinから消えて喜ぶ奴がいるか? はっきりしているのは、それでスクリプトを書き換える必要が生じる ユーザだけは沢山いるということだ 周辺ライブラリとか作ってる人たち、今後は二重保守やテストを強いられることに なんのかね 当たり前のようにC APIも仕様変わってんだろ ぞっとするぜ
406 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:47:36 ] >>403 文字列の扱いは全く完璧に変わった 例外のハンドリングも構文が変わった シンタクスレベルの変更なので、スクリプト内で動的にバージョンを判断して 分岐することはできない バイトコンパイルの時点でシンタクスエラーになるからな
407 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 10:49:24 ] 変化に対応できないじじいは史ねってことですね、分かります。
408 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 11:02:43 ] >>405 移行したくないならどうぞそのまま Python 2.x をお使いください。 だれもあなたに移行しろと言ってませんし、俺もまだ移行しません。 1年や2年は様子見で良いよ。 ライブラリが揃いだしてから、新規のコードは Python3.0 用に書き始めれば良い。
409 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 11:09:44 ] > ライブラリが揃いだしてから、新規のコードは Python3.0 用に書き始めれば良い。 なるほど、使ってる全部の端末に2種類のPythonインタプリタをインストールして 二重運用するわけかw そして今までのコードベースはそのやり方じゃ、3.0からは使えない、と うっかりミスでトラブル続出だな boost.pythonとかどうなるのやら
410 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 11:11:52 ] >>409 俺は1.9、2.4、2.5、2.6、3.0全部入れてるぞ
411 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 11:13:16 ] >>410 >1.9 Ruby厨乙(ww
412 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 11:13:56 ] 流石反応はええな
413 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 11:51:49 ] hoge.cppからhoge.hppを自動生成するschemeのprogramが format文(pythonのprint文)のきもい使い方駆使しまくってたんだけど 似たことpythonでもできるようになるのかい?
414 名前:デフォルトの名無しさん [2008/12/05(金) 11:59:32 ] >>405 C APIについてはどうなのか知らないけど、 通常のPythonスクリプトのプロジェクトでの2重保守のコストは、 テストを自動化してるかどうかによると思う。 変換ユーティリティ 2to3 の利用もテストを前提としてるみたいなので。 ttp://www.artima.com/weblogs/viewpost.jsp?thread=208549 より、簡単に抜粋すると。 0. テストを書く。 1. python 2.6 へ移植。 2. py3k 警告モードでテスト。 3. 警告がなくなるまで修正を繰り返す。 4. 2to3で 3.0 向けに変換。 5. 3.0 でテスト。 6. エラーがあれば変換前のコードを修正する。 7. release 手作業が必要なところ以外を自動化してしまえば、 保守コストが2倍掛かるなんてことにはならないはず。 移植コストは 2to3 がどの程度の変換をサポートしてるかに拠るのかな。 8割程カバー出来ればいいや、みたいな事言ってたを何処かで読んだけど。ソース失念。
415 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 12:05:31 ] ttp://gihyo.jp/dev/feature/01/python3000/0004 に2to3の適用範囲についての説明はあるな その後もっとマシなものになっているのかどうかは分からんが その辺は、要求品質にもよるだろうな 業務としてやってるようなものなら、テストだって全自動で終わりとかありえねえし ゲームの自動テストでも書いてみるか?w
416 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 12:32:19 ] C apiの変更はboost.pythonに吸収してもらえないのかねえ
417 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 12:47:45 ] docs.python.org/3.0/c-api/concrete.html を見ると、Sequence ObjectsからString Objectsの記述は無くなって、 Bytes ObjectsだのByte Array Objectsだのが登場している。 Unicode Objectsは残っている。 strはUnicode Objectsにマップするのだろうか。 docs.python.org/3.0/c-api/arg.html を見ると、相変わらずフォーマット"s"が存在し、 「string or Unicode Objects」とか書いてある。 そしてそれが「char*に」変換する。 byteからのフォーマット指定子も追加されているが。 正直何がしたいんだか良く分からないんだが。 上っ面だけ整理して、C APIはカオスに見える。 ドキュメントが追いついていないだけか?
418 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 13:38:36 ] まあ3.0移行とか関係なく、普通にテスト書くだろ。 テスト書かないハゲは消えろや。
419 名前:デフォルトの名無しさん [2008/12/05(金) 15:34:22 ] python 2.5/2.6 を使っているんですが、 この段階では print 文でなくて print 関数を使うようにはできませんか? future import なんとかでできたらいいなぁ、と。 いずれ python 3.0 に移行するまでのつなぎとして 今からそう書いておきたいんですが・・・
420 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 15:36:26 ] 2.6なら from __future__ import print_function
421 名前:デフォルトの名無しさん [2008/12/05(金) 15:44:51 ] >>419 >>382
422 名前:デフォルトの名無しさん [2008/12/05(金) 16:26:39 ] いつのまにか2.6.1
423 名前:デフォルトの名無しさん [2008/12/05(金) 17:42:43 ] >>420-421 ありがとうございました. めでたく print("aiueo") できました. ところで,Python でメッセージを標準エラー出力 に出す時に簡便な方法といえば何でしょうか? やはり os.write などを使って出すのでしょうか? print2("aiueo") のような関数は標準的にはありませんか? 自分で便利関数を作ってもその存在を忘れてしまうほど 頭が弱いので,与えられたものがあればそれを使おうと思います.
424 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 17:45:34 ] sys.stderr.write(...) print >>sys.stderr, ... print(..., file=sys.stderr)
425 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 17:47:20 ] >>424 > print >>sys.stderr, ... これは非推奨。
426 名前:デフォルトの名無しさん [2008/12/05(金) 18:02:02 ] logging
427 名前:デフォルトの名無しさん [2008/12/05(金) 19:03:20 ] おお,logging なんてのがあるんですか. >>425 のような書き方も知りませんでした. もう一つ質問があります. 設定ファイルであれこれ設定する必要があるのですが, できれば UNIX/Windows で共通に使えるように したいと思っています.こういうときホームディレクトリ 直下に .myapplication ファイルでも用意して, その中に ConfigFile 形式や JSON 形式で設定を 書くようにすればいいのでしょうが, Windows の 場合だったらプロファイル直下かなぁ,とか, ポータブルにするための手間は惜しみたいとか考えてしまいます. アプリケーションの個人用の設定ファイルの扱い方, 特にその配置場所について,Python 流のお決まりの やり方というのはあるのでしょうか?
428 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 19:14:45 ] レンタルサーバーでもpython3.0対応してくれたら 移行してもいいんだがな
429 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 19:58:03 ] >>427 os.path.expanduser()
430 名前:デフォルトの名無しさん [2008/12/05(金) 20:23:29 ] >428 自分で入れればいい
431 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 20:32:07 ] ブロックの終わりを示すキーワードを強要するオプションがほしかったな
432 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 20:39:22 ] >>427 Pitおすすめ d.hatena.ne.jp/a2c/20081016/1224097042
433 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 23:56:09 ] 以下の呼び出しはaがアサインされてないよと言われて失敗してしまうんですが そういうものなんですかね? def maker(a): # return lambda(c): a + c def f(c): a = a + c return a return f f = maker(3) print f(4) 左辺値のaを別の変数にすれば動きます。
434 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 00:07:22 ] 俺はBeautiful Soupが3.0に対応するまで移行するのは待っていよう
435 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 00:08:36 ] Python3.0ならnonlocalで出来たかと
436 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 00:09:04 ] >>433 docs.python.org/reference/executionmodel.html#naming-and-binding If a name binding operation occurs anywhere within a code block, all uses of the name within the block are treated as references to the current block. This can lead to errors when a name is used within a block before it is bound. This rule is subtle. Python lacks declarations and allows name binding operations to occur anywhere within a code block. The local variables of a code block can be determined by scanning the entire text of the block for name binding operations. と書いてあるので、仕様だろう 結局のところletのような構文は無いのだし、それがPythonなのだと思うしかない 俺は最近はletだのvarだのmyだのが無いことの不便さのほうを感じることが 多いな
437 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 00:19:56 ] 64になって困るのだろうか?
438 名前:デフォルトの名無しさん [2008/12/06(土) 00:30:47 ] pythonでswitch文書くにはどうしたらいいの?
439 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 00:32:02 ] switchなんてものは無いが、別にいらんだろ パターンマッチもないよ ifで頑張れ
440 名前:436 mailto:sage [2008/12/06(土) 01:38:31 ] すまん、ちょっと意図を勘違いしていた。 >>433 は左辺も右辺も自由変数を参照したいわけだな? ならPython3ではnonlocal文でいいはずだが、 それ以前のPythonでは、自由変数に代入することはできない。 global変数にはglobal文を使うことで代入することはできるが global変数を使うこと自体稀だろう。 Schemeなどのlet文では左辺がローカルな束縛で右辺が自由変数という ケースも良く出てくるが、それもPythonではできない。 できない理由は>>436 の引用に説明されている通り。 いずれも変数宣言を持たないことによる帰結だな。
441 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 01:41:19 ] let「文」はおかしいな まあいいか
442 名前:デフォルトの名無しさん [2008/12/06(土) 01:44:19 ] py3kについてkwskかかれた日本語まだー?w viewってなんだよviewって・・・
443 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 01:54:06 ] >>440 ありがとうございます! エラーもはいてくれるし、ローカル変数を使うつもりが初期化を忘れて 勝手にネームバインディングされるよりはわかりやすくていいのかな。
444 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 01:56:51 ] >>443 本当はletなどで明示したほうがいい、と俺は思うんだけどね まあ、letの3文字をタイプする手間と、それを省くことによる仕様面での制限の トレードオフを考えたときに、Pythonは手間を省く方を選んだということだ
445 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 02:33:08 ] >>433 def maker(a): # return lambda(c): a + c def f(c, a=a): a = a + c return a return f とすればいいと思うよ。
446 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 02:45:50 ] a += c でもだめなんかなぁ。。。
447 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 04:45:34 ] >>438 caseが全て定数なら、辞書を使うと高速。 パターンマッチが必要なら ttp://code.activestate.com/recipes/410692/ みたいなのを拡張して使うといい。 制御構造の為に標準構文以外の独自拡張を取るのが、 可読性を損ねるという考えもあるので、無難なのは if/elif... かな
448 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 08:40:20 ] >>442 きっと一年後ぐらいに出ます。
449 名前:デフォルトの名無しさん [2008/12/06(土) 10:07:05 ] >>431 キーワードのデフォルトはpassですねわかります
450 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 11:16:12 ] debug=sys.stderr.write ... debug("ほげ〜")
451 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 11:38:27 ] >>449 そうそう。対象ファイル内ではpass/return/break/continueを強要するの。だめ?
452 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 14:37:18 ] @hoge ってどういう意味なの @の使い方がわからない
453 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 14:43:17 ] きっと"python デコレーター"とかで検索す
454 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 15:12:22 ] >>451 素直に、インデントによるブロックを折畳表示してくれるエディタの支援を使おう。
455 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 15:45:10 ] wwwww wwwww wwwww wwwww wwwww ww wwwww wwwww www wwwww wwwww wwwww wwwww wwwww wwwwwww wwwww wwwww wwwwwwww wwwww wwwww wwww wwww wwwww wwwww wwww wwww wwwww wwwwwwww wwwwwwww wwwwww wwwwww wwww wwww ww ww
456 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 18:07:31 ] a=[1,2,3,4,5] b=[5,4,3,2,1] for c,d in a,b: print c,d これできないのって仕様?
457 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 18:21:29 ] ZIPを要求する! for c,d in zip(a,b): print c,d
458 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 18:22:46 ] >>457 存在忘れてたw ありがとう。
459 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 18:43:16 ] BeautifulSoup/2to3 挑戦してみた。 1. 2to3 BeautifulSoup.py | patch BeautifulSoup.py 2. 3k に sgmllib がない。2.6から持ってくる。 3. sgmllib内 warnings.warnpy3k 辺りはいらないので削除。 4. 2to3 sgmllib.py | patch sgmllib.py 5. 3.0 で import BeautifulSoup が通る。 6. re.match, re.search 等に bytes オブジェクトが渡っている所を str() で wrap 数箇所修正。(実行してエラーが出た箇所を潰していく) 7. BeautifulSoup(text).prettify() がエラーなしに動く。 8. 文字列が全て <b'font' b'size'="b'-1'"> の様になっているのに気付く。 str(b"foo") が "b'foo'" という文字列を返す為。.decode()で文字列に変換する必要がある。 9. PageElement.toEncoding, NavigableString.__str__ が bytes を返すのを .decode(encoding) で str に。 ※ 他にも bytes を返すメソッドがあるかも知れない。 ※ 2.x 互換の方法が解らなかった為、ここは 3.0 のコードを変更した。 10. ここまでで .prettify() 通った。diff取るの忘れたけど手作業で変更したのは5,6箇所程。 ※ 2.x では decode/encode して端末へ表示してたのが、3.0では不要になった。 .prettify()の返す文字の文字コードが異なる?修正が影響したのかどうかは追ってない。
460 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 19:46:13 ] ぱいおつ
461 名前: mailto: [2008/12/07(日) 12:23:34 ] >>439 あざす
462 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 14:27:35 ] バランスの取れた括弧にマッチさせるときに 以下の正規表現だとre.compile()時にnothing to repeat.と怒られてしまいます。 何が不味いのでしょうか。 '(?P<REP>' '\(' '([^()]+|(?P=REP))*' '\)' ')' (?P<>)の入れ子自体は問題ないようなのですが・・・
463 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 14:39:22 ] ちなみにテストコードです。 import re r = re.compile('(?P<REP>\(([^()]+|(?P=REP))*\))') s = 'abc((de(f))gh((ijk)lmn))opq' print r.search(s).group()
464 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 16:33:06 ] emacsのoutlineマイナーモードでpythonのコードも折りたたみたい
465 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 19:18:49 ] HTML/XMLの操作にはBeautifulSoupとlxmlのどちらが主流派なんですか? BeautifulSoupはpure pythonという以外に何かメリットデメリットあったら教えて下さい。 HTML/XMLの操作ってあんまりやったことないので常道ってのも分からないので判断しかねて・・・
466 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 20:19:23 ] >>462 そういう「再帰的な定義」を許していないんじゃないか? そういう記述ができるものがあるのは知っているけど、 エラーメッセージから想像力を働かせるとPythonでは許していないような気がする。
467 名前:デフォルトの名無しさん [2008/12/07(日) 20:20:00 ] >>462 (?P<>)の入れ子自体は問題ないようなのですが・・・ 問題あるだろう。こうだろう r = re.compile('(?P<REP>(\([^()]+|(?P=REP))*\))')
468 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 21:04:33 ] >>466 やっぱりそうなんですかね。 (?P<>)の入れ子はcompileは通るのですがどうも効いていないっぽいです。 >>467 ありがとうございます。 でもバランスしません(>_<)
469 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 21:16:56 ] (?P=name)って要するに名前付きのバックリファレンスだろ? 入れ子の記述を仮に許しても、方針として全然ダメじゃねえの? 要は「マッチしたもの」にマッチするんだから 一般的な入れ子のカッコを処理できるわけないじゃん
470 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 22:02:13 ] pythonで 誌 という文字をunquoteっしたいんですけども どうすればいいですか?
471 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 22:10:22 ] >>469 期待通りに動く処理系もあるんですよ・・・
472 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 22:33:20 ] なら具体的なバージョンとかの情報出すべきかと・・・
473 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 22:45:55 ] 文字参照を元の文字に戻すにはどうすればいいでしょうか
474 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 22:48:25 ] ver.1.9のことです(>_<)
475 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 02:13:53 ] 正規表現万能論者はお断りします
476 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 02:15:45 ] 本来的な正規表現ではないよな バックリファレンスですら そういう意味ではPythonのは既に足は踏み外してるけど 再帰を許すほどではないな
477 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 08:46:23 ] 俺の質問に答えろや
478 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 11:40:41 ] >>471 リファレンスみたいな豪快な拡張にポータビリティを期待するほうがダメかと。 Pythonの正規表現の仕様から、これが処理できないのはおかしいとはっきり 導出できるなら、そのようにバグとして報告すればいい話。 >>470 >>473 import urllib urllib.unquote
479 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 12:52:22 ] 質問 cgiをpythonで作っています。 #!/usr/local/bin/python import cgitb,time print "Content-Type: text/html\n\n"; t = time.strftime('%H:%M:%S') print '<p>time is'+ t +'</p>' この状態なら動くのですが、print関数の文字列に日本語が含まれているとcgiが動かなくなります。 これは何故でしょうか・・・? ちなみに保存文字コードはshift-jisです。
480 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 13:05:16 ] >>479 文字コードをUTF-8(BOM無)で保存すればいい
481 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 13:26:31 ] >>479 www.python.jp/doc/release/tut/node4.html#SECTION004230000000000000000
482 名前:479 mailto:sage [2008/12/08(月) 13:29:38 ] UTF-8で保存すると今度は全くcgiが動作しなくなります・・・OTL
483 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 13:31:30 ] windowsXPでpython 3.0なんですが >>>douon("変態") ["変態", "編隊", "変体", "へんたい", "ヘンタイ", "hentai"] みたいな関数を標準モジュールだけで書いていただけませんでしょうか
484 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 13:32:58 ] >>482 ん?sjisでも「全く動作しない」はずだが…… CGIなんだから、直接pythonインタプリタで実行してみろよ たとえコメントの中だろうが、エンコーディングを指定せずに 非ASCII文字が書かれている時点で Pythonインタプリタにはねられるから
485 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 13:36:39 ] >>483 無理。ていうか辞書次第。
486 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 13:37:17 ] >>483 migemoあたりの辞書を使うといいんじゃねえか migemoで普通やるのの逆変換になるが
487 名前:479 mailto:sage [2008/12/08(月) 13:39:18 ] >>481 参考URL有難うございます。 # -*- coding: utf-8 -*- import time print "Content-Type: text/html\n\n"; t = time.strftime('%H:%M:%S') print u'<p>時間は'+ t +'</p>' のようにエンコードを指定してもインタプリタでは動くのですが、cgiファイルとしてサーバーにアップ後は動かなくなります。 パーミッション等は合ってます。
488 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 13:42:27 ] >>487 unicode文字列をprintに渡してるんなら、また別の問題がある。 printはunicodeを受け取ると、sys.stdout.encodingに従ってそれを 変換しようと試みるが、sys.stdout.encodingは環境次第だ。 多分asciiか何かになってんだろう もともとpythonのstdin/stdoutのencodingはリダイレクトに弱い。 自分でエンコーディングを指定してバイト列に変換してからprintに渡せ。
489 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 13:44:22 ] >>485 >>486 ありがとうございます やっぱいきなりでは無理ですよね
490 名前:489 mailto:sage [2008/12/08(月) 13:45:48 ] googleの人達も地道に辞書登録しているんでしょうか
491 名前:488 mailto:sage [2008/12/08(月) 13:46:17 ] いちいち手で変換するのがうぜーならこうするといいぞ sys.stdout = codecs.getwriter('utf-8')(sys.stdout)
492 名前:デフォルトの名無しさん [2008/12/08(月) 13:50:27 ] CGIは板違いっすよ皆さん Python CGI pc11.2ch.net/test/read.cgi/php/1163513344/
493 名前:479 mailto:sage [2008/12/08(月) 14:12:15 ] >>488 ありがとうございます。 pythonライブラリのsite.setencodingの中のencoding = "ascii"という部分を"utf-8"に書き換えてみました。 が、まだ動きません・・・ >>492 すみません、検索不足でした。 気をつけます。
494 名前:479 mailto:sage [2008/12/08(月) 14:19:34 ] >>488 連レスすみません。 printにバイト列としてエンコーディングを指定してから渡す、という方法で上手く表示することが出来ました。 お付き合い頂いてありがとうございました。とても助かりました。
495 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 14:39:15 ] >>462 括弧の対応が取れたパターン(言語)というのは、 文脈自由文法(二型文法)に属します。 正規表現の扱えるのは正則文法(三型文法)なので、 それより範囲が少し狭いです。 # 範囲を越える文法を扱えるマッチャーが多いですが。 チョムスキーの定義で考えると、 どんな入れ子でも受理可能にするには、 無限の規則が必要になることがわかると思います。 (正規表現の再帰的な定義がちゃんと出来ることとほぼ同義) ja.wikipedia.org/wiki/ 形式文法
496 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 14:42:32 ] >>490 依頼を受けたデータ入力会社の雇われたキーパンチャーがね
497 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 19:10:22 ] Time flies like an arrow.
498 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 20:22:40 ] >>459 参考になった、ありがとう 思ったより手間すくないのね
499 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 20:49:32 ] >>462 オライリーの詳説 正規表現にはPerlでバランス取れた括弧のキャプチャの例が載っていましたよ www.oreilly.co.jp/books/9784873113593/ >5.2.4 括弧類の対へのマッチ 今手元に本が無いからうろ覚えですけど、Perlの独自拡張で無限の?入れ子まで対応しているとか >>471 の期待通り動く処理系ってPerlのそこそこ新しい奴じゃないですか? 他の正規表現処理系でのやり方も書いてあったような気がするので もし詳説 正規表現が立ち読みできたり図書館で借りられる環境ならぜひ読んでみて >>495 さんの言う通り正規表現で無限の入れ子なんて普通は受理できないのですが Perlの正規表現処理系は拡張が物凄いので正規文法の限界を思いっきり超えてます このオライリーの本はこんな形式文法の話や正規表現処理系のNFAとDFAの違いなど 細かいけど(好きな人には)面白い話が載ってます
500 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 21:10:55 ] たてよみ
501 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 21:42:03 ] 最後の方に言語毎の正規表現の比較が掲載されてて、それのおかげで助かった事が2回あった ところで”オライリーの本”ってどう略すの
502 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 21:55:49 ] >>501 表紙の動物じゃないか? ラクダ本とか、バッタ本とかあるけど となると正規表現はフクロウ本?
503 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 22:40:16 ] Twistedは蛇玉本
504 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 10:14:32 ] pythonのIDEにgeanyってのがあるのを知って使い始めました。 スニペッツを使ってみようかと思ったら、標準だと何も登録されていないようですね。 geanyをお使いの方は、スニペッツはどうしていますか? 手書きでしょうか。 どこかのサイトにあればいいのですが・・・
505 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 10:26:15 ] pyjames使ってる人います?
506 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 10:51:05 ] 返答まだですか?
507 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 12:31:16 ] tupleのi番目の要素だけを更新するには tupleを作りなおすしかないのでしょうか? v=(1,2,3) vv=(v[0],v[1]+2,v[2])
508 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 12:34:57 ] はい
509 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 12:42:44 ] 効率を気にしないなら一回listにするかな。 vl=list(v) vl[i]+=2 vv=tuple(vl) でも更新したくなったならlistのままの方が良いんじゃないかという気はする。
510 名前:デフォルトの名無しさん [2008/12/09(火) 14:33:52 ] >>504 まだ不安定だよgeany
511 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 22:52:44 ] >正規表現 みなさん、レスありがとうございました。 かなり勉強になりました^-^ 正規表現で実現できるならプログラムの一貫性がとれてよかったのですが、 そもそも括弧を同じ数だけカウントするなんてたいしたことない処理なので 今回は正規表現を使わず対応したいと思います。
512 名前:デフォルトの名無しさん [2008/12/09(火) 22:52:55 ] Python 2.6.1あげ www.python.org/download/releases/2.6.1/ バグフィックスなので2.6つかっている人はどうぞ〜
513 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 23:25:33 ] >>510 そうですか。いいところかなと思っていたのですがね。 MacでPythonをサポートしたIDEは何がいいか悩みます。
514 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 00:30:34 ] 2.6.1インストールしたんだけど、_socketのimportエラーでるんだけど、 なんなのこれ
515 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 08:26:38 ] うちは、Windows + PyScripter 1.9.9.2 + Python 2.6.1だとエラーが出る。 PyScripter --python26だとimport socketでエラーが出る。 PyScripter --python25だとエラーは出ない。 また、コマンドラインからpythonを起動したときはエラーは出ない。 Python 2.5.2, 2.6.1, 3.0で確認
516 名前:デフォルトの名無しさん [2008/12/11(木) 09:10:31 ] IDLEの補完がなんか気に入らない IDLEの代わりってなんかある?
517 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 09:15:09 ] >>516 例えば、どういうところが気に入らないのか教えてもらってもいい?
518 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 09:53:30 ] op で おっぱい と
519 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 10:13:22 ] vista で wx アプリのデバッグで強制終了が多発するようになってから、久しく使ってなかったけど。 久しぶりに起動しようとすると、起動すらしなくなっていた。 Windows vista + PyScripter 1.9.9.2 + Python 2.6.1 (環境には 2.5.2, 3.0もインストール済) + RPyC 2.60 (pyscripter googlecode の downloadより) --python25 だとエラーが出て一応起動するけど、何かするたびにエラー。終了も出来ない状態。 official の 1.7.2 に戻してみても上の現象が発生。
520 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 11:06:46 ] >>515 pythonを組込で使うとエラーがでるみたいだな。
521 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 11:15:53 ] バグらしいな。 bugs.python.org/issue4566
522 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 14:07:09 ] 前スレのこれは? >154 :デフォルトの名無しさん:2008/10/15(水) 22:41:10 > >>144 > 以下の内容を「Pyscripter.exe.manifest」としてPyscripter.exeのフォルダに置いておけばimportできるかも > > <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> > <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> > <security> > <requestedPrivileges> > <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel> > </requestedPrivileges> > </security> > </trustInfo> > <dependency> > <dependentAssembly> > <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></>assemblyIdentity> > </dependentAssembly> > </dependency> > </assembly>
523 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 15:54:48 ] Vs2008使ってるのか。 もうコンパイラのバージョンどんどん上げるのやめてくれよ。
524 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 20:40:00 ] PythonはVS2003の次はVS2005を使うかも、と思ってVS2005 Standard買ったら、 VS2008使うようになってた。ちょっとショックだ。 ……たぶんMinGWでもコンパイルできるのだろうけどさ。
525 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 20:45:31 ] >>524 それはご愁傷様だが、べつにただで落とせる2008のexpressで問題はない VC8以降のmsvcrtはSxSに格納されてmanifestを使うから、mingwは微妙かもなあ 試してみないとわからんが
526 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 23:24:31 ] スクリプトの文字コード(# -*- coding: xxx -*- の xxx)を スクリプト実行時に取得するには、どうすればよいでしょうか。
527 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 23:39:33 ] ファイルをオープンして1-2行目を調べればいい coding[:=]\s*([-\w.]+)
528 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 00:44:44 ] 正規表現おじさん来た!!
529 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 00:46:52 ] 正規表現って気持ち悪いよね
530 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 00:50:23 ] >>528-529 さてはおまいらPEP読んだことないな。
531 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 01:12:35 ] あるよ。 正規表現はキモイから使うなって書いてあったよ。
532 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 01:14:49 ] ないよ。 ワンダーはモモーイから聞けって書いてあったよ。
533 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 01:26:48 ] 正規表現使うやつは童貞
534 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 01:40:35 ] なんで分かった?
535 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 01:41:52 ] 正規表現使わん場合はif文でがんばるの?
536 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 01:45:42 ] for if最強伝説
537 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 09:21:16 ] >>535 正規表現の次はifかよ(w おっさんはこれだから困るよなー。
538 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 10:00:01 ] とりあえずおっさんって言いたいだけじゃ・・・ 上司にいじめられたか?
539 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 11:21:42 ] >>535 > if文でがんばる 比較の度に文字列のスライスを生成する効率の悪いコードしか思い浮かばないけど...。 正規表現等の組込のドメイン固有言語は、利点・問題点があるので利用は適材適所。 使い所と用法を誤らなければ、便利なツールとして活用できるよ。 例えば、>>526 なら、>>527 の通り ワンライナーの正規表現で十分事足りる。 PEP 0263 より > More precisely, the first or second line must match the regular > expression "coding[:=]\s*([-\w.]+)". re.VERBOSEオプション付きでコメント付けたり、 (?P<encoding>[-\w.]+) の様に名前を付けると、可読性の面でより親切。 >>511 の用途なら、 字句解析とステートマシンを使い、扱いやすいデータ形式に変換してから処理する。 簡単なサンプル: S式のリスト表示。ttp://paste.org/index.php?id=4477 # 文字列内の()や引用符のエスケープシーケンス等も考慮したい場合は、 shlex, tokenize等のモジュールも見てみるといい。
540 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 12:50:08 ] >>521 bugs.python.org/file12249/testpy.c #include <Python.h> int main(int argc, char **argv) { Py_Main(argc, argv); } これだけでembedできるんだ 知らなかった というかargc arcvには何いれたらいいんだ
541 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 12:52:15 ] pythonでscript書くと Makefile いらないんじゃないかと思うこともあるけど やっぱりmakeは使ってしまう
542 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 13:39:18 ] scons(笑)
543 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 14:11:35 ] DEP関係はHeapAlloc→VirtualAllocなんだって
544 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 17:09:18 ] sconsだめなの?
545 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 19:20:09 ] 1234567890 を urlsafe_b64encode (ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_) で表記すると BJlgLS であってますか?
546 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 19:26:25 ] base64.urlsafe_b64encode('1234567890') MTIzNDU2Nzg5MA==
547 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 19:31:53 ] '%08x' % 1234567890 499602d2 0100 1001 1001 0110 0000 0010 1101 0010 (499602d2) 01 001001 100101 100000 001011 010010 (BJlgLS) 後ろから詰めるとそうなるけど base64って先頭から6bitづつ区切るだろ 010010 011001 011000 000010 110100 10 じゃないのかな っつーかそもそも1234567890を何bitでとるのかによって変わるんじゃね?
548 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 19:35:17 ] base64じゃなくて64進数なら print format(1234567890, 64)
549 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 03:08:26 ] >>548 Python2.6のbuiltinsのformat? 数値のspecは文字列で指定するみたいだけど。PEP3101 組み込み関数では、int(str,base)でもn進数変換できるけど、 _PyInt_Formatは2..36進数までしかサポートしてない。
550 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 03:42:03 ] >>540 戻り値が渡ってないので。return Py_Main(argc, argv); 引数は python -h 参照。
551 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 03:52:24 ] >組み込み関数では、int(str,base)でもn進数変換できるけど 逆じゃない?
552 名前:550 mailto:sage [2008/12/14(日) 07:03:50 ] 2..36進数表記の文字列 -> 数値でした。指摘thx int(str,base) は C/APIでは PyInt_FromStringだった、これもbaseの範囲は2..36 n進数変換。CAPIには PyNumber_ToBase があったけど、 pythonから使えるのはbase=2,8,16 (bin,oct,hex) のみ。 from ctypes import py_int, py_object, pythonapi num_to_base = pythonapi.PyNumber_ToBase num_to_base.argtypes = [py_object, c_int] num_to_base.restype = py_object print(num_to_base(7, 10)) # "7#13" print(num_to_base(128,64)) # "64#20" 値によっては変換後の文字を端末に表示する際にUnicodeEncodeErrorになることも。(python 3.0)
553 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 06:25:41 ] b64c = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_' base = len(b64c) digs = 11 #(nにあわせて変えてね) ''.join([b64c[int(n / base ** (digs - 1 - x)) % base] for x in xrange(digs)])
554 名前:デフォルトの名無しさん [2008/12/17(水) 02:09:54 ] python 2.5.3c1 and 2.4.4c1 release
555 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 04:04:20 ] 2.4.6では?
556 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 06:40:25 ] coreblog.org/ats/finest-new-neature-of-python-30 3.0は変数名に漢字が使えるんですね。
557 名前:デフォルトの名無しさん [2008/12/17(水) 13:06:52 ] omoshiroi >>> class 動物: >>> 鳴き声 = '・・・' >>> def 鳴く(自分): >>> print('%s:%s' % (自分.__class__.__name__, 自分.鳴き声)) >>> >>> class 猫(動物): >>> 鳴き声 = 'にゃー' >>> >>> class 熊(動物): >>> 鳴き声 = 'クマー' >>> >>> 君のペット = 猫() >>> 君のペット.鳴く() 猫:にゃー >>> 僕のペット = 熊() >>> 僕のペット.鳴く() 熊:クマー
558 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 13:44:08 ] >>557 おもしれぇww
559 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 15:06:33 ] > Python 3.0になってもPEP 8は生きているので,クラス名に「動物」はありえないです(笑)。 ということなので真に受けんように
560 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 16:09:11 ] >>559 自分用に分かり易いコード書く程度だったら問題はない。
561 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 16:51:36 ] ニートかどうか判別できるわけですね、わかります。
562 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 17:20:02 ] 560がニートだ,みたいな言い方はやめろよ!!
563 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 17:22:12 ] つまらないな。君達、もうちょっと大人になれ。
564 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 18:36:52 ] Is your tail white, too?
565 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 21:23:23 ] Your tail isn't white too, is it?
566 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 00:36:37 ] listの中を進んだり戻ったりしたいのですが、 インデックスで走査すると遅くて使い物になりませんでした。 そこでイテレータの使用を検討したのですが 進むことはできても戻ることができません。 Cのポインタ走査のように何か高速に走査する方法はないでしょうか。
567 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 00:42:06 ] Pythonのlistはlinked listではなくvectorだから インデクスアクセスはランダムアクセスで、オーダー的にはO(1)だ それが遅すぎるというのであれば、Pythonでやるのが間違いであるような 仕事をさせてるんだろう 素直にC/C++使っとけ
568 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 00:42:56 ] C最強!
569 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 00:52:38 ] >>567 そだったんですか・・・ てっきりリンクリストとばっかり思ってました。 ありがとうございました!
570 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 01:38:59 ] 使いものになんねえw
571 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 01:40:54 ] そのための拡張モジュールさ
572 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 02:21:13 ] Python Code Reading行ったけど 丁寧に説明してくれたな。次も行きたいと思う
573 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 02:21:29 ] スクリプト書くときどんなエディタ使ってます? emacsで書いてるんですけど、visual studioのインテリセンスのようななのがほしいです。 eclipseのPydevってのしかないのかなー、できるならemacsでがんばりたいんだけど。
574 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 05:42:52 ] NetBeans 6.5のPythonプラグインというのもあるが、まだまだだな。
575 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 08:28:32 ] leopardでもおすすめのエディタを教えてください。
576 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 13:04:40 ] >>573 pysmell
577 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 13:09:28 ] >>576 emacsだとpycompleteぐらいしか選択肢がないと思ってたのだが, 今はpysmellというのがあるんだ.横槍だが参考になった.
578 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 14:41:38 ] emacs code browserもpythonに対応してるぞ
579 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 14:44:30 ] >>576 便利そうだね www.emacswiki.org/AutoCompleteSources
580 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:01:56 ] >>573 今書いてるからもうちょっとしたら公開するよ。
581 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:20:05 ] Pythonは動的に属性が追加/削除されるから、インテリセンスみたいなのとは 相性がイマイチだね。
582 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:23:27 ] >>581 わかってないなー。未熟だね。
583 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:25:11 ] まあ例えば def foo(x): x. までタイプしたところで補完するのは無理だわな 少なくともスコープ内で型が確定してるようなケースでないと
584 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:42:34 ] Function Annotationsを利用する事はできそうだよね
585 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 19:32:38 ] Function Annotations の具体的な用途は 3rd party製ライブラリに委ねられていて、 型情報に限らずどんな式でも書けるようになってる。 変数の型を保障する仕組みではなく、ライブラリ等でチェックする際のヒントとして使えるだけ。 エディタ/IDEが皆に「function annotations には型を書く」と強制は出来ないので、 補完への利用は出来ないことはないけど、難しいんじゃないかな。
586 名前:デフォルトの名無しさん [2008/12/18(木) 20:14:25 ] 最近学習を開始した初心者です。 最初はコマンドプロンプトで命令を表示させているだけですが、 pythonで作ったプログラムはこういったCUIの中で行われるものですか? ***.exeで立ち上げるようなプログラムを作るのは無理ですか? Cやっとけってことでしょうか?
587 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 20:15:57 ] っttp://python.matrix.jp/modules/py2exe.html
588 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 20:24:55 ] windowsなら拡張子を.pywにすれば.exeっぽく実行できるよ GUIがやりたいってことなら該当するライブラリをあさってみるといいよ TkinterとかwxWidgetsとか
589 名前:デフォルトの名無しさん [2008/12/18(木) 22:16:00 ] wxPython+py2exe
590 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 23:06:32 ] >>586 コマンドラインからでもウィンドウを表示できることは理解されているでしょうか? $ python Type "help", "copyright", "credits" or "license" for more information. >>> import wx >>> class MyApp(wx.App): ... def OnInit(self): ... frame = wx.Frame(None, 0, "Title") ... frame.Show(True) ... self.SetTopWindow(frame) ... return True ... >>> app = MyApp(0) >>> app.MainLoop() # ←ここで中身が何もないウィンドウが出る。 >>>
591 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 23:14:03 ] 横からだけど、MainLoop内ではどういうことしてるの? ループに入るって事は中でずーっと処理が繰り返されてるんだよね。 なのに放置してたらCPU使用率は0付近をさまよう。これって不思議。 自分でforループとかwhileループ走らせれば面白いほどCPU使用率は上がるのに。
592 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 23:25:39 ] GUIが動いてるだけでCPU使用率が跳ね上がったら まともにパソコン使えないだろ!
593 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 23:26:43 ] >>591 普通はこんな感じ while True: 次のイベントを取得する(イベントが来るまでブロック) イベントを処理する ビジーループではないからCPU使用率は跳ね上がらない イベントが来なければずっと寝ているだけだ
594 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 23:31:45 ] >>590 のようにPythonの対話環境を生かして 対話的にGUIを試したい場合、使用するツールキットによっては細工がいる >>590 の例だと、最後のMainLoop()を呼ぶまで窓は表示されず、 呼んでしまうと今度はそこでブロックしてしまい、対話環境が使えなくなるはずだ それではせっかく対話環境からGUIを試す面白みも無いだろう Tkの場合は、環境によるが、mainloop()関数をよばずとも root = Tkinter.Tk() だけでいきなり窓が出て、対話環境で引き続き色々コマンドを打ち込むことが 可能なようだ 試したところWindowsとLinuxでは大丈夫なようだが、cygwinではmainloopが 必要で、このような使い方はできないようだ
595 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 23:37:42 ] >>593 なるほど…。となるとイベント取得ってのは、OSから呼び出す形で実現してるのか。
596 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 23:42:53 ] >>595 ん?いや、送ってくるのはOSなりウィンドウシステムなりだが、 あくまでアプリが能動的に読み取る pythonでraw_input()関数を呼ぶと入力待ちになって キーボードから何か打ち込んでやると制御が戻って入力が得られるだろう それと基本的には同じだ
597 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 23:55:31 ] >>596 アプリ「何かキーが押されるまで待つか」 アプリ「zzZ」 OS「おい起きろ。お前宛に”A”キーが押されたぞ」 アプリ「ああ、おk。これで次の処理に進めるね」 ってイメージだけど、あってる?
598 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 23:59:16 ] >>597 うん、そんな感じであってる
599 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 23:59:53 ] event「Zzz」 loop「何かイベントあった?」 os「Aキー押されてるよ」 loop「おいevent起きろ」 event「イベント実行、っと」
600 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:00:20 ] ウィンドウシステムだと起きなくてもガンガンポストに突っ込んでくよ
601 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:03:53 ] >>599 > loop「何かイベントあった?」 こういうポーリングはないと思ってくださって結構です。
602 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:06:29 ] 寝てる奴を起こしてはくれるんだが 次の仕事を待ちかまえてない時(別の仕事をしてる時)に 別の作業が舞い込んでくることは普通にあるから、 とりあえず仕事依頼はイベントキューという名前のポストに溜め込まれる でもまあ最初の理解としては>>597 でいいと思う
603 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:06:41 ] いやはや、スレチ臭い話題なのにみんな答えてくれてサンクス。 こりゃ低レベルなGUIに関する知識が必要さね。 「プログラムはなぜ動くのか」って書籍は読んだけど次は「Windowsはなぜ動くのか」辺りを読もうかね。
604 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:12:24 ] >>594 もうちょっと真面目に書けば、 ウィンドウを終了した時に、 app.MainLoop()から返ってくるので、 そこでまた対話環境を利用することも可能です。
605 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:15:36 ] >>604 うん、まあそうなんだけど、普通は窓を作って対話的に ボタンをつけたり線を引いたり窓を動かしてみたりしたいわけでしょう 対話環境なんだから ウィンドウシステムでは、窓を表示してUIを操作するには、結局誰かが >>593 のような仕事をしてやる必要がある Tkinterの場合は、WindowsやLinuxでは自動的にバックグラウンドスレッドを 作って、そういうイベントループを回してくれるわけだ そうでなければ、そのようなヘルパー的機構を陽で造りこむ必要があるな
606 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:31:35 ] Tkは、データ構造をユーザ定義出来ない 動的言語のTCL上で最初に実装された。 だからその言語の影響を受けて、組み込みのTkオブジェクトを、 コマンドで操作していく動的なAPIになった。 だからどの言語上でも対話的なGUIコンポーネント作成が得意だね。
607 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:36:21 ] うん 古臭いと言われがちだが、対話環境で遊ぶ&学習用には今なお優れた環境だと思う IronPython出たとき対話的・動的にGUIを作成していくデモが話題になってたけど あれぐらいはTkなら昔から出来たことだ
608 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:51:25 ] Pythonは包容力があるんだよな。 会社でPython使い(私事だけ)が増えているんだよな。 言語コミュニティも穏やかでそれがいいんだろうけど。
609 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 01:17:26 ] 対話環境で関数書いてると、途中でタイプミスして怒られたり、 関数作った後、関数内に文を付け足したり編集したくなったときに、 また初めから関数を定義しなくちゃいけないから面倒なんだけど、 それに対する上手い方法ってある?
610 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 01:38:04 ] >>609 ipython の ed コマンド
611 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 01:43:40 ] Python使ってる奴ってキモメンが多いな。 今日の忘年会に出て切実に感じた。
612 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 01:49:05 ] 知らんがな
613 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 01:52:17 ] >>609 俺はEmacs使いだから、 Common Lisp用のSLIMEみたいなマイナーモードが欲しいなあ。 common-lisp.net/project/slime/
614 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 02:39:38 ] ぼくは初心者ですが「こんな感じ」と書く人のコードは信用しません
615 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 03:31:06 ] >Python使ってる奴ってキモメンが多いな。 今日の忘年会に出た面子だけだろ
616 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 03:43:19 ] Python使ってる奴ってイケメンが多いな。 今日の忘年会に出て切実に感じた。
617 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 03:51:06 ] Python使っている人のスレって大体こんな感じ。
618 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 09:52:45 ] >>611 一人忘年会を開いたんですね
619 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 10:19:58 ] Python使っている人のスレって大体>>618 こんな感じ。
620 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 10:21:17 ] 618はキモ面
621 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 10:40:50 ] 他人の顔なんか、どうでもよくない?
622 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 10:50:22 ] 顔なんかどうでもいい くぎゅが好きなんだ!!!
623 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 10:56:25 ] 622 :デフォルトの名無しさん [↓] :2008/12/19(金) 10:50:22 顔なんかどうでもいい くぎゅが好きなんだ!!!
624 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 11:55:30 ] ブサでオタの集会だったのか。
625 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 13:06:09 ] しね
626 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 13:52:47 ] 釘宮理恵だっけ? なんか顔を想像すると必ず柴田理恵が出てくるわ
627 名前:デフォルトの名無しさん [2008/12/19(金) 14:22:45 ] twitterから 顔かよ。くだらん。
628 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 15:38:18 ] またruby厨が荒らし始めたか
629 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 16:27:46 ] ja.uncyclopedia.info/wiki/%E9%87%98%E5%AE%AE%E7%90%86%E6%81%B5 釘宮 理恵(くぎのみや りえ、1979年5月30日 - )は日本を代表するツンデレ声優。また、声優界で唯一の皇族でもある。
630 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 19:53:39 ] アンサイを張られても
631 名前:デフォルトの名無しさん [2008/12/19(金) 20:08:26 ] ユークリッドの互除法のコードを書いたのですが、大きい (約500桁) 整数を入力すると ものすごく長いエラーメッセージの末尾に maximum recursion depth exceeded in cmp と出ました。 これはおそらくスタックオーバーフローのようなものだと思うのですが、python の設定か何かでもっと深い階層まで使えるようにすることはできますか? できなければプログラムの方を変更して再帰しないようにしますが。
632 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 20:12:25 ] プログラムを何とかしようぜ。 再帰は、プログラム練習には使えても実用コードにはならないから。 再帰を展開する技術は身につけておいて損はない。
633 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 20:14:36 ] >>631 Pythonの関数呼び出し階層の深さ上限はデフォで1000となっている その値は変更できるが、あまり薦められんな それと、Pythonは末尾再帰を最適化しない
634 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 20:20:55 ] まぁ念のため、変更方法はこれだ。 docs.python.org/library/sys.html?highlight=setrecursionlimit#sys.setrecursionlimit
635 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 21:11:16 ] 末尾再帰くらいは自動で除去して欲しいよな。
636 名前:631 [2008/12/19(金) 21:28:37 ] >>632-634 12分で3レスもつくなんて感激です。ありがとうございます! 互助法は再帰じゃない方も書いたことがあるので (VBでですが)、大丈夫だと思います。それでは。
637 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 22:21:03 ] まあレスつけてるの全部キモメンだけどな。
638 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 22:31:22 ] あほいえめんずのんののもでるやってるわ
639 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 00:08:15 ] >>635 Schmeみたいにすっきりしゃっきりしたセマンティクスがある言語でないと無理。 Common Lispですら仕様では要求してないし。
640 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 02:33:46 ] yieldでいけるような
641 名前:デフォルトの名無しさん [2008/12/20(土) 04:04:51 ] cook bookに末尾再帰にするデコレーターがある。 psycoを使っても末尾再帰になる。
642 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 04:15:39 ] 再帰は使っても末尾再帰はあんまり使わない。 再帰を無理に末尾再帰にしても読みづらいことも多い。 >>639 むしろCommon Lispはループで回すのがデフォだよね。
643 名前:デフォルトの名無しさん [2008/12/20(土) 11:38:12 ] 画面設計面倒だから、もうローカルのアプリケーションも インターフェイスはブラウザでいいかなとか思って import web してみた。 ・・・なんて簡単にウェブアプリが書けちゃうんだ。
644 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 14:15:15 ] ポストンポストン!
645 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 15:29:02 ] みんなごめん。 来年の給料払えないや。
646 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 15:37:23 ] スタックに相当するものを自前で用意すれば とりあえず再帰をループに展開できるね。
647 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 16:09:12 ] 急激に社員を増やしすぎたみたいだ。 人件費がこんなに重たいものだなんて。 勉強会が突然中止になったりしたら、そういうことだからね>みなさん
648 名前:デフォルトの名無しさん [2008/12/20(土) 16:14:57 ] Python から Windows の ADO 経由で各種データベースを アクセスしたいんですが、どのパッケージが定番なんでしょうか? adodbapi というものと adodb というものがあるみたい。 adodbapi.sourceforge.net/ 最新版は 2.2.4 December 17, 2008 adodb.sourceforge.net/ 最新盤は adodb-py-210 July 30, 2008
649 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 17:41:06 ] win32comだけで充分です 本当にありがとうございました
650 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 19:19:49 ] 流れぶった切ってcomtypes最強説を提唱
651 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 20:33:59 ] >>648 あまり詳しくないのですが comtypesはディスパッチインタフェース、カスタムインタフェースの両方に アクセスできて、ディスパッチイベントも捕まえられるので十分かと思います カスタムインタフェースにアクセスできると、dir()でCOMのインタフェースを 閲覧できるので便利です
652 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 10:02:01 ] groups.google.co.jp/group/comp.lang.python.announce/browse_thread/thread/6739a9467328eb8d
653 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 10:38:55 ] vensterて使ってる人いる? ATL/WTLを知っているWindowsプログラマにとっては、Win32限定なら 理想的なGUI環境に見える。 ATL/WTLがWindows APIの軽量ラッパーであるのと全く同じで vensterはctypesを使ったWindows APIの軽量ラッパーだ。 非常に軽くて小さい上に、ATL/WTLのプログラミングモデルそっくりなんだが、 ここ数年メンテされてなくて、comtypesではなく古いctypes.comを使ってるんで そのままでは今のPythonでは使えねえ。 今日落してきて、簡単なサンプルなら動くように手を入れたが、 COMのコネクションポイント/ディスパッチインタフェース周りで嫌になって投げた。 誰かこれ引き継いでくれねえかなあ。 >今日落してきて、簡単なサンプルなら動くように手を入れたが、 >COMのコネクションポイント/ディスパッチインタフェース周りで嫌になって投げた。 >誰かこれ引き継いでくれねえかなあ。 うp器盆 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7446.zip venster 0.72へのパッチ vensterのサイトからソースとってきてpatch -p0で当ててくれ つうかcomtypesドキュメント少なすぎだろ常考 testの中のスクリプトのなかには、そっちも直さんと動かんのもあるが、さすがに 放置
654 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 10:39:22 ] パッチの状態について補足。 vensterのモジュール自体は大体直したつもり。 test用スクリプトのtest_browser.pyって奴は直さないと動かないし、直していない。 IEエンジンを使ったカスタムブラウザのサンプルだが、 Python側でIOleClientSiteやらIDocHostUIHandlerやらをオンザフライで 実装していて、そこをどうにかせんと動かない。 そこまでやってないIEエンジン埋め込みスクリプトがほかにもあるが、それらは 動くようにはなった。ディスパッチイベントも捕捉できてる。
655 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 10:42:26 ] WindowsのPythonから透過的にCOMを呼び出す方法はいくつかあります。 IronPythonを使えば何の苦労もなく呼び出すことができますし、 Classic PythonからはPythonwinを使えば良いという事実はあまりにも有名です。 でも、以前紹介したように、Python 2.5にはctypesモジュールが最初から 用意されています。せっかく2.5使うんだから、ctypesでCOMを呼べないかと 思ってしまいますよね。残念ながら、ctypesは最近になって、COMを呼び出す機能を comtypesに譲ったようで、追加でこれをインストールする必要があるようですが。 モノは試しなのでやってみます。やりたいことはこんな感じです。 var ssfNETHOOD = 19 var wshell = new ActiveXObject('WScript.Shell') var shell = new ActiveXObject('Shell.Application') var nethood = shell.nameSpace(ssfNETHOOD).self.path //var nethood = wshell.specialFolders('NetHood') var link = wshell.createShortcut(nethood + '\\TEST.lnk') link.targetPath = 'ftp://localhost/' link.save() このJScriptは、ネットワークコンピュータの下に「TEST」という名前で、 「ftp://localhost/」を追加します。 comtypesでも同様にできるかと思ったら以外に落とし穴がありました。
656 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 10:42:57 ] comtypesをインストールして、以下のようにコードを書きました。 from ctypes import cast, POINTER from comtypes.client import CreateObject import os wshell = CreateObject('WScript.Shell') shell = CreateObject('Shell.Application') from comtypes.gen.Shell32 import Folder2, ssfNETHOOD from comtypes.gen.IWshRuntimeLibrary import IWshShortcut nethood = cast(shell.NameSpace(ssfNETHOOD), POINTER(Folder2)).Self.Path #nethood = wshell.SpecialFolders('NetHood') link = cast(wshell.CreateShortcut('%s.lnk' % os.path.join(nethood, 'TEST')), POINTER(IWshShortcut)) link.TargetPath = 'ftp://localhost/' link.Save() 5, 6行目でCOMオブジェクトを作るとcomtypes.genパッケージの下にそれらしい名前で .pyと.pycが作られるので、これらを8, 9行目でインポートしています。 注意しないといけないのは、11, 13行目でやっているように、オブジェクトを 適宜明示的にダウンキャストしてやる必要があるということです。 このあたりの詳しい説明は、ここにありました。 aspn.activestate.com/ASPN/Mail/Message/ctypes-users/3174466 Pythonwinではこのようなキャストは必要ないので少々面倒な気がしますが、 選択肢が多くあるのは良いことです。
657 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 12:04:17 ] >>643 そのモジュールって標準?
658 名前:161 mailto:sage [2008/12/21(日) 12:13:01 ] お久しぶりです。 年末の直前あたりに、僕が作成した フレームワークの完成形を披露したいと思います。 よろしくお願いします。
659 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 12:14:00 ] >>657 web.py だろう
660 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 12:26:41 ] webpy.org/tutorial2.ja
661 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 12:31:31 ] d.hatena.ne.jp/gamella/20080331/1206971633 d.hatena.ne.jp/tokuhirom/20060225/1140867631
662 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 12:34:33 ] mdp.cti.depaul.edu/
663 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 12:48:24 ] Pythonistaも質が下がったな
664 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 12:59:42 ] pc11.2ch.net/test/read.cgi/tech/1226830195/161
665 名前:デフォルトの名無しさん [2008/12/21(日) 17:03:55 ] ネットにあるようなフリーソフトはCなどで書かれてると思いますが、pythonでもできますか? pythonで自分の設計したプログラムを作成することは可能でしょうか? (設計する技術があるかは・・・ですが)学習すれば、プログラムを作ったり できるといいのですが。。。
666 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 17:26:32 ] 出来るっちゃ出来るけど サンプル少ないからな 初心者のうちはC/C++, .NETのほうが苦労は少ないと思うよ
667 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 17:30:52 ] >>665 はっ? .exe作るってこと? できるよ。 >>666 はっ? 初心者?
668 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 17:32:09 ] >>665 できる。 ゆくゆくは配布したいと考えるなら、Cで作ったプログラムみたいにはいかないかもしれないけど、 そういうのは実際にプログラムを組んでから考慮すればよろし。
669 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 17:32:59 ] >>665 出来る でも生産的ではないし、動作も遅い
670 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 17:39:14 ] むしろ生産的だと思うが Cはバイナリ配布ならともかくソース晒すこと考えるとライブラリやらコンパイラやらプラットフォームやら依存性の解決がめんどくさすぎる 実行環境がそのままデバッグ環境になるのはかなり大きいと思うし
671 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 17:47:18 ] Cはバイナリにしてしまえばランタイムも必要とせず動くのが良いな(例外あり)。 Pythonは第三者の作ったライブラリを用いたアプリを配布する場合、 一緒くたにするならライセンスに気を配らなくちゃいけないし、 「別途ライブラリをインスコしてくれ」と、自分の書いたプログラムだけを配布する形だと、 導入する敷居が高くなって万人に使ってもらえなくなる。
672 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 17:51:26 ] >>670 質問から言って、念頭においてるのはLinux系のオープンソースではなくて Windowsの「フリーソフト」なんだろうから 別にM4マクロを駆使してautoconfだのautomakeだのを記述したり 山ほど#ifdefを記述したりといったことを考えなくてもいいんじゃないの WindowsのGUIアプリを簡単にデッチ上げられるかどうかのほうが重要
673 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 17:55:24 ] 全部まとめて exe にパックすればいいやん
674 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 17:59:47 ] 可能不可能からいったら出来る 楽かどうかの話だろ WindowsのAPIはC/C++の形で提供されているので、Windowsの機能にアクセスするには 出来合いのラッパーライブラリ(巨大か、一部分しかサポートしていない)を 使うか、ctypesを使うか(C/C++のようにヘッダの#includeはできないので、 自分でシステムの型や定数を定義する必要がある)か、 自分でC/C++拡張を書くかという話になる
675 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 18:26:52 ] Pythonistaも質が下がったな
676 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 18:36:48 ] ActivePythonの3.0版来てるじゃん
677 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 19:16:37 ] Active*って何なのか良くわからんので説明plz
678 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 19:24:47 ] ActivePython → 抱き合わせ商法
679 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 19:41:43 ] PyWin32が付いてくるのでWin32APIをラクに呼べたりCOMサーバをいじくったりできる。 昔はHTMLからPythonを呼べたけど、今はどうか知らない。
680 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 20:53:48 ] I love Python.
681 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 20:59:08 ] So do I.
682 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 21:40:51 ] >>665 > ネットにあるようなフリーソフトはCなどで書かれてると思いますが 思うな。 そこから始めろ。
683 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 22:52:46 ] ここまで続いてやり方言うヤシは誰もおらんのか exe化はPy2Exeが有名 Python製作って内骨格とか普通にあるじゃん
684 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 22:56:35 ] www.python.jp/doc/release/lib/module-urllib.html を見て書いた import urllib f = urllib.urlopen("www.google.co.jp/ ") print(f.read()) これだけのコードが動きません AttributeError: 'module' object has no attribute 'urlopen' import の時点で失敗しているようです。なぜでしょうか? どのようにすれば解決できるでしょうか?
685 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 23:07:43 ] >>684 urllib.pyってファイル名にしているから、 あるいはそういうファイルが他にあるから。
686 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 23:09:48 ] まずは、 import urllib print urllib.__file__
687 名前:687 mailto:sage [2008/12/21(日) 23:22:20 ] >>685 心当たりはないです >>686 以下のエラーになります: File "test.py", line 2 print urllib.__file__ SyntaxError: invalid syntax
688 名前:687 (=684) mailto:sage [2008/12/21(日) 23:23:58 ] >>686 print(urllib.__file__) としたら C:\python30\lib\urllib\__init__.py が出力されました
689 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 23:30:32 ] >>688 # Python 3.0 import urllib.request f = urllib.request.urlopen("www.google.co.jp/ ") print(f.read())
690 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 00:34:09 ] >>684 のドキュメントは2.5用
691 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 01:48:50 ] Are you happy?
692 名前:687 (=684) mailto:sage [2008/12/22(月) 08:11:05 ] なるほど、バージョンによってライブラリの構造が変わっていたのですね。 >>689 で成功しました。ありがとうございます。
693 名前:687 (=684) mailto:sage [2008/12/22(月) 17:29:02 ] レンタルサーバのPythonがVer2.5.1でした>< 複数のVerのPythonを共存させることはできますか? (普通にインストールすればおk?
694 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 17:44:49 ] >>693 自分のPCに入れたいという話か? 俺は複数のバージョンを入れているよ ただし、ActivePythonをインスコするとレジストリエントリが作られ、 サードのライブラリをインストーラパッケージで入れたりするときに それが参照される つまり、レジストリに設定されているPythonが正と見なされることになる 全部自分でsetup.pyでビルド&インストールでするんなら何も問題ないけどな
695 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 18:19:07 ] レンタルサーバのPythonがVer2.5.1でした>< レンタルサーバのPythonがVer2.5.1でした>< レンタルサーバのPythonがVer2.5.1でした><
696 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 18:20:19 ] 犬臭い
697 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 18:43:13 ] 俺も複数のバージョンを入れているよ 全部自分でsetup.pyでビルド&インストールでするんなら 何も問題ないとまでは言えないけど比較的安全 yumが動かなくなったのでアカウント事にpath変えてる
698 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 19:33:27 ] この際だから聞くけど、ビルドって拡張モジュールのコンパイルのことを指すの?
699 名前:665 [2008/12/22(月) 21:58:05 ] 自分の質問にたくさん返答いただきましてありがとうございます。 色々と考え方はあると思いますが、exeが作成可能ということですね。 勉強してみます。本当にありがとうございました。
700 名前:687 (=684) mailto:sage [2008/12/22(月) 22:06:19 ] setup.py が何を指すのかすらわからない駆け出しだったりしますが、とりあえずインストールしてみました。 何か問題が起きそうになったらまた質問させていただきますね。
701 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 01:15:24 ] >>693 悪いことは言わないから、 2.y 系を使いな。 まだ 3.y 系は一般人向けじゃない。
702 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 02:25:23 ] 2.6.xを使いたいということかもしれん
703 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 02:51:51 ] globalsってなに? global"s"って何よ typoってこいつのせいで2日潰した
704 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 03:30:22 ] grobalと被っちゃまずいだろ
705 名前:デフォルトの名無しさん [2008/12/23(火) 12:37:57 ] Python 2.5.3 and 2.4.6 released
706 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 15:56:12 ] Python3系の本が何冊か準備中みたいですね。
707 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 17:13:57 ] 和書は糞だから放置。
708 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 18:07:54 ] pythonでコードを書きたいがために余計な仕事を増やしている人はいますか? もしいれば、具体的なモデルを教えてください
709 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 19:22:06 ] >>707 洋書ですよ
710 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 19:25:57 ] >>707 普段から洋書読んでれば洋書の話だってわかるだろうに。
711 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 19:58:03 ] 707は和書の著者
712 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 21:01:57 ] 和っ書ぃ
713 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 21:06:20 ] 洋ぃ書っと
714 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 22:37:07 ] Pythonってずっと ピジョンって読むのかと思ってたけど パイソンだったのね
715 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 22:44:55 ] 707は売れない和書の著者。
716 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 22:46:30 ] レッテル貼つまらんぞ偏屈者共
717 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 22:52:35 ] 別にこの太陽系第三惑星のお前以外のホモ・サピエンスは お前を楽しませる為に生命活動を行ってるわけじゃないし。
718 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:02:45 ] rubyやれよ糞ども
719 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:04:17 ] またruby厨の荒らしですか?
720 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:10:34 ] python 3000 の本というからには 3000円ポッキリで出そうぜ
721 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:15:14 ] python始めてみようかと思う どのバージョンがお勧めなんだい? 2.6.x?
722 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:25:26 ] 716は売れないクソ和書の著者。
723 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:32:48 ] >>721 2.6.xやって、3.xを予習くらいでいいんじゃない
724 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:36:19 ] 2.6に対応しているフレームワークって多いの?
725 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:40:47 ] とりあえず色々試したいってのなら2.5の方がいい気がする 新し物好きなら迷わず3選べ!(ネットやら本のコードが2系統だからちょっと手間だが)
726 名前:161 mailto:sage [2008/12/23(火) 23:41:10 ] 呼びました?
727 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:41:27 ] >>723 ありがとん あと、オススメの本てあるだろうか? 和書はあんまいいのないのかな? 洋書でもいいんだけど、和書の方がぱっと見でキーワードとか目に止まるからさ 翻訳本は嫌だけど。
728 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:43:16 ] 2.6.xを進める723はHello Python止まりの引きこもり。
729 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 00:23:40 ] >>727 python.orgの翻訳ドキュメントがお勧め。python.jpにある。 ただのドキュメントがいいから、普及している割に本が少ない。
730 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 00:36:34 ] >>729 そうなのか。公式のドキュメントがいいってのはいいね バージョンは結局自分で触ってみないと善し悪しがわかりそうにないな てきとーにいじってみてから考えるとしますわ
731 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:10:48 ] >>730 jp独自ドキュメントじゃなくて、本家ドキュメント読んでねw 2.5は翻訳完了してるから。
732 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:11:52 ] いま>>731 がしれっとひどいこと言った
733 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:12:12 ] URL挙げとくか。PDFもあります。 www.python.jp/Zope/links/python_documents/
734 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:12:27 ] 胸が小さい
735 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:14:01 ] Pythonでローパケットいじりたい場合 Twistedしかない?
736 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:21:54 ] >>735 raw socketをそのまんま使う
737 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:29:14 ] >>736 そこらへんのことを学ぶたべの書籍ってないでしょうか?
738 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:42:44 ] UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI www.amazon.co.jp/dp/4894712059/ WinSock2プログラミング−Windows Sockets APIによるネットワークプログラミングのすべて www.amazon.co.jp/dp/4797330449/ C言語だけど、この辺知らないでプログラム書くのは無謀。 詳解TCP/IP〈Vol.1〉プロトコル www.amazon.co.jp/dp/4894713209/
739 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 02:41:25 ] Python 2.5.4 released. 2.5.3 短命杉w
740 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 03:07:03 ] 739 :デフォルトの名無しさん [↓] :2008/12/24(水) 02:41:25 Python 2.5.4 released. 2.5.3 短命杉w
741 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 03:59:11 ] 740 名前:デフォルトの名無しさん[sage] 投稿日:2008/12/24(水) 03:07:03 739 :デフォルトの名無しさん [↓] :2008/12/24(水) 02:41:25 Python 2.5.4 released. 2.5.3 短命杉w
742 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 04:42:19 ] クラスへのメンバの追加を制御するために__slots__を使っているんですが、 class foo(object): __slots__ = ['hoge', 'fuga'] def __init__(self): self.hoge = 1 self.fuga = 2 ここに新たに'piyo'というメンバを追加したくなったときに、__slots__と__init__の2箇所を書き直さなければならないのは少し面倒な気もします。 もっと簡単に書けませんかね? そもそもこういうことをpythonに求めてはいけないとか?
743 名前:デフォルトの名無しさん [2008/12/24(水) 06:23:03 ] しかしpythonもデカい言語になったもんだなー。 Library reference読んで再認識したよ。
744 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 10:07:22 ] >>742 >そもそもこういうことをpythonに求めてはいけないとか? メタクラスでも使って自己解決しろ。
745 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 11:04:00 ] この記事、ひどくね? gihyo.jp/dev/clip/01/orangenews/vol48/0001 >一般的に,並行処理を行うにはスレッドを用いますが,Pythonは >GIL(Global Interpreter Lock)という1プロセスごとにロックを持 >つ機構を採用しているため同時に1つしかスレッドを実行できません。
746 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 11:17:14 ] Ruby厨のデマだよ。 よい子は惑わされちゃダメだよ。
747 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 11:19:33 ] 論理的にマルチスレッドで書くという話と SMP で並列処理してパフォーマンスを書くという話の マルチスレッドとを用語上きちんと分けろってこと? 一般用語はどうなってるの?
748 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 11:29:21 ] 何をひどいと言ってるのかは分からんな PythonにはGILがあるからマルチスレッドでは並列計算が出来なかった (I/Oとかは外出し出来たけど) →multiprocessingならそんな問題が無くてウマー という提灯記事じゃないのか?
749 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 11:32:51 ] I/Oに限らず、時間のかかる拡張モジュールは全部GIL外で動かすことで Pythonと並列に実行できるけどな。
750 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 11:34:23 ] まあCのコードを書いて、かつPythonインタプリタやPythonのオブジェクトに 触らないんなら そら何でもありだわな
751 名前:デフォルトの名無しさん [2008/12/24(水) 11:44:51 ] 何でもありが一番だよ。
752 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 15:05:56 ] Alex MartelliのPythonクィックリファレンスってもうそろそろ出るのかな? クックブックは、今から買ってこようと思うんだけど 初めてのPythonとクックブックがあれば、 本家サイトの英語版でお茶を濁せるもんですか? 正規表現関連とメール関連がやりたいです
753 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 16:06:43 ] Dやろうっと。
754 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 16:23:31 ] Cook Bookも原書で読んだ方がいいよ。 翻訳本はどれもクソだよ。
755 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 16:35:10 ] 買ってきたお 3月前に出版されたbashのクックブックも買ってきてしまった Pythonクィックリファレンスもチェックしてきたけど プリントアウトを代行しましたみたいな本だね もっと詳しいことが載っているのかと思っていた くわしく使い方を知りたかったら、ソースを読めって話なのか >>754 英語を楽しんでいる時間は、ないんよ 3.xに完全移行したら、そのときは原書を読もうかな
756 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 16:55:31 ] クイックリファレンスの次がソースw
757 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 17:01:20 ] >>755 >プリントアウトを代行しましたみたいな本 おまえそれは翻訳者に失礼だわ。 離婚書けてまで翻訳したらしいぞ(ww
758 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 17:40:18 ] pythonで計算時間の計測ってどうするの?
759 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 17:45:17 ] ttp://www.python.jp/doc/2.5/lib/profile.html
760 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 23:52:33 ] >>738 そこら辺は知ってるけど Pythonで簡単にやる方法を探してる
761 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:03:28 ] raw socketで簡単じゃんw
762 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:06:28 ] >そこら辺は知ってるけど 知ってるのなら>>759 より簡単な計測方法って 具体的にどんなものをイメージしているのか教えてくれ。 timeとか?w
763 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:07:28 ] >>761 Cでならできるけど Pythonでのサンプルを見たい
764 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:08:17 ] Cでできるなら Pythonでのサンプルなんていらないだろ
765 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:08:53 ] >>762 多分勘違い 計測方法を聞いてるのは俺じゃない 俺は生パケットのPythonでの扱いを聞いた方
766 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:09:36 ] >>764 スクリプト言語でやることが必須
767 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:09:55 ] >>765 正直心の底からすまんかった
768 名前:デフォルトの名無しさん [2008/12/25(木) 00:13:33 ] python 2.5.4は2.5.2に比べてかなり速くなってる。 BeutifulSoupにxmlをパースさせる処理が約11秒から約9.5秒になった。
769 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:17:41 ] 2.5.3寿命短すぎだろw 落とすだけ落としたけどインスコしないで正解だったわ
770 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:18:14 ] >>765 まずこれ。www.python.jp/doc/nightly/lib/socket-example.html あとは httplib.py とか SocketServer.py とかそのあたりの標準ライブラリの コードを読むのがオヌヌメ。
771 名前:デフォルトの名無しさん [2008/12/25(木) 00:22:45 ] >>758 チュートリアルぐらい読め
772 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:23:50 ] んなTCPとかいう高級なレイヤーの上の話じゃなくて、 raw socketの話をしてんじゃないのか? なんか全然勘違いしてると思うぞ質問者の意図を
773 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:30:04 ] >>772 TCPより下の部分はOSの領分だから、普通は raw socket といえばTCP/UDB/Unix Domain なんだよ。 ていうか、IP層には socket の概念ないし。 raw packet なら IP Packet か Ether Packet かも しんないけどさ。
774 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:37:27 ] >>773 いやフツーraw socketつったらSOCK_RAWのことだと俺は思っていたが…… まあraw socketって言葉遣いが悪かったんならそれは謝る、質問者は >>735 でraw packetと言っていたからね
775 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 00:53:45 ] >>770 ありがとう ただ、そこのサイトの例はちょっと上位レベルな感じだな TCPヘッダのSEQナンバー、ACKナンバーとか制御フラグとか いじるのが一番の目的なので SocketServer.pyとかはそんな感じなのかな?
776 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 01:08:10 ] >>775 > SocketServer.pyとかはそんな感じなのかな? いや全然そんなことは無いので安心汁
777 名前:773 mailto:sage [2008/12/25(木) 01:24:36 ] >>774 いや、生パケットとか生ソケットって言葉から、 SOCK_RAW 連想できんかった。すまん。 一般用語としては、「生」っていう用語はあるレイヤに着目したひとつ下のレイヤの事で、 IPの下にはEther当のネットワーク層があるから、生パケットって言われても TCP Packet, UDP Packet, IP Packet, Ether Packet のどれか判らんかった。
778 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 01:28:34 ] >>777 いや、TCPの上に乗っかるアプリケーションにはTCPを流れるデータは バイトストリームにみえるわけで、 「パケット」は意識しないし、できないでしょ 「パケット」と言われて>>770 の例を出すのは発想として明らかにおかしいと思うよ まあ結論はもう出てるからどうでもいいけどね
779 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 08:45:14 ] ARPは扱えますか?
780 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 09:19:03 ] 何をしたいの? サーバはカーネル組み込みのOSが多いから置き換え不能だけど。
781 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 10:06:12 ] は?
782 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 18:19:11 ] python で ARP のパケットを送受信できますか 何か OS 依存のライブラリとか使わないとできませんか?
783 名前:デフォルトの名無しさん [2008/12/25(木) 18:40:58 ] >>782 できる。 ttp://mail.python.org/pipermail/python-list/2002-November/172963.html ttp://sourceforge.net/projects/pylibnet
784 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 19:45:38 ] >>783 ありがとうございます!!
785 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 03:45:54 ] pythonが関数型言語というわりに あんまり関数ぽくない感じするのは気のせいなのか 副作用つかいまくってる
786 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 03:54:29 ] だれが関数型だなんていったんだ
787 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 04:02:16 ] >>785 > pythonが関数型言語というわりに そんなこと誰が言ってるんだw 関数型言語から色々便利な道具は拝借してるが、単にそれだけだ。 式と文を区別してるし、参照透明性なんぞ最初から眼中にないし、 lambdaは中途半端な糞だし、関数型的なリストは持たないし、 カリー化もパターンマッチも代数データ型もないし、 末尾再帰は最適化しないし、畳み込みは3.0からは格下げだ。 ある意味Guidoの好みは時代に逆行してるな。関数型を嫌ってるんだから。
788 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 06:12:36 ] でも Python は使いやすい
789 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 06:54:27 ] 関数型はネストが深くなりやすいとかメリットを享受するためには無名関数を使わざるを得ないとかの印象がある Guidoの考えとは相性良くないんだろう 書きにくくはないけど読みやすくはない
790 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 14:27:48 ] ctypes で WindowsAPI EnumWindows を呼びたいのですが EnumWindows は引数に callback 関数を指定しないといけないので python 側の関数を callback してもらいたいと思います 具体的な書き方が分からないのでどなたか教えてください
791 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 15:09:33 ] ttp://www.python.jp/doc/release/lib/ctypes-callback-functions.html from ctypes import * from ctypes.wintypes import * EnumWindows = windll.user32.EnumWindows EnumWindows.argtypes = [c_void_p, c_int] EnumWindows.restypes = c_int EnumWindowsCallback = CFUNCTYPE(c_int, c_int, c_int) GetWindowText = windll.user32.GetWindowTextA GetWindowText.argtypes = [c_int, c_char_p, c_int] GetWindowText.restypes = c_int def pyEnumWindowsCallback(hwnd, lp): buf = create_string_buffer('\000' * 1024) GetWindowText(hwnd, buf, 1024) if len(buf) > 0: if buf.value != '': print buf.value return True EnumWindows(EnumWindowsCallback(pyEnumWindowsCallback), 0)
792 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 15:16:26 ] py2exeでdllは作れないの?
793 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 15:18:51 ] >>787 まー関数型が好きな人は「パターンマッチとカリー化使ってプログラムできる俺かっけえw」 とかニヤニヤしてればいいんじゃね。 高度に関数型の言語は、手続き型と比べてアルゴリズムの記述とかパフォーマンスチューニ ングのノウハウの蓄積と普及がまだまだという印象を受ける。みんながもっと関数型を使う ようになればそういう動きが活発になるんだろうけど。 それと、SmallTalkとかHaskellみたいに一つのプログラミングパラダイムのみをサポートす る言語は、特定の用途にはとても強いが、逆に苦手なプログラミングのタイプにはさっぱり、 ってのが多い気がしないか。 その点、いろんなとこから良いとこ取りしてるPythonは柔軟な対応ができて良いと思うのだけれど。
794 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 15:19:05 ] >>790 先を越されてしまったようだが…… コールバックとしては、↓のようにクラスのメソッドも普通に使えるよ。 import ctypes BOOL = ctypes.c_int HWND = ctypes.c_ulong LPARAM = ctypes.c_ulong EnumWindowsProc = ctypes.WINFUNCTYPE(BOOL, HWND, LPARAM) user32 = ctypes.windll.user32 class Foo(object): def __init__(self): self.windows = [] def MyEnumWindowsProc(self, hwnd, lparam): self.windows.append(hwnd) return 1 def __call__(self): user32.EnumWindows(EnumWindowsProc(self.MyEnumWindowsProc), 0) return self.windows for hwnd in Foo()(): print "%08X" % hwnd
795 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 15:33:10 ] >>793 Pythonは関数型言語じゃありませんよということを説明しただけだよ Pythonに関数型言語になって欲しいとは一言も言ってない マルチパラダイム言語の中で考えれば、Scalaあたりに比べれば 言語の記述力自体は別に平凡な部類でしょ、Pythonは
796 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 15:45:25 ] On Python www.shido.info/py/ ython と Ruby は実はほとんど同じで、むきになるほどの差はないと思います。 (ただ、Python は Haskell などの最近の関数型言語の影響が強く見られ、 一方、Ruby は Smalltalk や Eiffel などのオブジェクト指向言語と Lisp の影響が見られます。)
797 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 15:49:34 ] >>796 ttp://d.hatena.ne.jp/odz/20061119/1163971267 で叩かれてたサイトだな
798 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 15:54:24 ] >>797 せっかく有用な比較してるのに妙な叩きするなよ zopeとダンジョの比較情報探すのもかなり苦労したんだから
799 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 15:59:59 ] 有用な比較って…… Pythonでシークエンス型は参照渡しで他は値渡しって記述は俺も ひどいと思ったけど 大嘘じゃん
800 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 16:05:05 ] そもそもPythonレベルで参照渡しなんて概念を持ち出す必要があるのか疑問
801 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 17:18:57 ] >>800 お前相当アホだろ?
802 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 17:22:40 ] すみませんが、質問です。 ジェネレータを通常のリストに変換する簡潔な方法は無いでしょうか? ジェネレータが逐次返してくる値を全部まとめたリストを得たいのです。
803 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 17:40:37 ] >>802 [ e for e in G ]
804 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 17:40:42 ] list
805 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 17:54:45 ] >>804 おお、こんなクラスが。ありがとうございました。 > Help on class list in module __builtin__: > > class list(object) > | list() -> new list > | list(sequence) -> new list initialized from sequence's items >>803 リスト内包表記もかなり簡潔ですね。
806 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 17:56:49 ] >>791 早速ありがとうございます!! でも実行すると最後にエラー出てました EnumWindowsCallback = CFUNCTYPE(c_int, c_int, c_int) ↓ EnumWindowsCallback = WINFUNCTYPE(c_int, c_int, c_int) でエラー出なくなりました >>794 きれいなコードですね ありがとうございました!!
807 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 18:21:56 ] >>796 駄本の著者だな
808 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 18:54:21 ] 景品表示法的にグレーな本書いた人ね
809 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 19:05:47 ] ttp://www.amazon.co.jp/dp/4777513688 続編は内容的にガッカリらしい
810 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 21:15:32 ] 恥ぱい
811 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 21:27:53 ] 中身がハッカーズ大辞典やアンサイクロペディアみたいなノリだったら あのタイトルでも許せたんだけどな。
812 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 05:52:00 ] イテレータから、n 個ずつとってまとめたタプルを 次々返すようなジェネレータって標準モジュール内にないですかね? itertools 内を見回しても見当たらないんですけど・・・ 結構使う機能なので、使うたびにジェネレータ定義するの面倒だし、 この機能だけのためにモジュール定義するのとかも面倒だし、 標準モジュール内であると楽なんですが・・・
813 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 06:03:34 ] あの、回答まだでしょうか?
814 名前:デフォルトの名無しさん [2008/12/27(土) 08:06:33 ] 正月休みです
815 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 10:03:05 ] from 俺のitertools import pair def pair(iterable, count): """ >>> list(pair(range(10), 3)) [(0, 1, 2), (3, 4, 5), (6, 7, 8), (9,)] """ iterable = iter(iterable) stop = False while not stop: y = () try: for i in range(count): y += (iterable.next(), ) except StopIteration: stop = True if y: yield y
816 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 10:46:00 ] >>812 > この機能だけのためにモジュール定義するのとかも面倒だし、 Pythonのモジュール作るのは別に面倒じゃないと思うんだが…… つーかPythonのスクリプトって特別な呪文を唱えずとも全部モジュールとして 使えるわけだし、せいぜい既存のモジュールとファイル名がかぶらないようにだけ 注意しとけばいい PYTHONPATH, PYTHONSTARTUP, sitecustomize.pyなどの手段で sys.pathに自分用スクリプトディレクトリを加えておくといいぞ Pythonみたいにモジュールが使いやすい言語でコードの再利用を考えないのは損だ
817 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 11:47:56 ] >>815 >>816 分かりました。 myitertools.py みたいなのを作ってやってみようと思います。
818 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 11:57:00 ] ちょっと違うけど短くかけるな def pair(iterable, n): return izip(*[iter(iterable)]*n)
819 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 11:58:45 ] うへ,tuple って immutable っていうから += みたいなのはなしかと思い込んでた…
820 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 12:25:32 ] a += b って a = a + b として処理されるんでないの
821 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 12:26:35 ] もちろんそうだよ。
822 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 12:27:53 ] >>820 __iadd__()がある場合は__iadd__()で処理される 無い場合は、__add()__を用いて処理される immutableの場合は当然__iadd__()なんてものはないから 普通に__add()__を用いて新しいオブジェクトが作られる
823 名前:822 mailto:sage [2008/12/27(土) 12:28:50 ] なんだ__add()__ってw まあ意味分かるよね、ごめん
824 名前:デフォルトの名無しさん [2008/12/27(土) 21:48:30 ] >>> zip(*[iter(range(10))]*3) [(0, 1, 2), (3, 4, 5), (6, 7, 8)] >>> zip(*[iter(range(10))]*4) [(0, 1, 2, 3), (4, 5, 6, 7)]
825 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 22:14:25 ] >>815 >>818 >>824 この場合は末尾の扱いってどうすべきなのかな
826 名前:デフォルトの名無しさん [2008/12/28(日) 00:07:52 ] 用途によって末尾が必要な場合・不要な場合があるけど、 tupleで返す場合の戻り値は >>824 のように固定長にすべきじゃないかな。 また、>>815 は、while ループ一巡辺り最大で tuple += tuple で count - 1個, (iterable.next(), ) で count 個の不要な一時tupleオブジェクトが作成される。 この場合の作業変数はlistを使う方がベター。
827 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 05:15:16 ] 余りが出たら、最後をデフォルト値で埋めてみる def padpairs(iterable, n, default=None): x = chain(iter(iterable), repeat(default, n-1)) return pair(x, n) # pair は >>818 の奴 >>> list(padpairs(range(10),3)) [(0, 1, 2), (3, 4, 5), (6, 7, 8), (9, None, None)] >>> list(padpairs(range(10),4)) [(0, 1, 2, 3), (4, 5, 6, 7), (8, 9, None, None)]
828 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 10:12:17 ] 2.6以上ならizip_longestが使える
829 名前:デフォルトの名無しさん [2008/12/28(日) 10:32:42 ] >>827 GJ
830 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 15:09:27 ] >>828 2.5でもmap使えばいいだろ
831 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 15:35:12 ] 愚直にitertools.isliceで。 import itertools def pair(iterable, count): it = iter(iterable) while 1: a = tuple(itertools.islice(it, count)) if not a: break yield a print list(pair(range(10), 3))
832 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 16:46:42 ] 俺も考えてみたけど、>>824 のシンプルさには敵わないな >>> import itertools >>> make_taker = lambda xs, n: lambda: tuple(itertools.islice(xs, n)) >>> iter_take = lambda xs, n: iter(make_taker(iter(xs), n), ()) >>> list(iter_take(range(10), 3)) [(0, 1, 2), (3, 4, 5), (6, 7, 8), (9,)]
833 名前:デフォルトの名無しさん [2008/12/28(日) 19:14:36 ] see also itertoolsのドキュメント内 izip と 例 の grouper関数
834 名前:デフォルトの名無しさん [2008/12/29(月) 00:37:20 ] >>830 mapだとイテレータや巨大なリスト等を扱うとき困る。itertools.imapだと末尾の扱いが若干異なる。 3.0 のbuiltinのmap はitertools.imap相当なので、mapで長さの異なるリストを扱っている場合は3.0への移植の際に注意が必要。 例えば、下のコードは 2.x と 3.0 で結果が異なる。 >>> list(map(lambda *xs:xs, *[iter(range(10))]*3))
835 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 01:42:21 ] >>832 nが大きな数になる時を考慮するなら、こっち(islice)の方が効率良さそう。 元質問からは少し外れるけど、file-likeオブジェクトや文字列の場合。 try: from io import StringIO except ImportError: from StringIO import StringIO def split_nbyte(stream, n): return iter(lambda :stream.read(n),"") def split_nbyte_str(s, n): return group_nbyte(StringIO(s), n)
836 名前:デフォルトの名無しさん [2008/12/29(月) 08:17:15 ] ie = win32com.client.Dispatch('InternetExplorer.Application') ie.Navigate('www.google.co.jp/ ') ie.Visible = True while ie.busy: time.sleep(1) q = ie.document.all('q') q.Value = 'python' btnG = ie.document.all('btnG') btnG.click() これでGoogleの検索が出来ることが分かったのですが 検索結果を取り出す方法が良く分かりません どうすれば出来ますか
837 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 08:32:37 ] print ie.document.body.innerHTML
838 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 08:53:40 ] っつーか urllib2 じゃいかんのか なにがしたいのかによるが
839 名前:デフォルトの名無しさん [2008/12/29(月) 09:06:23 ] エラーが出ます><
840 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 11:12:01 ] Python3.0なんですが、urllib2がインポートできないのでそうしました。 あきらかに日本語ドキュメントがおかしいです。存在しません。
841 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 11:14:54 ] >>840 py3k の使用はもうちょっと待ったほうがいいって。
842 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 11:18:50 ] 今の日本語ドキュメントは2.5用
843 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 11:24:02 ] 3.0ではurllib周り大刷新してたはず
844 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 12:00:25 ] こんなところで質問する人間が使うバージョンじゃない。> 3.0
845 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 12:16:30 ] 正式リリースされているんだからもっとレスがついていいと思う
846 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 12:42:20 ] 英語読めない奴は2.5系使うのがいいよ。
847 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 12:43:50 ] 英語読めても各種ライブラリを自分で移植したりビルドする気のない奴は(ry
848 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 12:57:35 ] 正式リリースされたからってすぐ飛びつくもんじゃない。 メーカー製品みたいに、ドキュメントからサポート体制からリリースに合わせて 全力で整えてるわけじゃないんだから。
849 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 12:59:05 ] 3.0から入るのも良いけれど、その場合は日本語ドキュメントはアテにならないから 英語ドキュメント読まないと。
850 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 18:34:58 ] 怒濤の勢いで止めとけレスがw
851 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 19:15:45 ] 僕はパイソンを使う権利が無い、資格が無いという事ですね。 こんなだから日本のPythonユーザの数は少ないんじゃないでしょうか。 明らかにおかしい。
852 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 19:27:26 ] どのバージョンも好きに使う権利があるが、 2.5.2がふさわしい。むしろ2.5.2のThe King。
853 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 19:32:18 ] >>851 出たばかりだから枯れてないし、情報も出回ってないから、 古いの使っとけ、というアドバイスをそこまで曲解するほうがおかしい。
854 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 19:38:22 ] >>851 は荒らしだろ、相手にするなよ。 でも>>851 の親がイカれた奴なのは確かだ。
855 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 19:40:42 ] >>854 相手するなよ
856 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 19:47:43 ] ろくにwhat's newも読まずに最新のバージョンを使って、urllib2がインポートできない からとwin32comを使い、3.0は止めとけばと言われれば僻み丸出しとか馬鹿なの?
857 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 20:31:39 ] まあそう煽るなよ 初心者ならドキュメントの類を隅々まで読んでいないのも 一番新しい正式リリース版をインストールするのも、別に不思議なことじゃない >>851 はいつもの釣りだろ
858 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 20:33:32 ] まあ普通にバカだわな
859 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 20:45:17 ] >>852 っ2.5.4
860 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 22:27:45 ] またruby厨の降臨かよ
861 名前:デフォルトの名無しさん [2008/12/29(月) 22:47:04 ] >>847 Ruby使うのやめてPythonにしたのは 各種ライブラリがそろってて Rubyみたく自分で移植しなくてもよかったから いまさらPy3kでライブラリ移植する必要が出てくるなら Ruby使ってた方がまし
862 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 22:48:08 ] マニュアルの類は読まないってのが世間一般の常識として浸透してるから そう目ゴジラ立てて怒らんとってくれ。
863 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 22:48:56 ] アドバイスだよ
864 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 23:00:10 ] アドバンスなら大いに結構
865 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 23:00:48 ] なんかレベルというより年齢層が高くなってきたな。
866 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 23:06:28 ] >>861 ならRuby使ってればいいじゃない 誰も君に強制はせんよ
867 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 23:19:43 ] エンドユーザーならまだしも開発者がマニュアル読まないとかバカですって言ってるようなもんだろ
868 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 23:20:47 ] >>867 もう3.0の仕様を隅々まで把握してんのか? すげーな
869 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 00:12:19 ] >>861 Pythonは、2.x の間は下位互換性を大事にバージョンアップしてきたし、 2.x -> 3.y は下位互換性失われるけど、 3.x -> 3.y はまた互換性をできるだけ 確保しながらバージョンアップしていく。 Rubyだと、1.8->1.9 でも、 1.9->2.0 でも、きっと互換性の問題出るよ。
870 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 00:28:41 ] >>868 差分があるしね
871 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 00:34:38 ] >>868 必要に応じてマニュアルを読む事とマニュアル全てを把握している事は別
872 名前:デフォルトの名無しさん [2008/12/30(火) 01:06:39 ] >>869 1.8.6→1.8.7でも互換性の問題あるし、 1.8.6でも仕様を替えて互換性がなくなったこともあった。
873 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 01:35:53 ] Rubyの問題は仕様が明示されていないことだ。 互換性の問題があるのかどうかすら分からないのだ。 こんな言語を仕事に使おうと思う奴は馬鹿かアホかキチガイだと思う。
874 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 01:39:47 ] Python仕事に使ってんのか いいな
875 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 01:45:02 ] 3.0 始める人は、What's new, PEP3000 と 2to3 くらいは把握しておいた方がいいと思う。 ライブラリで移動したものも捕捉してくれる。>2to3 - from urllib2 import urlopen + from urllib.request import urlopen ところで、googleでの検索なら API 使ったほうかいいんじゃないかな。 google 検索を urllib でやる場合、UserAgent 等を設定しないといけないので注意。 また、自前で検索結果をパースする場合 BeautifulSoup 使いたいなら 3.0 だとまだちょっと手間がかかる (windowsユーザにとって)。先日のリリース で BeautifulSoup も 3.0 に対応したみたいだけど、 パッケージ内に diff や パッチを当てるto3.sh が含まれているだけなので、自分でパッチ当てないといけないみたいだし。
876 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 02:07:46 ] まあその辺は元からのPythonユーザや、このスレ見てる人にはわかってることでしょ Pythonとやらを試してみっか、と考えた大量の新規ユーザが 地雷にはまってるだろうことは想像に難くないが
877 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 03:03:52 ] >>876 ライブラリが対応しているかどうかはプロジェクトのページを見れば書いて あるし、まだほとんどのlinuxディストリビューションでは3.0は標準でイン ストールされていない。その状況には同意しかねる。 それに公式のダウンロードページにもこう書いてある。 > Note that both Python 2.6 and 3.0 are considered stable production > releases, but if you don't know which version to use, start with > Python 2.6 since more existing third party software is compatible > with Python 2 than Python 3 right now. ここであえて3.0を選ぼうという初心者が大量にいるとは思えない。
878 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 03:11:25 ] そんなことはスルーor知らずに3.0選んでこそ真の初心者とも言えるがな
879 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 03:28:55 ] 初心者ならLinux使ってないだろうし 良く知らない言語をちょっと試すかってときに わざわざ英文なんて読まないよな
880 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 03:34:32 ] ttp://japanese.joelonsoftware.com/uibook/chapters/6.html
881 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 04:10:14 ] 日本語ドキュメント、書籍、等の外部のリソースの事も考えると 公式サイトの勧めているバージョンが、必ずしも全てのユーザに合ってるとは限らないってのが現状じゃない? いくら互換性があるといっても、(2.x系)例えば windowsユーザだと、ライブラリのインストールで ビルド済のインストーラが必要なユーザ層等もいるはずだし。 今は、若干 Python のリリースが先行してる時期だと思う。 早くどれかのバージョンに収束して欲しいという意味を込めても、 出来るだけ新しい安定版を勧めたいとこだけど... その辺(これからどのバージョンを使うか)の認識って皆どうなんだろう?
882 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 04:16:00 ] とりあえず、自分の認識をまとめて書き出してみる。(突っ込み歓迎) これからPythonを試してみる人 ライブラリ類が必要 -> 2.x 日本語ドキュメントも必要 -> 2.5 レンタルサーバで使いたい -> 2.4 が無難? これから新規にライブラリを書く既存Pythonユーザ 2.xユーザを考慮するなら -> 2.6 ベースでコード書いて2to3 新規にアプリケーションを書く人 ライブラリが必要なら -> 2.x 過去の遺産なんていらない -> 3.0 こんなアドバイス必要ない -> 複数バージョンをインストール済
883 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 04:39:04 ] >>866 国語力ないですねw
884 名前:デフォルトの名無しさん [2008/12/30(火) 05:32:48 ] これからPythonを試してみる人 -> 3.x ライブラリ類が必要 -> 2.6.x 日本語ドキュメントも必要 -> 2.6.x レンタルサーバで使いたい -> 2.6.x これから新規にライブラリを書く既存Pythonユーザ -> 3.x 2.xユーザを考慮するなら -> 2.6.x ベースでコード書いて2to3 新規にアプリケーションを書く人 -> 3.x ライブラリが必要なら -> 2.6.x こんなアドバイス必要ない -> どうせ読んでないだろうから何も言いません
885 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 05:44:29 ] いろいろ、ごにょごにょしようとすると、 ライブラリ便利だなぁ、、
886 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 06:06:17 ] ライブラリの力を自分の能力と勘違いしてしまいますよね
887 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 07:17:39 ] >>879 なら、本、買えよ 中央図書館で借りてこいや
888 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 07:29:43 ] いるいる 勘違いした香具師
889 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 07:39:06 ] >>879 > 初心者なら(略)読まないよな 帰国子女初心者の僕に対する挑戦と受け取りますた
890 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 07:57:41 ] BeautifulSoup Release 3.1.0 (2008/12/27) 2.4/3.0 のハイブリッド版。新しい機能の追加等はなし。3つの後方非互換が在り。 1. str()や__str__の振舞が変わる。-> バイト文字を得るにはencode()/unicode文字を得るには decode() を使う。 2. SGMLParserベースからHTMLParserベースに変更。(sgmllibが標準からなくなるため) 此れにより、壊れた HTML文書 を扱えなくなる。 将来のバージョンでは、速度と壊れたHTML文書の扱いのトレードオフで、パーサを選択できるようにする予定。 3. (Python3で) 属性中のエンティティの扱いで、パース時にunicode文字に変換されることがある。 例: <a href="crummy.com?sacré&bleu "> -> Python 3 では é が "\xe9" に。
891 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 08:27:42 ] 3.0対応版出すの早いな。GJ
892 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 08:33:57 ] ライブラリなかったら他の言語使うし
893 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 09:22:13 ] ライブラリ使わない開発なんてあるのか? Hello Python!レベル?
894 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 12:01:18 ] 帰国子女って変な用語だよな 帰国子士にすべき
895 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 13:11:55 ] 谷底から這い上がってきた感じがする
896 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:20:59 ] 僕も全然始めたばっかりの初心者だけど 3.0でUnicodeが云々で日本語の扱いがより簡単になった (2系程複雑じゃない?)から3.0から始めたいなぁ、とか思ったよ。
897 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:29:39 ] 今でもUnicodeEncode(Decode)Errorを見るとため息が出る。
898 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:37:04 ] UnicodeEncode(Decode)Error 慣れれば原因想像つくんだけど 途方に暮れてる人も多いんじゃないかな
899 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:42:28 ] 初心者にもいろいろいるだろう Perlから来た人 COBOLから来た人 FORTRANから来た人 とかの「他言語の経験のあるPython初心者」とか Linux?何それおいしいの?な「Linux初心者&Python初心者」とか プログラミング言語?何それおいしいの?っていうかWindowsって何?とか
900 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 18:38:37 ] >>896 >3.0でUnicodeが云々で日本語の扱いがより簡単になった より簡単になった? ご冗談はよしてください。
901 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 20:08:41 ] バイト列とユニコード文字列が別にあって でも両方にほぼ同じメソッドがあって(encode, decodeまで) でも中身は別物なので使い分けないといけない という状況が解消されたんだから 「より簡単になった」と言っていいと思うよ
902 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 20:47:36 ] 「マシになった」と言うべき
903 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 20:59:33 ] より良くなったと見るかより糞でなくなったかと見るか
904 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:08:13 ] 文字列から正規表現にマッチする部分をすべて探して表示するにはどうすればよいでしょうか? log: 文字列 regex: コンパイル済み正規表現 のとき res = regex.search(log) print res.group() としたところ、最初にマッチしたもののみが返されるというところまではたどり着きました。
905 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:12:12 ] ttp://www.python.jp/pipermail/python-ml-jp/2008-December/004566.html いやー、簡単になって本当〜〜〜に良かったよね!!
906 名前:デフォルトの名無しさん [2008/12/30(火) 21:13:59 ] UnicodeEncodeError: 'cp932' codec can't encode character u'\xbb' in position 2091: illegal multibyte sequence こんなエラーが出るんですけど原因はなんでしょう?
907 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:27:21 ] >>904 6.2. match() vs search() match() 関数は、正規表現が先頭でマッチするかを調べるだけで、 search() は文字列の先へ進みながら、マッチする部分を探します。 この違いを覚えておくことは重要です。 match() は位置 0 でマッチした場合のみ報告してくれます。 もしマッチが位置 0 以外ならmatch() は報告しません。 >>> print re.match('super', 'superstition').span() (0, 5) >>> print re.match('super', 'insuperable') None 反対に、search() は文字列を先へと探していき、最初に見付けたマッチを返します。 >>> print re.search('super', 'superstition').span() (0, 5) >>> print re.search('super', 'insuperable').span() (2, 7) ときどき、あなたは re.match() のみを使って、 正規表現の前に .* を付けておくという誘惑にかられるかも知れません。 この誘惑に打ち勝って、re.search() を使いましょう。 正規表現のコンパイラは、マッチ部分の探索を高速に行うために、 正規表現をそれなりに解析します。 そのような解析のひとつが、最初のマッチ文字が何であるか見付けることです。 たとえば Crow で始まるパターンは "C" で始まる文字列とマッチしなければいけません。 この解析により、マッチングエンジンは、文字列の中から最初の文字を素早く探索し、 見付かった場合だけ全体のマッチを試みるのです。 .* を付け加えると、この最適化ができないため、文字列の最後まで探索してから、 残りの正規表現のマッチ部分を探しに逆戻りすることが必要になるのです。
908 名前:904 mailto:sage [2008/12/30(火) 21:32:29 ] >>907 match でなくて search を使うところまではわかったのですが「次にマッチするもの」はどのように取得するのですか?
909 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:32:45 ] re.findall使えとかそういう話じゃないの?
910 名前:デフォルトの名無しさん [2008/12/30(火) 21:38:59 ] >904 >>> import re >>> l = 'hagefugahogemogepiyo' >>> r = re.compile('ge', re.I) >>> [m for m in r.findall(l)] ['ge', 'ge', 'ge']
911 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:40:00 ] python.jp の説明が糞な件
912 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:41:26 ] finditerの方が良いって話もあるけど実際どうなん?
913 名前:デフォルトの名無しさん [2008/12/30(火) 21:41:42 ] >>904 findall
914 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:48:11 ] >>> r = re.compile('(a)(g)', re.I) >>> [m for m in r.findall(l)] [('a', 'g')] >>> [m.group(0) for m in r.finditer(l)] ['ag'] >>> [m.group(1) for m in r.finditer(l)] ['a'] >>> [m.group(2) for m in r.finditer(l)] ['g']
915 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:50:11 ] >>910 [m for m in r.findall(l)] やってることが意味不明なんだがwwwwww
916 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:51:42 ] >>915 [o for o in [n for n in [m for m in r.findall(l)]]]
917 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:53:08 ] >>> r=re.compile('(a)(o)', re.I) >>> [m for m in r.findall(l)] [] >>> [m.group() for m in r.finditer(l)] [] >>> [m.group(0) for m in r.findall(l)] [] >>> [m.group(1) for m in r.finditer(l)] [] >>> [m.group(2) for m in r.finditer(l)] []
918 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:59:51 ] >915 おまえは黙ってろ
919 名前:デフォルトの名無しさん [2008/12/30(火) 22:27:12 ] >>910 >>> [m for m in r.findall(l)] ['ge', 'ge', 'ge'] >>> r.findall(l) ['ge', 'ge', 'ge']
920 名前:904 mailto:sage [2008/12/30(火) 22:38:51 ] >>910 のとおりだとうまくいかず、マッチするべきものの部分文字列のタプルのリスト (で表現があってるかどうかわかりません、間違っていたらごめんなさい) が返されてしまいます。 カッコ () がついたものだとダメなのでしょうか? 使用している正規表現は、単純化すると r'(ho|ge){2} [hoge] (ho[ge]){4}' のような形をしています。
921 名前:904 mailto:sage [2008/12/30(火) 22:45:54 ] 無理矢理、カッコを使わないような形にしたところ動きましたが、もとの正規表現のままで解決可能であればお願いします。
922 名前:904 mailto:sage [2008/12/30(火) 22:47:42 ] まだでしょうか
923 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 23:00:38 ] ん? regexp = re.compile(r'(ho|ge){2} [hoge] (ho[ge]){4}') [ m.group() for m in regexp.finditer('hoge h hoghoehoghoe') ] でいいだろ
924 名前:923 mailto:sage [2008/12/30(火) 23:01:55 ] あ、finditerの引数は実際の入力を入れるようにしてね
925 名前:904 [2008/12/30(火) 23:28:49 ] >>923 成功しました。ありがとうございます。 ※ >>922 は偽者です
926 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 01:02:38 ] くそったれなHTMLはBeautifulSoupに食わせてから他のxmlライブラリに渡せばいいことに気づいた
927 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 02:05:15 ] pythonのwebフレームワークはキャッシュ生成して鯖に負担かけないとかまでやってくれるのかな できないらword pressと組み合わせたほうがいいかとも思いはじめてるんだが
928 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 02:13:26 ] もしかしたらRuby使った方が効率がよいかもしれんが
929 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 02:56:04 ] >>927 WSGI対応フレームワークでは、それは Middleware の役割。 どのWSGI対応フレームワークからでも、プラグインのように、 必要に応じて CacheMiddleware等 を追加してサーバを構成する事が可能。(例: Pylons + Beaker)
930 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 06:49:39 ] >>927 Google App Engine はキャッシュ持ってますよ 有効期限も自分で設定出来る
931 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 09:52:29 ] RoRとかって以外と再利用性低いよな。 WSGIの世界になれると戻れない(www
932 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 10:14:12 ] >14 import urllib, urllib2, cookielib, time req = urllib2.Request('pc11.2ch.net/test/bbs.cgi ', urllib.urlencode({ 'bbs' : 'tech', 'key' : '1226830195', 'time' : int(time.time()), 'submit' : u'書き込み'.encode('sjis'), 'FROM' : 'fushianasan', 'mail' : 'sage', 'MESSAGE' : u'おっぱい'.encode('sjis'), 'suka' : 'pontan'}), {'Referer' : 'pc11.2ch.net/ '}) cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) res1 = opener.open(req) if '<!-- 2ch_X:cookie -->' in res1.read(): opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) res2 = opener.open(req)
933 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 10:16:56 ] おっぱい
934 名前:fushianasan mailto:sage [2008/12/31(水) 13:13:38 ] おっぱい
935 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 13:48:31 ] おっぱい
936 名前:fushianasan mailto:sage [2008/12/31(水) 15:35:55 ] ぱいぱん
937 名前: 【1603円】 【大吉】 mailto:sage [2009/01/01(木) 00:07:16 ] ( ゚∀゚)o彡おっぱいそん! ( ゚∀゚)o彡おっぱいそん!
938 名前: 【大吉】 【24円】 mailto:sage [2009/01/01(木) 00:10:44 ] おっぱい
939 名前: 【吉】 [2009/01/01(木) 00:15:16 ] しねばいいよ
940 名前: 【ぴょん吉】 mailto:sage [2009/01/01(木) 00:56:07 ] あけおめー
941 名前: 【1192円】 【大吉】 mailto:sage [2009/01/01(木) 12:59:17 ] journal.mycom.co.jp/articles/2009/01/01/python3/
942 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 13:04:43 ] 相変わらずヌルいなあ>後藤とかいうひと
943 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 13:10:08 ] Unix系なんでもライターだからこんなもんだろ。 例えば安藤さんのプロセッサ記事みたいなクオリティを期待しちゃいかん。
944 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 13:34:51 ] gihyo.jp/dev/serial/01/pythonhacks
945 名前: 【1499円】 mailto:sage [2009/01/01(木) 14:19:24 ] age
946 名前: 【小吉】 mailto:sage [2009/01/01(木) 14:19:53 ] >>941 >>944 GJ!!
947 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 16:54:40 ] >941 ●テキストからバイナリデータへの変換: str.encode() または str(b, encoding=...) ●バイナリデータからテキストへの変換: bytes.decode() または bytes(s, encoding=...) これは「または」の部分が逆ですか?
948 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 17:00:17 ] 自分で調べろ
949 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 17:03:32 ] As the str and bytes types cannot be mixed, you must always explicitly convert between them. Use str.encode() to go from str to bytes, and bytes.decode() to go from bytes to str. You can also use bytes(s, encoding=...) and str(b, encoding=...), respectively.
950 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 17:05:07 ] やっぱり誤訳ですよね
951 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 18:09:37 ] きっと気の利いた編集者がしょうがないなぁって直してくれたんだよ
952 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 20:09:25 ] Unix系なんでもライターだからこんなもんだろ。 元日だけにおめでたいことだ。
953 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 20:28:00 ] >>944 このページってリンク0000だけ? 何も出てこないんだけど
954 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 21:39:55 ] %愛してたのになくなるのか・・・
955 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 21:59:52 ] >>954 剰余算なくなるってこと??
956 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 22:27:06 ] print JK
957 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 23:03:27 ] >>954 print.format になるのか
958 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 23:38:33 ] >>955 文字列の % が format メソッドにかわるだけで 数字の剰余はそのまま残る
959 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 23:42:27 ] 3.0 の時点で既にobsolete docs.python.org/3.0/library/stdtypes.html?highlight=obsolete#old-string-formatting-operations
960 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 23:45:34 ] Pythonのお勉強 Part31 pc11.2ch.net/test/read.cgi/tech/1230821097/
961 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 23:46:03 ] >953 連載って書いてあるから、しばらくしたら追加されるんだろ