1 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 21:49:38 ] Python オフィシャルサイト www.python.org/ 日本Pythonユーザ会 www.python.jp/Zope/ FrontPage - Pythonのお勉強 python.rdy.jp/ 前スレ pc11.2ch.net/test/read.cgi/tech/1192884897/ ◆関連スレッド Microsoft IronPython 1.0 pc11.2ch.net/test/read.cgi/tech/1157686822/ Python の宿題ここで答えます Part 1 pc11.2ch.net/test/read.cgi/tech/1153585095/ 2ch検索: [python] find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python ◆関連サイト Python ドキュメント www.python.jp/doc/release/ Index of Python Enhancement Proposals (PEPs) www.python.org/dev/peps/ 参考サイト - Pythonのお勉強 python.rdy.jp/wiki.cgi?page=%BB%B2%B9%CD%A5%B5%A5%A4%A5%C8 .
2 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 21:59:11 ] 人類は21才から22才になった
3 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 22:15:43 ] 関連書籍等 IronPython in Action www.manning.com/foord/ wxPython www.wxpython.org/ wxPython in Action www.manning.com/rappin/ www.amazon.com/product/dp/1932394621/ Django www.amazon.com/product/dp/1590597257/ TurboGears www.amazon.com/product/dp/0132433885/ Pylons www.amazon.com/product/dp/1590599349/
4 名前:デフォルトの名無しさん [2007/12/01(土) 09:19:48 ] >>1 なまら乙
5 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 10:14:21 ] >>1 >FrontPage - Pythonのお勉強 >python.rdy.jp/ 百度に飛ばされる
6 名前:デフォルトの名無しさん [2007/12/01(土) 12:56:59 ] 部外者にはみんPy側が大人気ないように感じる
7 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 12:59:50 ] へぇ・・・
8 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 13:04:16 ] みんPy側なんていたのか・・・ 荒らしさんは対立を作るのに忙しいな
9 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 13:45:20 ] Python Challenge ttp://www.pythonchallenge.com/
10 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 16:24:33 ] >>1 乙Py
11 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 16:53:05 ] Pythonオワタ・・・orz 俺もう乗り換えるわ Running the snippets above, I got the following results: Python 2.5.1: 31.507s Ruby 1.9.0: 11.934s The Ruby code: def fib(n) if n == 0 || n == 1 n else fib(n-1) + fib(n-2) end end 36.times do |i| puts "n=#{i} => #{fib(i)}" end And the Python equivalent: def fib(n): if n == 0 or n == 1: return n else: return fib(n-1) + fib(n-2) for i in range(36): print "n=%d => %d" % (i, fib(i))
12 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:00:31 ] なにかのデータをitervaluesで取り出したもの使ってるところで keyerrorとかでてくるのだけど、これは対象が存在しない時出てくると考えていいの?
13 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:02:46 ] >>11 てんさい ttp://cgi.cse.unsw.edu.au/~dons/blog/2007/11/29#smoking
14 名前:デフォルトの名無しさん [2007/12/01(土) 18:45:48 ] Pythonオワタ・・・orz 俺もう乗り換えるわ Running the snippets above, I got the following results: Python 2.5.1: 31.507s Ruby 1.9.0: 11.934s The Ruby code: def fib(n) if n == 0 || n == 1 n else fib(n-1) + fib(n-2) end end 36.times do |i| puts "n=#{i} => #{fib(i)}" end And the Python equivalent: def fib(n): if n == 0 or n == 1: return n else: return fib(n-1) + fib(n-2) for i in range(36): print "n=%d => %d" % (i, fib(i))
15 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 18:58:53 ] Ruby (1.8.5) 64.26s Python (2.4) 25.16s Haskell (GHC 6.8) 0.48s Parallel Haskell (GHC 6.8) 0.42s
16 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 19:14:33 ] 速度だけ比較してモナぁ
17 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 19:17:15 ] Ruby 1.9ってRails動くんですか?
18 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 19:29:15 ] Web板 Rubyスレ
19 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 19:47:55 ] >>17 RubyってRailsで動いてるんじゃないのか?
20 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 20:20:18 ] fib みたいな例だと psyco の効果が良くわかるな
21 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 20:38:42 ] 比較しようにもhaskellの実行ができない。 どうやったらいいの?今現在全然知らないのでコピペしただけ。 ghc h.hs:6:7: Not in scope: `forM_' h.hs:7:1: Not in scope: `printf' hugs98 ERROR "h.hs":6 - Undefined variable "printf" pythonはタブの整形が面倒だった。 rubyはそのまま実行できた。 ボロマシンなので閾値を30にまけておいた。 ruby h.rb 5.18s user 0.00s system 81% cpu 6.331 total python h.py 2.42s user 0.01s system 72% cpu 3.347 total ruby 1.8.6 (2007-09-24 patchlevel 111) [i686-linux] (dev-lang/ruby-1.8.6_p110-r2) Python 2.5.1 (dev-lang/python-2.5.1-r4)
22 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 21:06:21 ] スレ違いだから いい加減にして
23 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 21:14:09 ] Part22 作り直すか
24 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 21:17:15 ] >>23 潔癖すぎだろw
25 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 21:22:06 ] >>5 ごめんなさい。 百度があまりにもうるさいので、それっぽいIPだと 向こうにお帰り願う設定になってますので、 その影響を受けているのかと。
26 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 21:22:19 ] >>14 アンチRuby工作員乙
27 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 22:55:22 ] すれ違いでごめんよ、解決したのでメモだけ置かして…。 これであってるか知らないけど、次のライブラリをインポートしないとダメだった模様だ、が小難しいな… import Control.Monad (forM_) import Text.Printf 結果 ruby h.rb 5.07s user 0.00s system 80% cpu 6.295 total /インタプリタ python h.py 2.40s user 0.01s system 73% cpu 3.261 total /インタプリタ runghc h.hs 6.21s user 0.07s system 82% cpu 7.652 total /インタプリタ ghc h.hs 0.56s user 0.10s system 90% cpu 0.728 total /コンパイル ./a.out 0.40s user 0.00s system 49% cpu 0.817 total /ネイティブコード The Glorious Glasgow Haskell Compilation System, version 6.6.1 (dev-lang/ghc-6.6.1) 俺は見やすいpythonが好きなので他は使わないと思うけど…
28 名前:デフォルトの名無しさん [2007/12/02(日) 00:03:03 ] >>14 コードが糞すぎwww ジェネレーターを使え。
29 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 00:04:05 ] >>13 の例だとRubyはともかくHaskellと比較する意味はない気がする。 よく知らんがHaskellだと↓くらいの計算量じゃないかと。 def fib(n): return fib2(n, 0, 1) def fib2(n, a, b): if n == 0: return a else: return fib2(n-1, b, a+b) ところでWindowsにPythonの新しいバージョンを入れようと思うんだけど ActivePythonを公式+αという感覚で入れても問題ない? それとも公式を入れておいたほうが無難?
30 名前:デフォルトの名無しさん [2007/12/02(日) 02:12:14 ] >>11 Python 2.5.1 17.935 Python 2.5.1 + psyco 1.264
31 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 08:48:18 ] こいつをpythonのプログラムに取り付けろ。すごいぞお、pythonの戦闘力は数倍に跳ね上がる!
32 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 10:09:11 ] とうさん… 数倍っつーか一桁変わってますけど…
33 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 10:13:44 ] 単純なコードでは著しく高速化されても、 実用的なコードではほとんど高速化は期待できないのに・・・ 父さん・・・酸素欠乏症にかかって・・・!
34 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 11:36:28 ] ニートの僕はpythonで幸せになれますか?
35 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 11:52:28 ] もちろん Pythonは万能です
36 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 13:29:10 ] \(^o^)/ニートソツギョー
37 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 13:31:40 ] ニートが就職しても社内ニートになるだけです。
38 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 18:44:13 ] \(^o^)/マドギワゾクー
39 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 20:13:13 ] ( ゚Д゚)っ缶詰
40 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 20:30:40 ] ================= |---------------| |.;.:, | |,.:.; SOYLE| |.';.; | |---------------| =================
41 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 21:34:00 ] でかいタコ部屋ですね え、加工済m
42 名前:デフォルトの名無しさん [2007/12/02(日) 23:11:54 ] SPAM SPAM SAPM and SPAM
43 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 23:27:29 ] CentOSでyumで管理されてるPythonはちょっと前のものですが、 ソースビルドしてPython2.5.1を入れてみました。 元から入ってたのは /usr/bin/python ビルドして出来たものは /usr/local/bin/python で分かれています。 一応動いているみたいなのですが、 上書きして書き換えるのはやめておいたほうが良いのでしょうか? CentOSのその他の管理ツールで内部的に Pythonのスクリプトを使っているものがあるとかいう 話を聴いたことがあるのでそっちに影響出る可能性があるのかなと。 あとyumの方が最新のバージョンにならないのもそういう理由ですよね?
44 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 23:51:01 ] 上書きすると、パッケージ管理システムが管理してる情報と 実際に入ってるモノが食い違うことになるんじゃ…
45 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 00:16:30 ] linuxあんま使わないけどyumとかapt-getとかのパッケージ管理システムってディストリビューション毎の管理・メンテナンスでしょ アップデートしても最新にならないなら何か問題があるとか、単にテスト中だとかその辺だから大人しく待っとけ というかpython25とか名前付ければ良いんじゃないかな。せっかくlnあるんだから
46 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 00:37:34 ] まず、上書きを必要とする理由を書いて欲しい。 俺だったら、まず$HOMEに入れることを考える。 大抵はこれで事が済む。 /usr/localに入れるとしても、 /usr/local/bin/pythonは消して、/usr/local/bin/python2.5だけ残す。 (初期状態だと、/usr/local/binにはPATHが通ってないと思うが、念のため) (あとPATHがゴチャゴチャしてきた時の防御にもなる) /usrのは絶対さわらない。
47 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 01:21:55 ] >>43 上書きは止めた方が良いです、というかRed Hat系では >CentOSのその他の管理ツールで内部的にPythonのスクリプトを使っている この理由で絶対駄目なのでは。 Debian不安定版では2.4と2.5が分かれてインストールされています。 /usr/lib/python2.4と/usr/bin/python2.4と /usr/lib/python2.5と/usr/bin/python2.5。 /usr/bin/pythonは/usr/bin/python2.4。 それと、Pythonはマイナーバージョンの違いは無視されると記憶しています。 Python-2.5とPython-2.5.1はとちらも/usr/lib/python2.5になる。 なので危険ですよ。
48 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 03:19:49 ] virtual-pythonじゃダメ?
49 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 03:28:57 ] >>47 マイナーバージョンアップはバージョンアップすればいいんじゃないの?
50 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 06:36:55 ] >>49 ファイル差分があってもパッケージ管理システムからはわからないから ゴミが残ったりする。 まーsetup.pyやコピーで自前でライブラリ追加してもいっしょだし ディレクトリが分散してるわけでもないから大事にはならないけど。
51 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 06:48:43 ] >>46 おっしゃるとおりやっぱり危険ですよね。 /usr/local/bin には path が通っていないので助かっていますが /usr/local/bin/python2.5 が /usr/local/bin/pyton に ln -s されているので 念のため /usr/local/bin/pyton を消した方が無難ですね。 上書きしたかった理由は、 このあと Django とかを最新版でインストールするつもりで その辺の setup するときに旧バージョンの python が 自分の意図しないときに実行されると困ると思ったからです。 (CentOS x86-64 の Python 最新は 2.3.4 なんですよね orz) きっと Django の方でも /usr/local/bin/python2.5 の方を使うように 設定する場所はあると思うのでそっちで探してみることにします。 みなさんありがとうございます
52 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:41:30 ] 前スレ974: > # 自分で例外ちゃんと処理するしかない? するしかない。CP932で表示できないものはいかんともしがたい。端末依存。 簡単なのはエラーハンドリングを "replace" 等にして自前でエンコードすること。 print (u'ほげ%sふが' % u'hogÉfuga').encode(sys.stdout.encoding, errors="replace") 別解は Unicode-aware な端末ソフトを使う。
53 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:42:44 ] あ、ゴメス。 encode(sys.stdout.encoding, "replace") の間違い。
54 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 21:05:10 ] 981 3. 以下のコードのような感じで、変数名をstringで取り出すにはどうすればいいでしょう。 >>> for val in foo bar: >>> print val # <= ここで、変数の中身じゃなくて変数名を取り出したい。 "foo" "bar" >>> foo = 3 >>> bar = 'hoge' >>> for val in (foo, bar): ... print val ... 3 hoge >>> locals() {'bar': 'hoge', 'val': 'hoge', '__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'foo': 3, '__doc__': None} >>> for val in (foo, bar): ... print locals() ... {'bar': 'hoge', 'val': 3, '__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'foo': 3, '__doc__': None} {'bar': 'hoge', 'val': 'hoge', '__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'foo': 3, '__doc__': None} >>>
55 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 23:03:17 ] 普通のやり方はないと思う デバッグ目的ならもっと別なやり方を考えたほうがいいと思う すごく無理やりなやり方だったら、 for val in (foo, bar): print filter(lambda x:x[1]==val,locals().items())[0][0] とかは可能・・(値が同じものがある場合を考慮するともう少しちゃんとする必要がある
56 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 18:21:52 ] import * from xxx みたいに、一気に名前空間にimportすることはできないのでしょうか?
57 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 18:38:33 ] from <MODULE> import * ↑でおけ。importした複数のモジュールで同じ名前が使われてた場合、 後にimportしたもので上書きされるから注意。
58 名前:デフォルトの名無しさん [2007/12/05(水) 18:44:02 ] 2chのログを保存しているサイト(みみずん、snapshot 2ch等)からログを引っ張ってきて、 dat形式に変換してローカルに保存したいのですが、 自分がうんこ野郎なので、webサイトから何かしらのデータを取得する方法が分かりません。 主にどのようなライブラリを使えば良いのでしょうか?
59 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 18:53:44 ] urllibなど
60 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 18:54:31 ] >>58 urllib2 ttp://www.python.jp/doc/2.4/lib/urllib2-examples.html dat形式への変換はしらん
61 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 19:30:55 ] シュザイム : 枕詞ってなに? 12/5 (Wed) 19:13:59 略 玉露入り : 「うはw」という枕詞に「おkwwwww」でしょ? 12/5 (Wed) 19:12:37 略 シュザイム : なにがおk?www 12/5 (Wed) 19:11:23 玉露入り : おkwwwwww 12/5 (Wed) 19:11:01 略 シュザイム : うはw 12/5 (Wed) 19:09:59 パンピーと二人面白いです^o^
62 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 20:04:58 ] >>57 ありがとう!
63 名前:58 [2007/12/05(水) 22:05:12 ] >>59 ,60 ありがとう!! dat変換まで出来てjaneに不具合なく導入出来たら公開する!!
64 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 22:15:50 ] いや・・・p2todatがもうあるので・・・
65 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 22:30:35 ] >>63 がんばれ
66 名前:58 [2007/12/05(水) 22:55:32 ] >>64 あれは使い勝手が悪いので自分で作ってみようかなと うんこは考えたのです。
67 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 00:45:04 ] 使い勝手がいいのを作るのはムズかしいぞ、何事も。 特に他人に使ってもらおうと思ったら。 まあ頑張れ。若者よ。もしかしたらすごいのができるかもしれん。
68 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 00:49:55 ] わたし待ってるわ
69 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 09:04:40 ] いつまでも待ってるわ
70 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 10:12:58 ] 他の誰かがプログラムを作ってくれる日まで
71 名前:デフォルトの名無しさん [2007/12/06(木) 11:43:45 ] かわいいふりして、うんこわりとやるもんだねと
72 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 15:00:31 ] 今、Python勉強し始めの超初心者です。 他の言語の知識は全くありません。 大量の写真(.img)を一括で同じサイズにリサイズする ってな事Pythonで出来ますかね? PILとか使うのでしょうか?
73 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 18:07:48 ] ・ファイルサイズを同じにする ・拡大縮小かけずにトリミングだけで同じサイズにカット ・拡大縮小かけるがアルゴリズムは適当で画像が劣化しても問題なし どれにしますか
74 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 18:16:06 ] www.yasuhisa.com/could/entries/000701.php www.flickr.com/photos/w00kie/sets/180637/
75 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 18:46:08 ] ttp://makunouchi.jp/zope3/3496598985
76 名前:72 mailto:sage [2007/12/06(木) 19:11:05 ] >>73 カットは要らないと思います。 画像の劣化ですか…。そうですよね。 画像劣化せずに拡大縮小できたらいいなぁと思います。 大量のファイルをまとめてってのが一番の目的なんで そこまで考えてませんでした(^^; >>74 >>75 ありがとうございます 参考になります
77 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 19:57:08 ] >>76 そういう用途ではImageMagickが適当かな。 Python用ライブラリもあるけど、単純に外部コマンドでconvertを呼んじゃえばおk。
78 名前:72 mailto:sage [2007/12/06(木) 21:19:04 ] >>77 ありがとうございます! 調べてみたんですが、使うの難しそうですね…
79 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 21:46:21 ] urllib2でCGIに対してPOSTしようと思ってるんですが、 向こうのCGIがShift_JISしか受け付けないそうです。 普通、ブラウザの文字コードをShift_JISにして フォームから送ればShift_JISになるのですが、 Pythonで文字コードを指定して送るにはどうすればよいのでしょうか? 下のようにAccept-Charsetを指定したのですがShift_JISでないという 反応が返ってきます。他に何かありますか? アドバイスお願いします。 params = urllib.urlencode({"key_type":"1".encode(), "key_info":"テスト".encode("Shift_JIS")}) request = urllib2.Request("aaa.jp/test.cgi" ) request.add_header("Accept-Charset", "Shift_JIS") request.add_header("Content-Type", "application/x-www-form-urlencoded") request.add_data(params) src = urllib2.urlopen(request).read() print src
80 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 22:38:05 ] u"テスト".encode("Shift_JIS")
81 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 22:45:23 ] >>79 ファイルの1行目に # -*- coding: shift_jis -*- と書くとうまく行くかも。
82 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 22:47:08 ] HTTP RequestとResponseの両方を表すクラスを作るとしたら、どんな名前にするのがいいでしょうか。 分けるべきという話は置いといて。
83 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 23:00:42 ] Commandとか・・・ ついでにGoFコマンドパターンにしてしまえ。
84 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 13:15:04 ] >>75 >ttp://makunouchi.jp/zope3/3496598985 なにこのデザイン。 1990年代かと思った。
85 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 13:23:33 ] 質問です。 素数が昇順に出てくる無限リストを使いたかったら自前で実装するしかないですか?
86 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 14:29:38 ] p = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, ...]
87 名前:72 mailto:sage [2007/12/07(金) 14:31:40 ] また質問なんですが ImageMagickを入れたほうがよいのでしょうか? それとも、PythonMagickの方がよいのでしょうか?
88 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 16:22:58 ] >>87 やりたい内容による。 ものすごい単純なことやりたいだけなら、 ImageMagickのconvertを使ってshellから呼んだほうが楽。 Pythonから呼ぶことが重要なんであれば、 それ系のmoduleを入れるのが良い。 Pythonからexecするってのもありだけど。
89 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 18:38:13 ] linuxでpythonの環境を自分のhomeの下に作ることって可能なんでしょうか? ./configure --prefix=/home/aaa/ だと /home/bbb のユーザーは使えないのですよね
90 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 18:40:37 ] >>85 def primes(): """Generates prime numbers. >>> import itertools >>> for p in itertools.islice(primes(), 15): print p, 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 """ yield 2 memo = [2] i = 1 while True: i += 2 for d in memo: if i % d == 0: break else: yield i memo.append(i)
91 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 19:24:37 ] >>89 /home/aaaがbbbから見れるんなら、 必要な環境変数を設定すれば大丈夫でしょう。 PATHやら何やら。
92 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:25:48 ] >>89 すれ違い、UNIXの勉強してこい
93 名前:デフォルトの名無しさん [2007/12/08(土) 17:21:47 ] Python 3.0a2 リリース ttp://www.python.org/download/releases/3.0/
94 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:37:22 ] Python2.5.1でsqlite3を使いたいのですがimportでエラーが出てしまいます 標準ではないのでしょうか? Python 2.5.1 (r251:54863, Dec 1 2007, 21:59:43) [GCC 3.4.6 20060404 (Red Hat 3.4.6-8)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sqlite3 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.5/sqlite3/__init__.py", line 24, in <module> from dbapi2 import * File "/usr/local/lib/python2.5/sqlite3/dbapi2.py", line 27, in <module> from _sqlite3 import * ImportError: No module named _sqlite3 >>> import sqlite Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named sqlite >>> from _sqlite3 import * Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named _sqlite3 >>>
95 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:58:03 ] sqlite入ってないんじゃね? [oppai@centos5 ~]$ yum list sqlite Loading "installonlyn" plugin Setting up repositories Reading repository metadata in from local files Installed Packages sqlite.i386 3.3.6-2 installed [oppai@centos5 ~]$ ls /usr/lib/libsqlite* /usr/lib/libsqlite3.so /usr/lib/libsqlite3.so.0 /usr/lib/libsqlite3.so.0.8.6 [oppai@centos5 ~]$ ls /usr/include/sqlite* /usr/include/sqlite3.h
96 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 08:38:09 ] ありがとうございます。 コマンドからは sqlite3 で実行出来て dbも作れているので大丈夫だと思います。 あとPython2.3も入っているのですが、 こっちでは import sqlite しても問題なかったです。
97 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 08:46:28 ] $ yum list sqlite Loading "fastestmirror" plugin Setting up repositories update 100% |=========================| 951 B 00:00 base 100% |=========================| 1.1 kB 00:00 addons 100% |=========================| 951 B 00:00 extras 100% |=========================| 1.1 kB 00:00 Determining fastest mirrors Reading repository metadata in from local files Excluding Packages in global exclude list Finished Installed Packages sqlite.x86_64 3.3.6-2 installed $ ls /usr/lib/libsqlite* ls: /usr/lib/libsqlite*: No such file or directory $ sudo find / -name '*libsqlite*' -print /usr/lib64/libsqlite3.so.0 /usr/lib64/libsqlite3.so.0.8.6 /home/mae/work/Python-2.5.1.copied/Doc/lib/libsqlite3.tex /home/mae/work/Python-2.5.1/Doc/lib/libsqlite3.tex $ ls /usr/include/sqlite* ls: /usr/include/sqlite*: No such file or directory sqlite3.h が無いといけないんですよね orz
98 名前:デフォルトの名無しさん [2007/12/09(日) 14:54:16 ] モジュールにも__init__や__del__のようなものを定義することができるのでしょうか?
99 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 16:23:53 ] >>98 つ リファレンスマニュアル
100 名前:98 mailto:sage [2007/12/09(日) 19:09:38 ] >>99 ttp://www.python.jp/doc/2.4/tut/node8.htmlにて モジュールには、関数定義に加えて実行文を入れることができます。これらの実行文はモジュールを初期化するためのものです という記述をみつけて__init__相当を実現できることを確認できたのですが__del__が分かりません もうすこしヒントをいただけませんでしょうか
101 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 19:52:26 ] >>100 if __name__ == "__main__": __credits__, __author__, __copyright__ モージュール内で __**__ 形式で書く時は定数 C言語のconstの代わりにしか使わないような気がする… __revision__ = "$Revision: 196 $"[11:-2] こんなのもいま読んでるソースに出て来てたけど これも定数だったり。面白そうなプロジェクト見つけて ソース読んだほうが手っ取り早いような…
102 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 20:08:14 ] というか無いだろ。 モジュールはオブジェクトじゃなくて 名前空間と考えるべき。 そもそもPythonエンジンは一度も__del__を呼び出さないで 終了してもいいことになっている。
103 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 20:36:14 ] import sys class ExitHandler(object): def __del__(self): print 'bye!' if __name__ != '__main__': sys.modules[__name__] = ExitHandler() これで呼ばれないので無理 ところでsys.exitfuncというものがあってだな
104 名前:98 mailto:sage [2007/12/09(日) 20:51:46 ] ってゆーか こんなよくありそーな要求にすら こたえられない言語がNASAとかで使われてるってありえないだろ そりゃスペースシャトルも事故るわwwww 探してみたんだけどrubyでもモジュール用の__del__みたいなのないみたいだしwwww LLまだまだだなwwwwwwwww
105 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:13:07 ] _exitfunc = ExitHandler() これなら呼ばれるわ。当たり前の話だね
106 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:27:52 ] モジュールすら理解できないのにプログラミングは無理だろ・・・
107 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:35:15 ] 衝撃の新事実発覚!スペースシャトルの事故はPythonのせいだった!
108 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:47:35 ] モジュールのデストラクタが欲しいというのは初めて聞いた。 プログラム終了時に実行するコードを登録したいということなら、よくあるけど。 そもそもモジュールっていったんimportしたら廃棄できないんじゃないの? なんでモジュールのデストラクタが必要なのか>>98 に説明してほしいな.
109 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:52:37 ] >>108 なんとなく必要だったんだと思うよ、なんとなく。
110 名前:98 mailto:sage [2007/12/09(日) 22:25:11 ] なんかぬりっぽいのであきらめますプゲラッチョ...............
111 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 23:34:20 ] ほらな。
112 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 03:18:45 ] >>110 「釣りっぽい」の間違いだろ
113 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 06:25:24 ] Python を誰かに教えるとしたら、 どういう順番で教えるのがいいかな?
114 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 06:51:25 ] チュートリアルの最初の方コピペ
115 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 09:56:13 ] >>113 なにはともあれ。 「初めてのPython」と「はじめてのPython」の違いについて教えた方がいい。
116 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 10:10:42 ] >>113 全くプログラミング経験が無い相手なら『Pythonで学ぶプログラム作法』一択 プログラミング経験がある相手なら「チュートリアル読め」で以上
117 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 11:09:59 ] 俺も >116 に一票
118 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 18:07:53 ] PIL.image.show() がxv以外を使うようにできないでしょうか?
119 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 19:09:57 ] Python3000a1からa2に上げてみました。 なーんか前、うちの環境でだけでる utf-8関係でエラーが出たなぁと思っていじってて また遭遇。 C:\> python >> help() help> modules sys これでエラーが出ちゃった。 前はhelp(なんか)で出てたっぽいけど 今回、help(sys) はちゃんと動いている XPなんだけど、他にも出る人いる?
120 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 19:35:03 ] windowsで2.5と3.0って両立できるの? 怖くて試せない。
121 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 19:56:22 ] 両立?インストールパス変えるだけでいいんじゃないの?
122 名前:WinXP, 32bit, 2.5.1installed mailto:sage [2007/12/10(月) 20:05:39 ] とりあえず入れてみた。 と、書きたいところだが、 そこに行き着く前にインストーラがこけた。 以上
123 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 20:12:11 ] カクタス=サボテン
124 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 20:47:27 ] >>123 僕の名前を知ってるかい?
125 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:14:40 ] MinGW 5.0.2 のインストール www.rouge.gr.jp/~fuku/tips/mingw/ C:\mercurial-0.9.5>dllwrap --driver-name gcc -dllname executer.dll example.o C:\Python25\libs\libpython25.a dllwrap: no export definition file provided. Creating one, but that may not be what you want カレントディレクトリにexecuter.dllは作成できたけどインポートできないよ そろそろ心が折れてしまいそうです…もうダメぽ
126 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:31:18 ] TortoiseHG使えばいいのに。 あとマルチやめろ。
127 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 22:21:10 ] >>126 webベースじゃないと嫌です マルチポストの件は反省しています もう二度とマルチポストしません…orz
128 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 22:31:31 ] >>127 今回は諦めましょう
129 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 22:44:05 ] >>128 諦められません! 片っ端から忘れていけばいいじゃない。 VistaにMinGWを入れる場合の参考資料 0xc000013a.blog96.fc2.com/blog-entry-11.html K-na TechNotes | MinGW のインストール www.knatech.info/dev-mingw-install.html コンパイル通ってるのにPythonから呼び出せないのは 納得できません…
130 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 23:50:12 ] www.python.org/download/releases/2.5.1/NEWS.txt - On Windows, .DLL is not an accepted file name extension for extension modules anymore; extensions are only found if they end in .PYD.
131 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 00:17:24 ] 関数呼び出す時に a=hogehoge(x=10,y=20,z=30) なんつーふうにできるじゃないですか。 この引数一式を変数に入れとくって出来ないんですかね? par1=("x=10","y=20","z=30") a=hogehoge( par1 ) じゃもちろん駄目なんですが…
132 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 00:28:25 ] kwargs = {'x':10, 'y':20, 'z':30} a=hogehoge(**kwargs)
133 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 01:08:46 ] なんたら代入とか名前あったなぁ
134 名前:デフォルトの名無しさん [2007/12/11(火) 08:17:02 ] Perlでいう $| = 1(出力バッファリングの停止)をやりたいんですが。 ググると、 起動オプションに-uを付ける、 あるいは環境変数PYTHONUNBUFFEREDに何らかの値を代入する。 という方法があるのは分かったのですが、 なんかやり方が美しくないように思います。 コードの中だけで完結しておきたいんですが、 そういう方法はないでしょうか?
135 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 08:57:21 ] pythonプログラム中で環境変数を設定すればいいんじゃないかな
136 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 09:01:12 ] バッファサイズを0にして開けばおk sys.stdout = os.fdopen(sys.stdout.fileno(), 'wb', 0)
137 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 10:00:48 ] ありがとう
138 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 10:15:29 ] PythonでwxPythonを使いながら色々と勉強しているのですが wxPythonのDemo等でイベント関連のところでBind関数を使って いますが、詳細を知ろうと思いwxPythonのドキュメントでこの関数を 探しているのですが見つかりません。 どのあたりに書かれているかご存じの方いらっしゃいませんか?
139 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 10:30:34 ] すいません。 自己解決しました。 ドキュメントの最初に wxWidgets 2.8.4: A portable C++ and Python GUI toolkit ってあるからてっきりこれがwxPythonのドキュメントかと思ってしまいました。 別の所に、 Package wxのドキュメントがあり、Bind関数の記述を 見つけることが出来ました。 お騒がせしました…
140 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 11:21:14 ] Windowsのcmd上で使っています。 ファイルのパスに日本語が含まれているときに限ってなのですが、 sys.argv[0]を表示させようとすると hoge.py と直接実行したときと python hoge.py とコマンド指定して実行したときとで動作が違います。 後者はそのままうまく表示されるのですが 前者はunicode(path, 'mbcs')しないと例外が出てしまいます。 どこが違うのでしょう?
141 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 12:33:08 ] 誰かー。yahoo apiを使うならこれ使えってモジュール知らないか?
142 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 13:41:45 ] >>141 ttp://developer.yahoo.com/python/ 本家みてもurllib, httplib, xml.*でしこしこ書いてるから スタンダードなRESTライブラリってないんだと思う。 通信自体は大したことないしAPI毎の解析は結局個別に実装が必要だし 単純にそういうのでいいんじゃないかな。 ttp://pysearch.sourceforge.net/ それかこれをJapan対応にするのも有意義かもだけど。 将来的にxmlrpclibみたいにrestlib?が標準でつくといいね。
143 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 14:19:58 ] 情報ありがとー
144 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 16:37:03 ] Linuxでioctl使いたくて↓を読んだんですが、 www.python.jp/doc/2.4/lib/module-fcntl.html termios関連のものしか引数に渡せないんでしょうか。 home.mag.cx/messenger/ にあるLogitechのwebcamのLinux用デバイスドライバーの動作を、 Pythonで呼び出したい、というのが目的です。 linux/videodev.hに定義されているVIDIOCGCAPなどを使って、 www.gelato.unsw.edu.au/lxr/source/include/linux/videodev.h ioctl(fd, VIDIOCGCAP, &vidcap); // fdはfile descriptor // vidcapはvideo_capability構造体 のようなCから呼べる動作をPythonで出来ないものでしょうか。 CでモジュールをPython用に書くしかないですかね。
145 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 17:10:09 ] >>140 再現しなかったよ。 C:\temp\テスト>pwd c:/temp/テスト C:\temp\テスト>type test.py import sys print sys.version print sys.argv[0] C:\temp\テスト>test.py 2.5 Stackless 3.1b3 060516 (release25-maint, Oct 4 2006, 12:32:12) [MSC v.1310 32 bit (Intel)] C:\temp\テスト\test.py
146 名前:144 mailto:sage [2007/12/11(火) 17:16:06 ] 自己解決。 sourceforge.net/projects/pyv4l/ ここを参考にしたら出来そうです。 挫折したらまた来ます。
147 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 18:46:45 ] >>140 複数の python が入ってるんじゃね?
148 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 18:59:07 ] 3p
149 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 23:08:15 ] 行頭で #-*- coding: shift_jis -*- というように記載しているcodingの指定って変数とかに 格納されていたりするのでしょうか? 二箇所もかいたりするのを省略したいのですが。
150 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 23:53:49 ] 行頭の一ヶ所に書いておけばいい
151 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 00:33:29 ] そうじゃなくて、行頭で書いたコードをプログラム中でも使いたいってことじゃね? 変数に入ってるかどうかしらんけど、なんかの関数で取得することはできそうだな。
152 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 01:07:24 ] 以下のコードを使って独自の import を定義しようとしたんだけど: import my_api # C によって実装した独自import関数を含むモジュール def set_import(): __builtins__.__import__ = my_api.my_import 実行すると __builtins__ に __import__ メンバが存在しないっておこられるんだけど dir(__builtins__) してみたら、確かに __import__ だけが存在しない。 このコード、 Py_InitModule("my_api", APIの宣言テーブル) PyObject* mo = Py_CompileStringFlags(上記コード, "hoge", Py_file_input, NULL); PyObject* ret = PyObject_CallFunction(mo, "set_import", "()"); Py_DECREF(ret); Py_DECREF(mo); て感じで実行させてるんだけど、このやり方だと __builtins__.__import__ が定義されなかったりするのかな?
153 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 01:13:27 ] 出来たとしてもキモイものが出来そうだ。 ・ASCII ・Shift_JIS ・euc-jp ・utf-8 ・スウェーデンなキャラコード(よーわからんw) 5つあったとして、importした時とかは、 どういう動作を期待してるんだろ? Shift_JISモジュールがShift_JISを吐き出して、 euc-jpモジュールがeuc-jpを吐き出すのか? Shift_JISモジュールをimportしたeuc-jpモジュールは、 何を吐き出すんだ?両方混ざるのか? 俺は ソースが何語で書かれているか 何語を入力・処理・出力するのか この2つは、別のものだと考えているけどね。
154 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 06:39:40 ] simplejsonのコンパイルって簡単にできないですか?win
155 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 08:22:34 ] >>145 追試ありがとうございます。 確かにそのコードだと問題出ませんでした。 自分のところで書いてたコードを晒します。 #!/usr/bin/env python # -*- coding: utf-8 -*- import sys import os a = unicode(sys.argv[0], 'mbcs') b = os.path.abspath(os.path.dirname(a)) print a print b print u'%s/ほげ' % (a) try: print u'%s/ふが' % (b.decode('mbcs')) # testpath.py のときだけエラー except UnicodeEncodeError, (e): print sys.exc_info()[0] print e print e.args try: print u'%s/ふが' % (b) # python testpath.py のときだけエラー except UnicodeDecodeError, (e): print sys.exc_info()[0] print e print e.args
156 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 08:23:08 ] C:\日本語>testpath.py C:\日本語\testpath.py C:\日本語 C:\日本語\testpath.py/ほげ <type 'exceptions.UnicodeEncodeError'> 'ascii' codec can't encode characters in position 3-5: ordinal not in range(128) ('ascii', u'C:\\\u65e5\u672c\u8a9e', 3, 6, 'ordinal not in range(128)') C:\日本語/ふが C:\日本語>python testpath.py testpath.py C:\日本語 testpath.py/ほげ C:\日本語/ふが <type 'exceptions.UnicodeDecodeError'> 'ascii' codec can't decode byte 0x93 in position 3: ordinal not in range(128) ('ascii', 'C:\\\x93\xfa\x96{\x8c\xea', 3, 4, 'ordinal not in range(128)')
157 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 08:24:21 ] >>147 pythonは1つだけ(2.5.1)です
158 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 08:34:52 ] Python3000で組み込み関数から file が削除されてるのはなぜ????????
159 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 08:38:51 ] open()使いなさいよってことかと
160 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 08:38:57 ] testpath.pyのみのときは元々実行ファイルのパスが判明しているが (エクスプローラでダブルクリックするとさらに状況が違うかも知れない) python testpath.pyのときは、実行ファイルがカレントディレクトリにいるため プログラム中の os.path.abspath または os.path.dirname の内部でパスが補完されている おそらく C:\>python C:\日本語\testpath.py を実行すれば前者(testpath.pyのみ)と同じ結果になるだろう os.path.abspath または os.path.dirname のUNICODEの取り扱いに問題があると思われ
161 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 08:47:28 ] >>159 file は2.2か2.3で新しく追加された関数(というかコンストラクタ)で、 むしろ open の方が古い仕様で file のエイリアスって 扱いじゃなかったっけ。。。。。。
162 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 09:05:31 ] 整理) b = os.path.abspath(os.path.dirname(unicode(sys.argv[0], 'mbcs'))) の状況で(この段階↑で既に変なことしてるように見えるが) 1) print u'%s/ふが' % (b.decode('mbcs')) # testpath.py のときだけエラー 2) print u'%s/ふが' % (b) # python testpath.py のときだけエラー 1)になるパターン ・C:\日本語>testpath.py ・エクスプローラからダブルクリック ・C:\>python 日本語\testpath.py ・C:\日本語>python ..\日本語\testpath.py ・C:\日本語>python C:\日本語\testpath.py 2)になるパターン ・C:\日本語>python testpath.py のみ? 結論) とりあえず a = sys.argv[0] b = unicode(os.path.abspath(os.path.dirname(a)), 'mbcs') print u'%s/ふが' % (b) という書き方なら(1)(2)共に問題ありませんでした 本当にありがとうございました
163 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 09:55:33 ] WindowsXP+Python3.0a2でIDLE起動したんだが プルダウンメニューとコンテキストメニューが派手にバグっててorz 一瞬何が起こったのか分からんかった
164 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 10:11:11 ] こんな流れか? (1). iterator導入。 (2). 新規にfile()作ったぜ。みんなコレ使え。 (3). iterator浸透。generator導入。 (4). なんだかもう、open()はfile()のエイリアスでいい気が…… (5). マニュアル『open()はfile()のエイリアス。過去互換です。』..._〆(゚▽゚*) (6). file()いらねーだろ。統一感ないし。"みんな"使ってないし。←いまここ (7). じゃあfile()は廃止ね。(5)をまじめに実行した奴m9(^Д^)プギャー
165 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 10:20:01 ] 変数名に file 使いたいから file() 使いにくいんだよね…… def f(): file = file("/dev/null") # ここで UnboundLocalError が飛ぶ
166 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 11:17:45 ] >>160 >>162 解決しました。 ありがとうございました。
167 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 14:20:08 ] なんだよマニュアルに open() は過去互換とかいうから file() 使っていたのにヽ(`Д´)ノ
168 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 14:47:54 ] import urllib conn = urllib.urlopen("test.txt") data = conn.read() conn.close() みたいなかんじでIO関連の処理はopen+closeでやる ものだと何となく認識してた俺は大丈夫だったようだ…
169 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:46:30 ] Python 2.4: 以前の関数名である open() は互換性のために残されており、 file() の別名となっています。 Python 2.5: When opening a file, it's preferable to use open() instead of invoking this constructor directly. ファイルを開くときは、このコンストラクタ(file)を直接実行するより、open()を使う方が望ましい。
170 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:25:58 ] >167 オレモオレモ… orz
171 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:33:15 ] Python 2.3でこの関数を呼ぶと、 def _IOC(dir, type, nr, size): return ( dir << _IOC_DIRSHIFT) | ¥ (ord(type) << _IOC_TYPESHIFT) | ¥ ( nr << _IOC_NRSHIFT) | ¥ ( size << _IOC_SIZESHIFT) /usr/lib/python2.3/site-packages/video4linux/__init__.py:112: FutureWarning: x<<y losing bits or changing sign will return a long in Python 2.4 and up return ( dir << _IOC_DIRSHIFT) って、出るんですけど、 何を修正すればこのwarningは消えますか?
172 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:40:54 ] ttp://docs.python.org/lib/module-warnings.html ttp://www.python.jp/doc/2.4/lib/module-warnings.html
173 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 18:11:07 ] >>172 単にwarningが表示されないようにするのではなく、 warningの原因自体を取り除きたいです。 >>171 の書き方のどこがまずいんでしょうか。
174 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 18:16:18 ] def func(a, b): pass という関数があったとして、 func(1, 2) と書くかわりに tup = (1, 2) func(tup) みたいにしたいんですが、 どうやったらいいでしょうか。 func自体は修正できないものとします。
175 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 18:18:34 ] tup = (1, 2) func(*tup)
176 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 18:24:41 ] >>175 ありがとうございました。
177 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:44:17 ] >>175 これ便利だよね関数にタプル渡して処理してくの def getSafeText(self, text): htmlFixes = [ ("&", "&"), ("<", "<"), (">", ">"), ] for fix in htmlFixes: text = text.replace(*fix) return text
178 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:52:00 ] なんかと思ったら&、>、<への変換か
179 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 21:09:58 ] &amp;と書かないと意味不明
180 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:01:57 ] ターミナルからpythonインタプリタを呼び出して利用しているのですが、 バッファをクリアする方法はあるでしょうか。
181 名前:デフォルトの名無しさん [2007/12/13(木) 02:37:39 ] 指定された条件でファイルを検索し条件にマッチしたファイルがあるディレクトリ上のcallback.pyのimportを行い その中で定義されてる関数on_matchを呼び出すというような実行可能ファイルをCで書きたいと思っています ただPyImport_ImportModuleを呼び出すとファイルがあるディレクトリをPythonに伝えていないのでcallback.pyは もちろんimportされません $PYTHONPATHをプログラムの中でいじくればimport対象にディレクトリ上のcallback.pyを追加できるとは思うのですが 環境変数をいじらずに同等のことを行える関数はありますでしょうか?
182 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 03:49:36 ] >>181 Python Programming Language :: PyImport_ImportModule/embeddin g: surprising behaviors www.megasolutions.net/python/PyImport_ImportModule-embeddin-g_surprising-behaviors-38379.aspx 参考になるかわからないけどこんなの見つけた
183 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 05:08:04 ] スレち気味ですみません パイソンのdictが便利なんですが 初期化とかsetitemとかupdateのときに type checkをしたいんです。 dictをサブクラスしてできるんですが いちいちやるのがすごくめんどうくさい なんかいまやってることにパイソンはあんまり向いてないような気がしてきました なにかお勧めの言語はあるでしょうか? javaとか? 当方perl/pythonとあとC++をすこしつかいます
184 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 05:48:29 ] >>181 import hage.fuga.hoge.callback じゃだめ?
185 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 07:13:13 ] >>171 x << y を int((long(x) << y) & sys.maxint) と直せばよいかと。
186 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 07:18:10 ] >>173 まずいということではなくて、2.3以前と2.4以降で << の結果が変わりますよーというお知らせ。
187 名前:181 mailto:sage [2007/12/13(木) 10:05:16 ] >>184 それだと実行可能ファイルがあるディレクトリからの相対的な位置指定しかできなく 実行可能ファイルがあるディレクトリよりroot方向よりの指定もできないと思います パスをなんらかの方法で指定し(最悪 環境変数PYTHONPATH importにモジュール名のみを渡してimportというのがよいかと思っています
188 名前:デフォルトの名無しさん [2007/12/13(木) 10:19:45 ] rubyとpythonって将来の有望性はどっちが上なんですか? 初心者なんでどっちか片方をスクリプトの基礎を勉強しながら取り組みたいのですが
189 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 10:24:45 ] PHPだろ常考
190 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 10:27:41 ] んだPHPでもやっとけ そして二度とPythonスレには来るな
191 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 11:11:05 ] >>188 マジレスすると、どっちも有望 WebプログラミングではRails人気もあってRubyが有望 でも企業内ではPythonのほうが広範囲に使われている(Google, Pixar, DreamWorks, Youtube, Sega, etc)
192 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 11:23:42 ] >>181 /* 独自の import 関数を定義する */ PyObject* MyImport(const char* name, PyObject* globals, PyObject* locals, PyObject* fromlist) { /* 最初に標準でのインポートをこころみる */ PyObject* module = PyImport_ImportModuleEx(name, globals, locals, fromlist); if (module && PyModule_Check(module)) return module; PyErr_Clear(); /* Import エラーを破棄 */ Py_XDECREF(module); /* 標準インポートに失敗した時だけ独自インポートを試みる */ module = 独自にインポートするか、パスを変えてもう一度 PyImport_ImportModuleEx を呼び出す return module; } この API を、例えば "my" モジュールの "importhook" という名前で登録しておく. そして、__builtins__['__import__'] を my.importhook で置き換えるようなコードを書く const char* pysource = "\n\ def replace_import():\n\ import my\n\ __builtins__['__import__'] = my.importhook\n" これを Py_CompileString でコードオブジェクト化してから PyObject_GetAttrString で replace_import 関数オブジェクトを取り出し、PyObject_CallFunction で実行する。 もしかしたら PyRun_String でそのまま実行してOKかもしれんけど、その場合は globals 引数を 適切に設定しないとダメだと思う。 とりあえず、これで import を実行する度に MyImport が呼ばれるようになるから、あとは 自分でパスを補完するなり独自に取り込むなりすれば良い
193 名前:デフォルトの名無しさん [2007/12/13(木) 11:34:29 ] 独自 import を定義する時は、「独自インポートに失敗したら標準インポート」よりも 「標準インポートに失敗したら独自インポート」の方が無駄がなくていいよ。 __import__ は既に import されているかどうかに関わらず、 import 文が実行されたら必ず毎回呼び出されるから、もし独自 import の方を先に処理すると インポート済みかどうかって事を毎回自分で調べる必要があるので無駄な処理時間が増える。
194 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 11:41:45 ] >>191 >企業内ではPythonのほうが広範囲に使われている(Google, Pixar, DreamWorks, Youtube, Sega, etc) こんなウソを信じちゃダメだ!! PythonができればGoogleに入社できるなんて嘘っぱちだ!!!
195 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 11:59:34 ] >>188 プログラマなら複数言語できてあたりまえだし 必要にせまられれば柔軟に吸収できるもんだよ。 だからとっかかりは将来性とかかんがえずに好みできめていいよ。 (イメージロゴがすきだとか興味あるアプリがあるとか) あと最初に変なクセがつく危惧もあるけど意識して複数こなせば解消できる。
196 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 12:01:07 ] マジレスすると (C or Java or PHP) + (Python or Ruby) これ最強。
197 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 12:02:55 ] 195のレスが情報量ゼロな件。
198 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 12:22:42 ] 197のレスが情報量ゼロな件。
199 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 12:46:40 ] >>183 typecheckていうのをデコレータとして作って、 class mydict(dict): __init__=typecheck(dict.__init__) __setitem__=typecheck(dict.__setitem__)
200 名前:171 mailto:sage [2007/12/13(木) 13:24:39 ] >>185-186 ありがとうございます。 module内で定義している定数全てに、 'L'をつけて対応しました。
201 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 16:05:50 ] >196 (C or アセンブラ) and (Perl or Java or PHP or Python or Ruby) の間違いじゃねーの?
202 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 16:09:35 ] >>192 乙 しかしながら181は "独自にインポートするか、パスを変えてもう一度 PyImport_ImportModuleEx を呼び出す " という部分に関してPYTHONPATHを使う以外の方法が分からなくて質問してきてると思われる というわけで ttp://mail.python.org/pipermail/python-list/2001-October/108376.html とか ttp://mail.python.org/pipermail/python-list/2001-October/108485.html を見てみることをお勧めする
203 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 16:23:45 ] python unconference とかいうのに行ってきた。
204 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 16:51:12 ] (C and C++ and (Java or C#)) and (((Perl or PHP) and (JavaScript) and (Python or Ruby or LISP)) or ((JavaScript) and (Python or Ruby or LISP)))
205 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 17:11:39 ] 素直に、「PerlとPHPは要らないと思うんだ」と言えんか。
206 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 17:36:57 ] Unixをプラットホームに構えるならPerlはツールとして当面必要だろjk PHPと同列にするセンスに違和感。
207 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 17:43:00 ] 誰にも必要とされない言語なんて悲しすぎるじゃないですかー
208 名前:デフォルトの名無しさん [2007/12/13(木) 18:27:22 ] (C and (perl or python or ruby)) or Java
209 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:35:48 ] Perl or Python でいいのにRuby絡ませたがる奴は誰だ
210 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 20:11:24 ] >>204 Lisp みたいな括弧の数だな
211 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 20:14:43 ] 将来も考えてるならPHPとかPerlとかにどっぷりつかるのはやめたほうがいい
212 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 22:40:58 ] 関数内関数から、外側の関数のローカル変数を更新する方法はないでしょうか? def f(): def g(): z = 3 # fのローカル変数zを更新したい z = 0 g() return z # 3を返して欲しい のようなコードでは、gのローカル変数zの更新になってしまいます。 かといってgの先頭にglobal zを加えると、fのスコープを飛ばしてglobalなスコープを見に行くので エラーになります。
213 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 23:03:30 ] def f(): def g(): f.z = 3 f.z = 0 g() return f.z
214 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 23:40:57 ] >>> def f(): ... def g(): ... f.z = 3 ... f.z=0 ... g() ... return f.z ... >>> f() 3 >>> h=f >>> f=0 >>> h() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 4, in f AttributeError: 'int' object has no attribute 'z'
215 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 01:20:34 ] >>201 >(C or アセンブラ) and (Perl or Java or PHP or Python or Ruby) オッサンは窓際で朽ち果てていてね。
216 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 02:10:40 ] ああ、そういうもっと根本的なAPIの質問だったのか。なら .py ファイルを fopen なりなんなりで開いて文字列読んで Py_CompileString でコードオブジェクトにしてから PyImport_ExecCodeModule に食べさせてインポート完了。 .pyc や .pyo の場合は先頭の4バイトから long を読んで、 その値を PyImport_GetMagicNumber と比較してマジックナンバーをチェック。(別にチェックしなくてもいいけど) 次の4バイトは完全無視。 残りのバイト列を PyMarshal_ReadObjectFromString か PyMarshal_ReadLastObjectFromFile に 食べさせればコードオブジェクトが出てくるから、 それを PyImport_ExecCodeModule に渡せばインポート完了。 Py_DECREF とか忘れないように。
217 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 02:11:28 ] 自分の職場は (Fortran or C or C++) and (awk or Perl or Python or Ruby) だな
218 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 02:13:48 ] ていうか、ただでさえ Python 日本語サイト少ないのに、 C-API の話となるとほぼ皆無だよね。 標準ドキュメントが充実してるとはいえ、ちょっとした Tips が分からないのは苦労する。 ていうか、C実装の領域まで踏み込んで Python 使ってる人ってどれぐらいいるんだろうか。 みんなは CからPython使ってる?
219 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 02:25:53 ] ところで、 PySys_SetPath とか Py_VaBuildValue とかってマニュアルに載ってないよね? ソース見てて初めて気がついた。PySys_SetPath と同じ機能の関数つくっちゃった後だったよ。。。orz __import__ 関数を自分定義の関数でオーバーライドできるという事は、 ローカルにライブラリファイルを全く持たないで、import 文を実行したときに ネットワークから直接ファイルを読んでくるってのが可能だと思うんだ。 どっかのサーバに標準ライブラリその他をまるごと置いておけば、 インストール作業を全くすることなく、なおかつコンパクトなスタートアップスクリプトだけを 配布すればよい。これでなんか面白そうな事できないかな。。。。
220 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 02:36:58 ] >>218 SWIG とかで楽できる領域を越えたくない… 標準ドキュメントでいろいろ調べられる点については JNI よりマシだと思った
221 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 03:08:47 ] >>218 CからPythonを呼ぶのは、 Cで書くのマンドクセだから 本当にただ呼び出すだけだ。 PythonからCを使うのは、 Cのライブラリが目的だから これも呼び出すだけだ。 CでPython関数をモリモリは使わんなぁ。 >>219 一般的な問題を話させてもらうと、 ローカルとネットワークはやっぱり違う。 ローカルとネットワークの抽象化をライブラリ層で図ろうとしても、(←やりがいのある作業だ) 必ず実装がアプリ層に漏れてきて、面倒ごとが増える。(←何故か作業が増えている) 上手くいきそうでも、中々うまくいかない。(←みんながイラついてくる) そしてユーザー層まで漏れていく。(←どうしろというんだ) 例えばだけど、 たかが50行のソースを、 py2exe使って依存ファイルを詰め込んだ 巨大な10MBのexeファイルで配るのは非常に馬鹿馬鹿しいことだ。 つーか馬鹿にされる。 でも一番トラブルが少ない。←これ重要だと思うよ
222 名前:183 mailto:sage [2007/12/14(金) 04:01:51 ] >>199 助言ありがとうございます メタクラス、デコレータとかちょっと真剣に勉強してみます
223 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 07:08:06 ] >>219 import hook したいだけならサポートモジュールを作ったことがあるよ
224 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 10:27:15 ] 何でeasy_installを標準パッケージに入れないんだろ? 入れてこそ真価を発揮すると思うんだけど……
225 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 10:41:51 ] >>213 def f(): z=[0] def g(): z[0] = 3 z[0] = 0 g() return z[0]
226 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 13:11:15 ] >>225 ポール・グレアムはそうやっているね。 practical-scheme.net/trans/icad-j.html で、↓こういう反論が来たと。 practical-scheme.net/trans/IsPythonLisp-j.html
227 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 15:18:46 ] Guidoはレキシカル変数が暗示的な変数に見えたんだろうな。 そして self と __アンダ_バ__ を用意したわけだ。
228 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 16:01:05 ] つまり、こう言いたい訳ね。 >>> class F: def __call__(self): self.z = 0 def g(): self.z = 3 self.z = 0 g() return self.z >>> f = F() >>> f() 3 >>>
229 名前:デフォルトの名無しさん [2007/12/14(金) 16:08:05 ] Guido van Rossumって 日本語の発音だとどうなるの? ガイド・ヴァン・ロッサム?
230 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 16:32:20 ] >>229 田中太郎です。
231 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 16:43:52 ] ジード ファン ロスム
232 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:03:29 ] slashdot.jp/developers/article.pl?sid=04/07/24/1020202 グイド・ヴァンロッサム氏
233 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:31:30 ] ファンデルワールス力とかファンデルヴェルデンとか、オランダ人のvanはファンと読むのが慣例のような気がする
234 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:41:18 ] ドイツ語だからな
235 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 18:12:42 ] ふぁんでるわーるすか!
236 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 18:16:00 ] ふるへっへんど
237 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 18:30:16 ] ホィド・ファン・ロシューム
238 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 18:48:25 ] ドイツ語はvon
239 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 19:43:54 ] >>212 ○global z ×nonlocal z まぁ2.5にゃないんですけどね
240 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:35:56 ] フォン•ノイマン Von Neuman
241 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:45:21 ] ガイドさん治
242 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 08:49:58 ] >>239 ○と×、逆じゃない?
243 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 12:27:13 ] 初めてのPythonの古いほう(初版)を古本屋で買ってしまったんですが 第2版を買いなおした方が良いでしょうか? 2000〜2004の間にどれくらい、言語そのものの拡張と本そのものの 項目が追加されたのかが気になって…。
244 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 12:38:00 ] 基本を覚えちゃって、あとはマニュアルでも読めばいいんじゃね。 プログラム初めてなら新しい方がいいかもしれんね。
245 名前:243 mailto:sage [2007/12/15(土) 13:06:52 ] >>244 ありがとうございます。言語の経験はC++ぐらいなんですが、 Sconsを使っているアプリがWindowsでビルドできなくて 困ってました。 とりあえず、まずは買ってしまった本を読み切るようにします。
246 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 14:17:33 ] 他言語の経験あるなら古い本を読みきろうとか思わずに 公式チュートリアルをバッと読むのがいいとおもう
247 名前:243 mailto:sage [2007/12/15(土) 14:45:53 ] >>246 orz…。チュートリアルを先に見てればよかった…。 でもせっかくなんで両方見ながらやってきます。 どうもありがとうございます。
248 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 16:01:26 ] チュートリアルには、 他言語との違いについてもっと書いてくれるとありがたかった。
249 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 21:06:27 ] Python勉強する人って、他にどんな言語を知ってるんだろう? Javaが嫌になって流れてきた人とか、Perlの汚なさが嫌になった人とか、PythonにLispに類似したものを 見出した人とか、何もバックグラウンドがない素人とか.... どんな人が多いんだろうね?
250 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 21:16:57 ] AWK->Perl->Ruby->Python Javascript C ABEL,AHDL,VHDL ってとこでつね
251 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 21:33:39 ] >>242 うんその通り 今気付いたorz
252 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 21:35:58 ] MSX-BASIC → Python かじってみた言語ならマシン語のハンドアッセンブルから Smalltalk まで他にもたくさんあるけど 自分の目的で使うために習熟したのはこの2つだけ
253 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 22:07:29 ] >>252 オッサン(wwwwwwwwwwww
254 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 22:29:09 ] おっさんだからといって馬鹿にしてはいけない。 ゆとりの俺がいうんだから間違いない。
255 名前:デフォルトの名無しさん [2007/12/15(土) 22:31:26 ] (´-`).。oO(hsp...→vb→python
256 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 22:44:25 ] >>248 他言語との違い を挙げる時、どの言語の例を挙げるのが妥当なのか知りたかったんだけど、簡単には決められない気がするよ。 そもそも、チュートリアルなら下手に内容を詰め込みすぎない方が混乱を防げるような気がするね。 Pythonを勉強する時って、他言語での経験って役に立ったりするのかな?Python自体、すごくシンプルな 言語なので、経験はあるに越したことはないのかも知れないけど、必要ないような気もするね。
257 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 22:45:33 ] >>249 BASIC(高校の授業)->Fortran77(大学の講義)->C(卒研)->Java(趣味)->Python(生きる目的(ジョーク)) 少し体験してみたもの:C++、C#、Scheme、OCaml、その他 色々弄ってきたけどPythonが一番使いやすいね。インデントでブロックを表現する所なんて最高だよ。
258 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 22:53:50 ] >>248 ttp://pc11.2ch.net/test/read.cgi/tech/1192884897/379
259 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 22:56:18 ] BASIC→VB(講習)→C++→JavaScript→(DSLいろいろ) →PHP(CGIのため)→Perl(を覚えようとして逃げ帰る)→C++(再覚醒) →Python(ついに見つけたユートピア) って感じ。付き合った期間はC++が一番長いかな。 PrologやHaskellも興味はあるんだけど今の所使い道が無いので…
260 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 23:29:23 ] >>249 C/C++に疲れたひとですが
261 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 23:31:07 ] Ruby->D->Python
262 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 23:54:30 ] Pascal(6ヶ月)→ブランク期間(4年半)→Perl(6ヶ月)→Python(2年弱)
263 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 00:04:00 ] 252は伯爵?
264 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 01:13:23 ] C -> (Matlab) -> C++ and Python
265 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 01:22:04 ] IronPythonStudioがインストールできん…。 VisualStudio 2008 Shell Isolated Redistributable がないって言われる。入ってるのに…。
266 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 02:35:32 ] PL/I->MS-BASIC->アセンブラ(8086/68000)->C->C++->Perl->PHP->Java->Ruby->Python おじさん(笑)です。
267 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 02:50:21 ] 辞書を値でソートした上で取り出したいのですが、どういう方法がありますか?
268 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 02:56:07 ] >>263 誰?
269 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 03:11:20 ] d = {'z':1, 'x':2, 'y': 3} l = list(d.itervalues()) l.sort() print l l = d.items() l.sort(key = lambda v: v[1]) print l
270 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 03:44:24 ] >>> import operator >>> d = {'z':1, 'x':2, 'y': 3} >>> sorted(d.iteritems(), key=operator.itemgetter(1)) [('z', 1), ('x', 2), ('y', 3)]
271 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 05:01:34 ] HyperTalk->awk,AppleScript->Perl->Ruby,JavaScript,VBA->Python Pythonは独特だと思う。 Pythonから始めた人はスムーズに習得できたのか知りたい。
272 名前:デフォルトの名無しさん [2007/12/16(日) 06:17:53 ] pythonのforなんでこんなんなの? オライリー「pythonチュートリアル」にrangeで等差数列生成して回せって書いてるけど どう考えてもメモリの無駄じゃないの?
273 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 06:53:17 ] メソッドの中にselfってつけて変数かくと外からいじれるけれどこれはあんまり良くないことですか??
274 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 07:10:02 ] >272 つxrange まあpython3.0ではrangeもxrange相当になるけどな
275 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 07:26:08 ] >>274 ああ、こんなのあるんだ dd
276 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 14:07:31 ] for i in range(start, end): print seq[i] と for i in seq[start:end]: print i はどちらがいいのかな。スライス表記の方が すっきり記述できるけど、これってコピー操作入ってるんでしょ?
277 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 14:19:56 ] >>276 これはコードが簡素すぎるけど 実際ならindexを明示したいかどうかで変わるかな。 どちらもディープなコピーはないのでindexの生成分前者のが損だけど わかりやすさの前には軽微な事。
278 名前:デフォルトの名無しさん [2007/12/16(日) 15:32:09 ] >>> import __main__ >>> print "Hello" Hello >>> print dir(__main__) ['__builtins__', '__doc__', '__main__', '__name__'] を埋め込みで書くと int main(int ac, char** av) { shared_ptr<void> py(py_initialize(), py_finalize); shared_ptr<PyObject> main_(py_incref(PyImport_ImportModule("__main__")), py_decref); if(!main_) { std::cerr << "ERROR: module __main__ not found" << std::endl; PyErr_Clear(); return 1; } shared_ptr<PyObject> tmp( py_incref( PyRun_String( "print \"Hello\"\n" "print dir(__main__)" , Py_file_input , main_.get() , main_.get() )), py_decref ); return 0; } になると思うのですがうまくうがきません Exception exceptions.NameError: "name '__main__' is not defined" in 'garbage collection' ignoredと表示されcore dumpしちゃいます "print dir(__main__)"をコメントアウトするとHelloが表示され正常終了します
279 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 15:39:45 ] >>276 seqがタプルで、タプルのスライスの実装が工夫されてたら後者が得かな。 工夫って言うのはスライス元の一部を共有するってことね。ソース見たことないから実際はどうか分からないけど。
280 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 15:49:24 ] っ num*
281 名前:279 mailto:sage [2007/12/16(日) 16:11:01 ] 2.5のソース見てみた。一個一個コピーしてたよ。 特例として、スライス範囲がスライス元タプル全体と一致するならスライス元のタプルをそのまま返してた。
282 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 18:35:00 ] リストだったらどうなの?
283 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 18:41:53 ] スライスはコピーするとマニュアルに書いてある
284 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 21:44:03 ] 範囲指定ならseqスライス、ざっくり個数指定ならrangeしか知らなかったw 両方同じように使えるのに驚いて、初めてrange()の正書式読んだ… xrangeなる省メモリ代替(代わりにDocによれば用途外だと重い?)も知れて、 まっこと有意義な一日
285 名前:デフォルトの名無しさん [2007/12/17(月) 01:06:45 ] www.unixuser.org/~euske/doc/python/python-lisp-j.html ここにpythonはlispの数十倍遅いって書いてるんですがマジですか?
286 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 01:36:28 ] 速度は実測が基本
287 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 02:05:35 ] 日本語訳の時点で5年前の記事だしな
288 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 04:14:28 ] LispはCより速いらしいからしょうがないよね
289 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 04:43:24 ] 関数型だから十分ありえるんじゃね? プログラム構造やメモリ操作の見通しがたち易いからコンパイル時も実行時も最適化がめっさ効く。 だてに何十年も研究されてないし。
290 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 04:59:02 ] Lispってそんなスゲーの? やってみようかな・・・
291 名前:デフォルトの名無しさん [2007/12/17(月) 05:39:55 ] The Django Book www.djangobook.com/en/1.0/
292 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 08:51:57 ] >>285 あんまり参考にならないけど、それでも数十倍の開きは付いてるね。 shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=python&lang2=sbcl Python を使うなら速度は気にしない方が良いよ。
293 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 09:19:10 ] >>285 しんやまの書く記事を信用するなよボケ(wwwwwwww
294 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 09:46:41 ] Lisp が速いというより Python が遅いだけなんだけどね
295 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 11:13:47 ] ここに突っ込まないのはお約束ですか >定性的にみれば、Python はインタプリタ型の Lisp と同じくらいの速度に見える。 だが Lisp をコンパイルしたものと比べると明らかに遅い。
296 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 11:30:40 ] なんで今更lispなんだYO! 今じゃ相当なマニアしか使ってねーっつうの
297 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 11:52:35 ] >>295 まぁ普通はコンパイルするものだし。 Pythonで速度を上げられないのは、 バイトコードを動かしていることと 名前解決の辺りかな。 仕様と強く結びついている部分だから これ以上の向上の余地もないと思う。 もっとも他人から否定されるのは嫌なのだがw
298 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 12:43:14 ] >>296 30年前よりはマイナーだが、10年前よりはメジャーだ。変な話だが。
299 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 14:28:42 ] 最近RubyからPythonに移ってきたのですが、初歩の初歩でつまづいています。 よくある正規表現を使った文字列置き換えで、置き換え対象がちょっと複雑な時には どのように書けばいいんですかね。 import re s = "jskljaksljaj\njslkajskja\n\n" lst = re.compile(r'(js|ja)').split(s) for i, x in enumerate(lst): if 'js' in x: lst[i] = '$$ js is here $$' elif 'ja' in x: lst[i] = '$$ ja is here $$' print ''.join(lst) とかやってみましたが、どう考えても綺麗ではないように思えます。
300 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 14:57:53 ] import re print re.sub('(js|ja)', lambda mo: '$$ js is here $$' if mo.group(0)=='js' else '$$ ja is here $$', "jskljaksljaj\njslkajskja\n\n") ↓に何とか厨という罵り言葉がくる悪寒
301 名前:デフォルトの名無しさん [2007/12/17(月) 15:00:36 ] ワンライナーとか言ってる奴に限って基本的なことが理解できていないことが多い。 ワンライナー厨は典型的な中二病。 大抵のワンライナーはDQNレヴェルのスクリプトを一行にして得意気になってるアホです。 見づらいとか分かりづらいといった意見を読めないアホが悪いと無視するマジもんのアホです。 別にワンライナー以外が高尚でもなんでもなくただワンライナーがDWNなのです。 というか誰もワンライナーがそんないいもんだと思っちゃいないっていうかなんていうか
302 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 15:04:08 ] 別に慣れだとおもうけど。sql文なんかは一気にバーッと書くのが普通だし。
303 名前:デフォルトの名無しさん [2007/12/17(月) 15:25:22 ] import re s = "jskljaksljaj\njslkajskja\n\n" print re.sub('(js|ja)', lambda mo: '$$ %s is here $$' % mo.group(0), s) lambdaのとこよくわからんけどまねしてみた
304 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 17:31:45 ] ああああ、すいません例示が悪かったです。 if〜のところはもっと複雑で、できればメソッドに切り出したいんです。 そういう方法はないんでしょうか。
305 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 19:26:35 ] >>300-301 自演にも程があるw
306 名前:デフォルトの名無しさん [2007/12/17(月) 21:13:24 ] pythonでマルチバイトの文字数を取得する方法について調べています。 test=u'日本語' print len(test) のように、変数宣言時にuをつけることで、取得できることは確認いたしました。 Ploneなどで、test=request.get('test',None)のように取得した変数を、マルチバイト文字として カウントするにはどのようにすればよろしいのでしょうか。 よろしくお願いします。
307 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 21:40:06 ] >>306 test=u'日本語' --------------- ←ここで分けて考える。 print len(test) 後ろのtestはどういう性質のものなら適合するのか。(具体的には何Objectか) 戻って u'日本語' はどういう意味のコードか。
308 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 22:19:55 ] Ploneって書いてある時点で終了っぽいな。 本当にありがとうございました。
309 名前:デフォルトの名無しさん [2007/12/17(月) 22:37:05 ] 306です。 >307 ありがとうございます。 以下のようにやったらできました。 test=request.get('test',None) print len(unicode(test,'utf-8') u'日本語'というのは文字列定数を定義する場合で、エンコーディングを明示的に指定 することで、len()関数が判定できるってことなんでしょうか。 とりあえず、できたんでありがとうございます。
310 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 00:39:50 ] 2.5の日本語のドキュメントってありますか? 翻訳プロジェクト見ても 2.3→2.4 が終了しただけで 2.5については一切書かれていないので・・・
311 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 01:18:53 ] おまえに任せた
312 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 01:39:05 ] マジか
313 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 03:18:52 ] >>310 ボクからもお願いします( ´人`)
314 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 05:44:25 ] pythonでchopってどうやるんですか?
315 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 05:50:59 ] ここは2.5ドキュメントを1文づつ訳すスレになりました 以下、どうぞ
316 名前:デフォルトの名無しさん [2007/12/18(火) 08:15:43 ] xinetdにサービスを登録しようと思い以下のようなスクリプトを書きました。 サーバに送信した文を[]で囲んで返すというものです。 が、なぜかクライアントのrecvで受信待ちになってしまいます。 クライアントの通信先をechoに変えたところ、recvは正常に受信し、文字はちゃんと表示されました。 またサーバのsyslogには、正しくprint [hogeron]と記録されています。 現象から見ると、どうもサーバのprintで、ちゃんと送信されていないっぽいです。 os.environ['PYTHONUNBUFFERED'] = '1' で、バッファしないように設定しているのですが… どうすれば正常に動かせますか?
317 名前:デフォルトの名無しさん [2007/12/18(火) 08:16:24 ] 【サーバ】 -- import os,sys,syslog os.environ['PYTHONUNBUFFERED'] = '1' line = sys.stdin.readline() if line.endswith('\n'):line = line[:-1] result = '['+line+']' print result syslog.syslog('print '+result) -- 【クライアント】 -- import socket host = 'localhost' port =6363 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect((host,port)) s.send('hogeron') str = s.recv(1024) print str s.close()
318 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 08:54:04 ] >>315 >ここは2.5ドキュメントを1文づつ訳すスレになりました 「310の翻訳作業を監視するスレ」の間違いだろう。
319 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 09:12:55 ] 2.5の翻訳は、差分ツールで2.4との変化分だけみつけて、そこだけピンポイントで訳せばいいよね。 mac で使える差分ツールない?標準で着いてるファイルマージは、 Leopard だと起動エラーが起きる。。。。。。クリーンインストールしたのに。
320 名前:316 mailto:sage [2007/12/18(火) 11:10:34 ] クライアントからソケットでsendする時にcrlfを付けてないからでした unixはlfだけなのにネットワークではcrlfがないと駄目なんですね〜
321 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 11:57:04 ] >>320 それはたまたまネットワークライブラリがCRLFで一区切りとしてくれただけで 一般的なTCP通信でその前提はなりたたないから。 sokcetを生で使うならあくまでバイト列な非同期通信として扱わないと。
322 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 12:37:29 ] >>314 strip?
323 名前:[:-2] mailto:sage [2007/12/18(火) 16:47:20 ] strip は違うだろ
324 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 17:28:11 ] >>323 -2じゃなくて-1じゃね? >>322 まーchompだったらrstrip()だけんど。
325 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 22:14:27 ] seq切り落とし処理から見れば、\n文字で一つなのか
326 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 22:36:55 ] 全くプログラミングした事無いんだが ちょっと興味があってPython勉強しようと思う。 そこで、おすすめの書籍なぞある? 環境はWin。
327 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 22:41:12 ] >>326 「即効!Pythonプログラミング」上平哲著
328 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 22:41:44 ] >326 >116
329 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 22:48:54 ] >>319 WindowsなのでExamDiffで比較してみたけど どうでもいい、タグの大文字→小文字とか lay-out → layout みたいな修正が多くて確認が面倒くさそうだった
330 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 22:50:02 ] >>327 、328 ありがとうございます 本読んで頑張ってみる。
331 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 01:00:00 ] chopは str[:-1] chompは str.endswith('\n') and str[:-1] or str だとおもう。 (実用するかはともかくとして
332 名前:デフォルトの名無しさん [2007/12/19(水) 02:28:29 ] import文を羅列で書いていて、 あるモジュールを使わなくなった時、 そのモジュールのimportを削除し忘れることってあるじゃん 結果無駄な読み込みが発生してしまう そういうのを防ぐためのいい方法はありますか?
333 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 02:37:25 ] >>331 chomp は str.rstrip('\r\n') だろ
334 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 03:39:23 ] pythonて組み込みオブジェクトの拡張できるの? 文字列に自家製メソッド追加したり。
335 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 03:47:01 ] >>229 pythonチュートリアルによるとグイド・ファン・ロッサム
336 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 04:28:47 ] >>334 できない。
337 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 08:04:43 ] class str_ex(str) じゃだめなの?
338 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 09:05:14 ] >>327 とりあえず書いておくわ。 作者乙。
339 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 12:16:48 ] >>332 pycheckerでチェックできると思う
340 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 13:08:32 ] だれかGILを取ろうと考えているチャレンジャーはいないのか?
341 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 13:09:35 ] >>337 それでいいと思う
342 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 15:48:13 ] >>340 昔やったらかえって遅くなったんじゃなかったっけ?
343 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:20:21 ] >>340 STGの神プレイヤーがどうかしたのか?
344 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 17:56:58 ] >>343 WIZがどうかしたのか?
345 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 18:32:01 ] GILといえばKI
346 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 22:02:52 ] >>342 www.artima.com/weblogs/viewpost.jsp?thread=214235
347 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 23:30:39 ] def makecounter(): number=0 def _makecounter(x): if x=="init": number=0 elif x=="inc" : number=number+1 elif x=="dec" : number=number-1 return number return _makecounter counter=makecounter() print counter("init") print counter("inc") print counter("init") print counter("dec") ちょいと質問すみません。 こんなことやろうと思ったんだけど出来ません。 pythonじゃ無理? lispやperlと違ってクロージャの中の変数いじれない?
348 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 01:16:42 ] >>212 からの流れ参照 pythonではそういう時はCounter classを作る counter = Counter()
349 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 01:19:06 ] >>226 が答えに近い
350 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 01:25:09 ] def makecounter(): number = 0 def _makecounter(x): global number if x=="init": number=0 elif x=="inc": number=number+1 elif x=="dec": number=number-1 return number return _makecounter counter=makecounter() print counter("init") print counter("inc") print counter("init") print counter("dec") print counter("dec")
351 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 01:49:23 ] ありがとうございます。 なるほどクラスを作るのか。
352 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 01:51:36 ] Python コードを、対応するCソースに変換するツールってない? for i in seq: print i ってやると、 for (Py_ssize_t i=0; i<PyObject_Size(seq); i++) { PyObject* o = PySequence_ITEM(seq, i) PyObject* s = PyObject_Str(o); PySys_WriteStdout(PyString_AsString(s)); Py_DECREF(s); Py_DECREF(o); } って自動で出力してくれるような。
353 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 01:58:43 ] import hoge def f(a, b): hoge.piyo(a, b) ってやると PyObject* f(PyObject* args) { PyObject* a = NULL; PyObject* b = NULL; PyArg_ParseTuple(args, "OO", &a, &b); PyObject* module = PyDict_GetItemString(PyImport_GetModuleDict(), "hoge"); PyObject* func = PyObject_GetAttrString(module, "func"); PyObject* result = PyObject_Call(func, "(OO)", a, b); Py_DECREF(result); Py_DECREF(func); } って自動で出力してくれるような。
354 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 02:00:16 ] これさえできれば、Cコンパイラの力を借りて Python コンパイラが簡単に出来ると思うんだ
355 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 02:43:06 ] Pyrexの中身でも調べてみたら
356 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 09:27:41 ] つーかPyrexが答えじゃないの?
357 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 09:37:10 ] Pyrexはじまったな(ww
358 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 11:23:31 ] なにその強化ガラス?
359 名前:デフォルトの名無しさん [2007/12/20(木) 15:27:10 ] 何で皆そんなにpythonに詳しいんですか? そういった仕事に就いてるからですか? それとも趣味ですか? もし趣味だとしたら変態です
360 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 15:35:15 ] 趣味ですよ あなたが無能なだけですよ
361 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 15:59:53 ] wikipedia のリフレクションの項、 python の例がないんだ・・・。 誰かかいてくれないか
362 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 16:45:34 ] # リフレクションなし foo = Foo() foo.hello() # リフレクション class_ = globals()['Foo'] method = getattr(class_(), 'hello') method() おれこの種の用語嫌いなんだよな。RTTIって言い方やめたの?
363 名前:デフォルトの名無しさん [2007/12/20(木) 16:46:07 ] >>360 このヘンタイがっ!!
364 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 17:21:31 ] >>362 RTTIとリフレクションは意味が違う
365 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 19:13:32 ] PyrexよりCythonのほうが書きやすいよ
366 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 21:48:38 ] ('foo', 1, 'bar', 2, 'baz', 3, ) というtupleから {'foo': 1, 'bar': 2, 'baz': 3} というdictを得たいんですが、いい方法ありますか。
367 名前:デフォルトの名無しさん [2007/12/20(木) 22:04:30 ] もっといい方法があるかもしれないけど lst = list(('foo', 1, 'bar', 2, 'baz', 3, )) dic = {} while lst: dic[lst.pop()] = lst.pop()
368 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 22:05:40 ] T = ('foo', 1, 'bar', 2, 'baz', 3) D = dict((T[x],T[x+1]) for x in xrange(0,len(T),2))
369 名前:347 mailto:sage [2007/12/20(木) 22:42:20 ] def makecounter(): number=[0] def _makecounter(x): if x=="init": number[0]=0 elif x=="inc" : number[0] +=1 elif x=="dec" : number[0] -=1 return number[0] return _makecounter counter=makecounter() print counter("init") print counter("inc") print counter("dec") >>226 からのリンク先を見てクロージャでカウンタ作れました。 pythonってクロージャの中の変数書きかえれないので numberに無名配列のポインタを入れてそこを操作するって感じなんですね。 mapの中に副作用持ちのlambda式入れられないとかlispとはかなり違うんだな。 うーん、pythonってなんか変w
370 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 23:53:17 ] >>> t = ('foo', 1, 'bar', 2, 'baz', 3, ) >>> dict(zip(t[::2], t[1::2])) {'baz': 3, 'foo': 1, 'bar': 2}
371 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:25:11 ] forとかwhileの中で関数作るとクロージャの回避が結構面倒だな デフォルト引数に入れて解決した >>369 なんでclassにしないの?
372 名前:347 mailto:sage [2007/12/21(金) 00:42:06 ] >>371 lispに馴れてるのでとりあえずクロージャを作ってみたかったのです。
373 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:50:24 ] >>367 ,368,370 サンクス。 特に370の方法はいいな。
374 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 13:35:27 ] generatorをenumerateすると、generatorとして作った意味がないことに気づいたんですが、 generator用のenumerateみたいなのは標準では付いてないんですかね?
375 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 13:40:01 ] >>374 izip + count
376 名前:374 mailto:sage [2007/12/21(金) 13:55:47 ] ごめ、調べてたら、すでにenumerateはリスト返してなかった・・・ どうもバージョンの古い脳内pythonの話だったポイ・・・orz
377 名前:デフォルトの名無しさん [2007/12/21(金) 14:59:36 ] pythonてコードの前部分で定義した関数しか呼び出せないの? phpですら定義の順番に関係なく呼べるのに・・・
378 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 15:14:56 ] そうか
379 名前:デフォルトの名無しさん [2007/12/21(金) 15:19:46 ] スクリプト言語のくせにそんなのイモすきない? みんな許せるの?
380 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 15:27:07 ] 組込みクラスにメソッドを追加したいのですがどうやればいいのですか? class int: def fuga(self): return "fugafuga" じゃ無理みたいです
381 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 15:42:06 ] >>380 ・Rubyでやれ ・>>337
382 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 15:46:02 ] その前になんでそんなことしたいのか、だ
383 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 16:29:55 ] >>379 それはエラーになってほしい人もいるからなんじゃない? Pythonが変数と関数の名前空間が一緒なのと関係あるのかな。 ちなみにRubyもエラーになる。PerlとJavascriptとHaskellはオッケー。 >>382 えー既存クラスにメソッド追加って普通にしない?
384 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 16:32:04 ] 自前のにならたくさんやるがなぁ
385 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 16:39:35 ] ちなみにどうするんですか?チュートリアルを読んだのですがよくわかりませんでした><
386 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 17:01:28 ] def fuga(i): return "fugafuga" print fuga(42)
387 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 17:10:12 ] 『Pythonで学ぶプログラム作法』買ってみた 今から読んでみる
388 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 17:43:48 ] >>376 ,383 モジュールがロードされるタイミングでいろいろしたい人がいるからじゃない? if os.name == "nt": def pathnomalization(p): ほげほげ else: def pathnomalization(p): ふがふが みたいなコード書いたことあるけど。
389 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 17:49:09 ] >>386 全然違うんですけど・・・。 Pythonianの人って、標準とは別名のメソッドを呼びたくなったらどうするんですか?
390 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 18:04:06 ] 関数使うよ
391 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 18:13:47 ] >>389 PEPを書く
392 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 18:20:21 ] >>391 ひえーマジすか Pythonは禁欲的だと聞いていましたがこれほどとは・・・ メソッド定義にself書いたり、気持ち悪い規則が多いなあ rubyに比べてリスト内包表記と、ライブラリが多いことと解釈系がやたら速いのと、 endを馬鹿みたいに書かなくていいのとhelp()が好きだけど、他はとにかく不便だなあ。 どの言語もいいところと悪いところがありますね。
393 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 18:24:16 ] 標準とは別名のメソッド呼びたくなる状況がわからん件
394 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 18:27:01 ] なんか気持ちイーらしい
395 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 18:53:41 ] 意味のないことに固執したがるのはバカの特徴だな。
396 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 18:55:07 ] 一つの言語でやり方を覚えたらそこから抜け出せなくなる脳は不便だ 精進
397 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 19:26:07 ] self批判するやつがいるがthisとか暗黙の変数がいきなり出てくる言語とかあり得ないキモイ正気を疑う 反論は認める
398 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 19:49:03 ] 質問させてください HTMLParserってShift-jisのページでも使えますか? urllib2.urlopenで取得した2chのメニュー(左フレーム)をそのままfeedしたら junk charactersがなんとかってエラーがでました
399 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 19:53:52 ] >>398 不可能ではないけどキミにはムリ。
400 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 20:03:16 ] unicodeに変換しる。 もっても解析は出来ないと思う。 タグを振ってくれると楽なんだがなぁ。
401 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 20:06:07 ] >>397 Σ(´Д` ) 工エー。せっかくスクリプト言語なのに・・・ _doc__とか__name__とかもダメなの?どっちかというと、printキーワードとかのほうが キモいけどなあ。おまえそれどっから呼んでるのかと。
402 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 20:06:35 ] >>398 ずばりなのがココにあるけど www.freia.jp/taka/blog/169
403 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 20:12:30 ] >>398 再現コード貼ってちょ
404 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 20:40:40 ] >>401 printはビルトイン関数になるし早くなれ __name__,__file__,__builtins__はモジュールを生成する側がglobalsに突っ込んでるその辺はすまんかった
405 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 22:43:44 ] >>377 >pythonてコードの前部分で定義した関数しか呼び出せないの? >phpですら定義の順番に関係なく呼べるのに・・・ 通常は def main(): f() g() def f(): print 'foo' def g() print 'bar' main() と書くから、だれも問題と思ってない。 >>379 >スクリプト言語のくせにそんなのイモすきない? >みんな許せるの? PHPのは関数の定義、Pythonは関数を生成して変数へ代入、Rubyは関数定義文の実行。 スクリプト言語といえど、それぞれ根本的に思想が違うんだから、どうしようもない。 それが分からないお前がいちばんあわれ。
406 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 22:45:35 ] 全ての動的言語はLispのスキンにすぎない
407 名前:398 mailto:sage [2007/12/21(金) 23:10:37 ] >>399 ,400,402,403 レスありがとうございます >>402 に書いてある方法で成功しました というかこのページ開いてたのに下まで見てなかった・・・ お騒がせしてすいません
408 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 04:50:36 ] >>379 >>401 「スクリプト言語」に限定したことではなくルールの問題に過ぎない
409 名前:デフォルトの名無しさん [2007/12/22(土) 11:20:43 ] pythonでオブジェクトのインスペクトってどうやるんですか?
410 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 11:36:56 ] >405 よくある相互入れ子型の再帰の練習問題みたいなのを 書こうとして「アレ?どうやんだっけ?」と思ったことはある…
411 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 11:37:19 ] インスペクト? Rubyのobj.inspectのことだとするなら 呼出側はrepr(obj)。自作クラスに定義したいならdef __repr__(self):で。
412 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 12:03:01 ] >>411 それです ありがとうございました inspectモジュールのところ見て(?o?)となってました
413 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 12:49:56 ] EOFをあらわすエスケープシーケンスってないんですか?
414 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:34:57 ] false
415 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 18:10:56 ] >>413 これのこと? '\x00' '\0'
416 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 19:26:25 ] >>413 DOSじゃないなら、ないんじゃない? '¥0'は文字列の終わりであって、EOFはまた意味が違うからね。
417 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 19:31:59 ] EOFなんて聞いたのは.mag以来だ
418 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 19:36:16 ] >>410 > よくある相互入れ子型の再帰の練習問題みたいなのを それは問題なく何の工夫もなく書ける 関数定義の位置が関係するのは関数やメソッドの外から呼ぶ場合
419 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:23:13 ] 2.3だと 2 << 30が-2147483648なんだけど、 2.5だと2147483648Lになる。 こうなる理屈は分かってるんだけど、 2.2以前の32 bitを前提としたcodeを2.5に移植するときに、 どうやったらうまく動くんでしょうか。 >>185 を参考にして int((2 << 30) & sys.maxint) としても、結果は0になってしまう。
420 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 01:08:24 ] 海外じゃ今月はこんな話題で盛り上がっていたみたいだね。 "Python" is not a good name, should rename to "Athon"
421 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 01:14:29 ] よく分からないけど下ネタ?
422 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 01:47:22 ] groups.google.co.jp/group/comp.lang.python/browse_thread/thread/7d9a4f8e3e936dac/a27e04b7365fc0a6 これかね、
423 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 02:42:01 ] >>419 >>> hex(sys.maxint) '0x7fffffff' >>> hex(2 << 30) '0x80000000L'
424 名前:デフォルトの名無しさん [2007/12/23(日) 09:40:55 ] pythonて使用メモリの上限を作ることできますか? スクリプトと思って気軽に書いてたら永久ループがあったみたいで out of memoryになってしまい その影響でmysqlのファイルがぶっ壊れててんやわんやでした(; ;)
425 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 11:16:32 ] >>424 OSの仕事。 ulimitしとけ
426 名前:419 mailto:sage [2007/12/23(日) 12:55:39 ] >>423 strになっちゃいますよね。 そこからどうすればいいですか? int()もstring.atoi()もhexになっちゃうと効かないようで。
427 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 14:31:50 ] >>426 移植元のコードの意図に寄るんじゃない?
428 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 14:49:54 ] よくわからんけど、 eval or int(str, 16) ?
429 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 14:51:44 ] 先週1週間python-3000に投稿が無かったそうですね。py3大丈夫か? 年末だから忙しいだけかな・・・
430 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 15:21:56 ] >>429 アーカイブを見る限り投稿はあるみたいだけど。 順調に開発が進んでいるから投稿する必要がないだけじゃないかな。 まあリリース10日前になって作者が「これ以外に問題点はありますか?」なんていう頓珍漢なメールを投げる、 プロジェクトよりは大丈夫だろwww
431 名前:423 mailto:sage [2007/12/23(日) 18:15:32 ] >>426 sys.maxintはMSBをsignにしてるから31bits分しかonにならないと言いたかったんだが分かって貰えなかったようで マスクしたいなら決め打ちでやれ intが16bits幅のCコンパイラでビルドされたpythonがあるかも知れないぞ
432 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 00:24:36 ] Python でオンラインオセロ大会できないかな? WEBにスクリプトを投稿すると、 それまでに投稿されている全てのスクリプトと自動的に勝負が進行して、結果がでるみたいな。
433 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 00:31:46 ] >>432 そういうプログラムを是非pythonで! てか「初めてのPython」って本買ったんだが、 いまだにクラスすら出てこないorz
434 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 00:34:37 ] Pythonで世界征服できないかな? WEBにスクリプトを投稿すると、 世界中のサーバをハックしまくって意のままにコントロールできる、みたいな。
435 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 00:36:19 ] class Com: def step(board): """ board は int[10*10] の配列からなり、 0行(列)と9行(列)はセンチネルとして常にゼロを保持する 実際に勝負に使うのは1行(列)から8行(列)の部分。 -1, 0, 1 の値をとり、0は何もない状態、-1と1はそれぞれ石が置かれている状態を示す step 関数が呼ばれたら自分が次ぎに置くX, Y 値をタプルで返す ””” raise "This method is an abstract" classOothello: m0 = __import__("com0.py") m1 = __import__("com1.py") com = m0.Com() com_ = m1.Com() board = [0]*10*10 while True: x, y = com.step(board) if x, y == 0, 0: print "PASS" else: board.put(x, y) com, com_ = com_, com
436 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 00:57:25 ] Pythonでワンライナーってできる?
437 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 01:26:47 ] 質問の意味が分からん
438 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 01:52:58 ] 一行プログラムの事じゃないか
439 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 02:04:14 ] perl -eって意味ならpython -c
440 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 02:08:43 ] >>439 ありがと。 -cで、普通複数行で書くようなプログラムも1行で書ける? 行の区切りがどうなるのかなと思って。 Pythonはインデント使うから。
441 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 02:18:25 ] >>433 俺もその本買って勉強してるが 分厚すぎてめちゃくちゃ重い 机から落として足直撃したときはちょっと泣いた
442 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 02:34:34 ] >>440 普通に書けばおk tests% python -c "f = [1,2,3,4,5] for i in f : if i % 2 == 0 : print 'even' else : print 'uneven' print 'ところで今日はクリスマスイブですよ、おまえら'" uneven even uneven even uneven ところで今日はクリスマスイブですよ、おまえら
443 名前:デフォルトの名無しさん [2007/12/24(月) 04:03:03 ] >>442 ちっとも一行じゃないワンライナーだね(w。 >>440 じゃないけど、 勉強になりました。ありがとう。
444 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 06:27:43 ] いままで Ruby 使ってたんだけど Python に乗り換えることにする とりあえず windows の方は 拡張子 .rb で python 起動されるようにした
445 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 06:29:57 ] コマンドラインから入力することをワンライナーって言うの? pythonは、対話型実行が良くできてるから、どんな小さい実験とかでも、 対話型を起動させたほうが良いような気がする。
446 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 06:32:13 ] >>444 .py で python が起動されるようにしたほうが良いと思うよ
447 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 06:34:23 ] >>446 Windowsならインストール時にそうなってるんじゃないか
448 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 06:42:37 ] なんか海より深い勘違いをしてそうだな
449 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 07:49:35 ] .rb については今までの負の資産があるので 結構色んな所から呼んでるんですよ (CGIで後悔してたりとか別のコマンドから利用してたりとか) しばらくはファイル名はそのまま残しておかないとまずいので .rb をスケルトンにしてそこから .py 呼んで delegate でもいいんですけど 直接 .rb のナカミを python コードにしてしまった方が早いかなと
450 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 07:54:32 ] >>449 ココはあなたのチラシの裏ではありません
451 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 07:58:05 ] ln -s hoge.py hoge.rb で一発ジャマイカ
452 名前:419 mailto:sage [2007/12/24(月) 09:39:25 ] >>427 , 428, 431 レスありがとうございます。 32bit目まで使う必要があるプログラムです。 ビット演算した結果は、fctrl.ioctl()の第二引数に与えます。 0x80000000L => 0x7fffffff というような変換さえできればいいんですが、 普通2.5だとどうやって32bitの演算をCのように行うんでしょうか。 >>431 >intが16bits幅のCコンパイラでビルドされたpythonがあるかも知れないぞ 自分の環境でデバイスの操作を考えているので、 他環境では動かなくても大丈夫です(動けばなお良い) ただし、現在2.3で運用しているんですが、 将来的に2.5で動かそうと改造を考えており、 そのためにLの扱いで躓いています。
453 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 11:18:23 ] 2<<30がどう使われてるかがわからない。30は変数?即値? 変数だとすると、2<<28,2<<29まではビットはひとつしか立ってないが、 2<<30==0x7fffffffということは、最上位ビットの関係でいきなりビットが 反転するがそれでいいの?即値ならそれこそ0x7fffffffを直接使うところだと思ふ。
454 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 11:35:43 ] def c_like(n): if n & (1 << 31): n = (1 << 31) - (n % (1 << 31)) - 1 return int(n) print hex(c_like(0x80000000L))
455 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 11:36:08 ] def c_like(n): if n & (1 << 31): n = (1 << 31) - (n % (1 << 31)) - 1 return int(n) print hex(c_like(0x80000000L))
456 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 11:38:47 ] >>452 コードに問題がある。書き直せ。
457 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 12:12:37 ] たしかに、 >2.3だと >2 << 30が-2147483648なんだけど、 この動作に本質的に依存したコードってなんか危ない気がする・・・
458 名前:419 mailto:sage [2007/12/24(月) 12:18:33 ] >>453-456 元は pyv4l.sourceforge.net/pyv4l/video4linux/__init__.py なんですが、これをちょこちょこ自分で書き直したものです。 LinuxのCのheaderをそのまんま移植したものなので、 ベタ書きで書き直すとメンテが大変になるので避けたいところ。 こっから落とせます。 internap.dl.sourceforge.net/sourceforge/pyv4l/pyv4l-0.0.1.tar.gz Python 2.3だと、 >>> import video4linux >>> help(video4linux) (snip) VIDIOCGAUDIO = -2144963056 2.5だと、 VIDIOCGAUDIO = 2150004240L となります。 >>454-455 それだと、0x7fffffffを取り出せますが、 long longじゃなくてlong intにしたいんです。 2147483647ではなく-2147483648にしたい。
459 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 12:59:33 ] >long longじゃなくてlong intにしたいんです。 これでわかった。 Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> (-2147483648) & (1 << 31) == (1 << 31) True def c_like(n): if (1 << 31) <= n < (1 << 32): n = -n return int(n) print c_like(0x80000000L)
460 名前:デフォルトの名無しさん [2007/12/24(月) 13:31:00 ] >>449 rubyのどこが気に入らなかったんですか? pythonはじめたばかりですが 組み込みオブジェクトにメソッド追加したりできるところとか rubyも魅力的だと思うんですが
461 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 13:34:18 ] また君か
462 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 13:46:01 ] またって? rubyに関する質問したのは初めてですよ
463 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 13:48:26 ] また(空気の読めないRuby厨)君か
464 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 14:18:42 ] >>463 いくらなんでも無理ありすぎw
465 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 14:45:44 ] 他の言語はじめたばかりじゃわからないだろうから わかるまで黙ってると良いと思います
466 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 16:03:41 ] この板なんでID無いの?
467 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 16:35:20 ] 技術系の板なので、誰がレスしたかよりもレスの中身を重視しているから
468 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 17:16:31 ] Vとか機種依存文字がページに含まれてると UnicodeDecodeError: 'shift_jis' codec can't decode bytes in position 176-177: illegal multibyte sequence となって上手くいきません。 import urllib uconn = urllib.urlopen('pc11.2ch.net/tech/dat/1196426978.dat ') for e in uconn.readlines(): e = unicode(e, 'sjis') elem = e.rstrip(u'\r\n').split(u'<>') print ''.join(elem) 一度ローカルに保存してテキストエディタなどでutf-8に変換する以外で この問題を回避する方法はあるでしょうか?
469 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 17:19:46 ] >>275 ddでこけました UnicodeDecodeError: 'shift_jis' codec can't decode bytes in position 169-170: illegal multibyte sequence
470 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 17:26:19 ] Windowsなら'shift_jis'の代わりに'cp932'を使う。とか?
471 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 17:26:43 ] >>468 sjisをcp932でいけるんじゃね
472 名前:468 mailto:sage [2007/12/24(月) 17:39:02 ] 事故解決 新キャラクタセット cp932 / eucjpms www.mysql-partners-jp.biz/techinfo/tech_01.html PHPからMySQL4.1とか5.0とか5.1とかに接続すると文字化けする : ::yossy.blog:: yossy.iimp.jp/wp/?p=60 PHPで「(はしごたか)」「ア(たつさき)」が文字化ける(2) : ::yossy.blog:: yossy.iimp.jp/wp/?p=58 sjis != cp932 cp932 == sjis + NEC 特殊文字 + NEC選定IBM特殊文字 + IBM特殊文字 なんですね。 というかweb上のサービスはいい加減UTF-8に統一しようよ…
473 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 18:23:47 ] >436 python ワンライナー で具具レバ… 超人に会えるでしょう
474 名前:デフォルトの名無しさん [2007/12/25(火) 01:29:30 ] >>468 e = unicode(e, 'sjis', 'replace') e = unicode(e, 'sjis', 'ignore')
475 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 02:38:16 ] >>474 逃げちゃだめだろw
476 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 03:11:09 ] 拡張子をpywにして os.system('dir > d.txt') を実行すると一瞬だけ DOS窓が立ち上がるんですが これを出さずに実行する事は可能でしょうか?
477 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 03:22:05 ] >>472 ユニコードは漢字文化圏を尊重せずに文字数切り詰めて"統合"したりするから 統一しようにもできないわけで。 コンピュータ中心に世の中回ってる訳じゃないからね
478 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 04:02:27 ] >>476 パイプ
479 名前:468 mailto:sage [2007/12/25(火) 04:17:49 ] >>474-475 >>477 dくす ttp://diary.atzm.org/20040523.html 何でreplaceやらignoreなんてオプション指定があるんかなと不思議に思って 調べてみたら、フィルタリングするような用途で便利なんですね。 というかクロスプラットフォームを意識するとsjis+replaceで書いた ほうが汎用性がありそうでした > unicode(elem, 'sjis', 'replace') d
480 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 05:46:02 ] Python2.5.1のインストーラー版を使っていますがC拡張モジュールをコンパイルするにはVS2003がないと駄目ですか? VS2008かMingwでコンパイルしたいんですが。
481 名前:デフォルトの名無しさん [2007/12/25(火) 06:11:21 ] The Art of UNIX Programmingに スピードが必要な時には、PythonはCのプログラムに変換できる というようなことが書かれていたのですが どうやればいいですか?
482 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 06:13:01 ] FILE* とかやりとりするとダメなんだっけ オレはDDKに入ってるmsvc8相当でコンパイルしてるけど
483 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 11:26:55 ] >>476 import subprocess subprocess.call("dir > d.txt", shell=True)
484 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 11:28:45 ] >>480 漏れはVC6でCOM利用モジュール作って使ってるけど、問題なく使えてる。
485 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 13:04:47 ] ところで公式で配布されてるのは何でコンパイルしてるん? [MSC v.1310 32 bit (Intel)] 1310言われても分からない
486 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 13:11:14 ] >>485 VC6 Ver12.00 VC2002 Ver13.00 VC2003 Ver13.10 *これ VC2005 Ver14.00 VC2008 Ver15.00
487 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 13:47:31 ] >>480 MinGW (gcc 3.2.3) で拡張モジュールのコンパイルできてるよ。
488 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 17:22:32 ] >>478 >>483 無事に解決する事が出来ました。 ありがとうございました。
489 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 22:10:44 ] >>480 ttp://python.matrix.jp/apps/code_blocks.html
490 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 01:42:49 ] Python 使える無料スペースってどこかに無い?
491 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 01:46:48 ] xrea
492 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 01:56:59 ] seq0 = seq1 seq0[:] = seq[:] seq0 = [i for i in seq1] seq0=[]; for i in seq1: seq0.append(i) ってどれも同じ処理してる?
493 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 02:17:26 ] 処理は見たまんまでちがうし結果も異なる。 seq0 = seq1は同一オブジェクトを指すことになるが 他はリストを再構築してるので異なるオブジェクト(コピー)になる。
494 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 04:41:10 ] seq0[:] = seq[:]
495 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 06:49:25 ] seq0 = seq1 浅いコピー seq0[:] = seq[:] 普通のコピーになってるが、seq0が初期化されてる必要がある。 seq0 = [i for i in seq1] 普通のコピー seq0=[] for i in seq1: seq0.append(i) 普通のコピー
496 名前:419 mailto:sage [2007/12/26(水) 08:48:24 ] 最終的に、演算子を自分で定義しました。 レス下さった方々、ありがとうございました。 class int32(int): def __int2long(self, n): if n >= 0: return long(n) else: return long(0xffffffff - n - 1) def __long2int(self, n): if n & 0x80000000: # negative return int(-2**31 + (n & 0x7fffffff)) else: # positive return int(n & 0x7fffffff) def __and__(self, y): return self.__long2int(self.__int2long(self) & self.__int2long(y)) def __or__(self, y): return self.__long2int(self.__int2long(self) | self.__int2long(y)) def __lshift__(self, y): n = self.__int2long(self) << y return int32(self.__long2int(n)) def __rshift__(self, y): n = self.__int2long(self) >> y return int32(self.__long2int(n))
497 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 08:52:16 ] >>490 オマエのパソコン
498 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 10:52:27 ] >>496 >>> from ctypes import c_int as int32 >>> 2 << 30 2147483648L >>> int32(2 << 30).value -2147483648
499 名前:419 mailto:sage [2007/12/26(水) 11:18:35 ] >>498 ああ、そんなのがあるんですか。 ありがとうございます。知りませんでした。 ただ、2.3でも2.5でも動くようにしたいので、 2.3が消え去るまでは>>496 の方法でやろうと思います。
500 名前:デフォルトの名無しさん mailto:ruby1.9 [2007/12/26(水) 16:00:50 ] 2.3が消え去るまでって・・・ オレなんか未だに 1.5.2 で動くコードを書かされてる。 つまり消えない。
501 名前:468 mailto:sage [2007/12/26(水) 16:53:04 ] そういえば最近読んだironpythonの本にも>>474 と encodeとdecodeの書式で取り扱うみたいに書いて あったな…物忘れが激しすぎな罠d >>500 ちょっと関連するかもしれないのだけど PyrexとCythonのコードdiff取って読んでみたら なんとなくだけどCython微妙 三項演算子、切捨て除算、#ifdef、+=、とか対応してる けど、なんかコードが助長になってると思う。 error_goto_if_null() とか module.py_result() とか isingmodel: pyising.pyx@4ecf71b2c0b0 hg.sharesource.org/isingmodel/file/db7dd01cdc26/pyising.pyx Cに変換する用途なんだからそんなの別にいいじゃんとか 言われると、その通りだとは思うけどさ というかPyrexのドキュメントがわかりにくすぎるのが いけないと思うんだ。わかりやすく書こうよ... orz
502 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 16:58:29 ] ごめん#IfdefはPyrexでも対応してるな
503 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 20:27:19 ] >>501 わかりにくすぎる
504 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 02:07:45 ] 質問です コードを読むときのエディタは 何を使ってますか?
505 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 02:20:06 ] ファイル単位で読むときはVim プロジェクト単位で読むときはEclipseかな。 われながらつまんない回答だとおもう。
506 名前:デフォルトの名無しさん [2007/12/27(木) 08:12:03 ] 自分用ライブラリってどこに配置するのがいいですか?
507 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 08:38:58 ] >>506 どこでもいい。$HOME/lib/pythonとか。 あとは$PYTHONPATHを設定するだけ。
508 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 09:08:54 ] djangoでファイルのアップロード試してみたんですが 50MBくらいまでならなんとか平気で動くんですけど 100MB近くになるとサーバー自体が重たくなって 500MBクラスのものを試すと数十分固まったあげく 最後にエラーで中断されてしまいます python恒例のオンメモリで全部処理する罠にはまってるのでしょうか? どなたかうまく回避しているかたがいらっしゃいましたら教えていただけないでしょうか
509 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 09:26:10 ] え…pythonってオンメモリで全部処理するの…?
510 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:08:37 ] 実装依存の問題を言語のせいにするのはゆとり教育の弊害?
511 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:15:25 ] ヒソヒソ( ゚д゚)パイソン(゚д゚ )オンメモリ…
512 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:20:58 ] 話がよく分からんのだがディスクスワップのこと? OSの仕事だと思うんだけど
513 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:36:03 ] これはひどい www.youtube.com/watch?v=adN4Zeed-L0
514 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 11:48:07 ] python の source を色つきでカッコよく印刷するのって 何を使ってますか? できれば unix 環境で使えるもの希望
515 名前:デフォルトの名無しさん mailto:508 [2007/12/27(木) 14:48:57 ] 聞いた場所が間違ってたようですので移動します
516 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 15:38:31 ] >>515 つEmacs
517 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 16:34:17 ] py2htm とかてきとーにいってみる
518 名前:516 mailto:sage [2007/12/27(木) 17:16:51 ] アンカー間違った >>514 つEmacs
519 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 17:22:04 ] >>517 あー、難しく考えてた。 htmlとcss使えばいいのか。
520 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 18:42:24 ] >>519 PyXR: Package c:\python24\lib\site-packages\win32\lib pyxr.sourceforge.net/PyXR/c/python24/lib/site-packages/win32/lib/ とか見た目がよいかんじなのでおすすめ [pythonpath] usePythonpath = 0 exclude = include = c:\Python25\Lib\xml という具合にsetting.cfgに指定してあげてpython webserver.pyで localhost:8088/ にアクセスすればすぐ試せるよ excludeとincludeの指定の仕方がワケわからんからはまると思うけど たぶん簡単にできるかも。というか俺が知りたい…>>指定の仕方 なんかexcludeで弾いてやらないとsite-pacage下の全ファイルを ドキュメントに変換し始めて止まらなくなったりすることが… ## pageText.pyも関係あるみたいだったので追記 if __name__ == '__main__': pt = pageText("/pysrc", write=open("output.htm", "w").write) pt.writeFileText("c:\\python25\\lib\\xml\\__init__.py") #pt.writePathText("/c/python25/lib/") #pt.writeRootText()
521 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 23:14:07 ] >>514 a2ps --prolog color がオヌヌメ。
522 名前:デフォルトの名無しさん [2007/12/28(金) 05:57:41 ] reprって何の略ですか?
523 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 08:24:53 ] representation(表現)
524 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 08:42:33 ] ありがとうございます
525 名前:デフォルトの名無しさん [2007/12/28(金) 09:07:44 ] 環境変数PYTHONPATHをpythonコード内で設定しても効かないのでしょうか? import os os.environ['PYTHONPATH'] = パス って感じにしてからimportしてるのですが うまくimportできません。 コード内でモジュールサーチパスを指定するにはどうしたらいいですか?
526 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 09:32:02 ] sys.path
527 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 09:47:48 ] >>526 ありがとうございました
528 名前:デフォルトの名無しさん [2007/12/28(金) 12:17:29 ] MatchObjectオブジェクトとか RegexObjectオブジェクトとか くどくね? 何でオブジェクト二回言うの?
529 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 12:58:47 ] SCSIインターフェース
530 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 13:28:40 ] ということは Object を略して O にすればそんなに気にならなくなるわけだな MatchO オブジェクト マッチョ!!
531 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 13:56:36 ] >>529 たしかにSCSIインターフェイスっておかしいね
532 名前:デフォルトの名無しさん [2007/12/28(金) 14:02:12 ] リストの末尾への追加が list.append('hoge')か list += ['hoge']しかないのって冗長じゃね? PHPなら $list[] = 'hoge' という書き方ができる。 PHPより冗長ってどんだけ〜
533 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 14:15:58 ] >>531 おかしくはない。
534 名前:デフォルトの名無しさん [2007/12/28(金) 14:59:41 ] import〜と from〜import〜の使い分けってどうやってますか? 何かコツなどあれば教えて下さい。
535 名前:デフォルトの名無しさん [2007/12/28(金) 15:05:45 ] >>508 Python はリスト処理言語なんだから そんな低レベルな用途に使っちゃ遺憾
536 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 15:19:30 ] ageてるのはみんな釣りなん?
537 名前:デフォルトの名無しさん [2007/12/28(金) 15:26:50 ] urllib.urlopen()でwikipediaのページを取得すると、 Error: ERR_ACCESS_DENIED というエラーになります。 どうも拒否られているみたいです。 urllib.urlopen()を使ってwikipediaを取得するにはどうしたらいいですか?
538 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 15:27:23 ] >>534 後で読みやすい方で書けばおk from A import X, Y これは、ソースの先頭を見たときに X と Y を使っていることが分かる。 import A これだとソース本文を見たときに A.hoge() A.boge() といった処理がAに依存していることが分かる。
539 名前:537 [2007/12/28(金) 15:43:49 ] urllibの説明に 現在のところ、以下のプロトコルだけがサポートされています: HTTP、 (バージョン 0.9 および 1.0) と書かれていました。今時http1.0!? これってバーチャルホストすらできないプロトコルですよね もう古いのかと思い urllib2にしたら、403 forbiddenになりました googleは問題なく取得できるのですが… pythonはwikipediaに嫌われている?
540 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 15:50:46 ] >pythonはwikipediaに嫌われている? 自分の力量不足をpythonのせいにしやがって。 氏ねよ屑。 User-agentを送ってないから弾かれているだけだろ。
541 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 16:19:11 ] >>540 確かにUAをセットしたら取得できました ありがとうございました
542 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 16:21:34 ] HTTPライブラリでデフォのUser-Agentがないのもめずらしなとおもって試してみたら デフォの"User-Agent: Python-urllib"がブラック扱いされてるようだぜ? とりあえず>>540 は便所掃除で風説の流布は勘弁してやる。
543 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 16:33:53 ] やっぱり嫌われてるんじゃん・・・ ブラック扱いってどんだけ〜 グイドがgoogleの従業員だからか
544 名前:デフォルトの名無しさん [2007/12/28(金) 17:05:24 ] pyscripterでコード書いてるんですが エディタ部の色が白いので目が痛いです 色をかえる方法あったら教えて下さい
545 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 17:08:48 ] pythonでアタックツール書いた奴がいるんじゃね?
546 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 17:11:03 ] uaなんていくらでも詐称可能だから ブラックリスト入りさせることにどれだけの効果があるのか疑問 やはり嫌がらせ的なものとしか考えられない・・
547 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 17:39:29 ] cgiの拡張子を.spamにしたのが効いたんじゃね
548 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 18:04:49 ] ホワイトリスト方式なんじゃねーの?
549 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 18:15:26 ] pythonに限らず、libwww-perlとかもけっこう弾かれているそうな www.hazama.nu/t2o2/archives/002711.html
550 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 18:21:03 ] >>540 wwwwww
551 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:23:35 ] Pythonでユニコード文字列という場合、文字コードのutf-8とはまったく関係ないのでしょうか? 一般的にはunicodeの実装がutf-8ですよね?
552 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 00:23:34 ] >>551 全く関係ないことはないが、関係ない。 unicodeは文字コード、utf-8はエンコーディング方式。
553 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 00:24:03 ] Googleの次はWikipediaか。 バーボン送りにしとけ。
554 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 00:28:59 ] from って予約後?
555 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 00:32:24 ] うん
556 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 00:34:32 ] >>551 >Pythonでユニコード文字列という場合、文字コードのutf-8とはまったく関係ないのでしょうか? 関係ない。 Pythonでいうユニコード文字列は unicode object と u'foo' / u'\u1234' 形式のリテラル表現あたりのこと。 >一般的には unicode の実装が utf-8 ですよね? PerlやRubyとかのエンコーディングはね。 Pythonは UCS-2かUCS-4。 Windows, JavaはUTF-16。 (Python以外はうろ覚えだけど)
557 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 00:40:34 ] >>> import keyword >>> "from" in keyword.kwlist True
558 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 02:49:52 ] >>549 uaを変更することすら出来ない程低レベルなスパマーが多いから uaのフィルタリングも一定の有効性はあるってことかな
559 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 08:57:17 ] >>552 >>556 ありがとうございます。 確認できて安心しました。 unicode(text, "utf-8") utf-8の文字列をユニコード文字列に変換する とかで混乱してましたがすっきりしました。
560 名前:デフォルトの名無しさん [2007/12/29(土) 09:06:44 ] 他言語だと 長い文字列を、改行を挟んで記述することがありますが pythonだと改行が意味を持つのでうまく出来ません $str = "hogehogehoge" . "mogemogemoge" . "pogepogepoge" みたいな記述法をpythonでするにはどうしたらいいですか?
561 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 09:17:26 ] >>560 .の変わりに\を使う
562 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 09:25:53 ] >>561 oh ありがとうございました
563 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 10:21:33 ] >>558 つまり >>540 は spammer を増やした訳だな
564 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 11:47:19 ] ドキュメンテーション文字列って、文字列だから、 中間コードにされても実際にメモリは占有するよね? コメントの方がよくね?
565 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 12:22:35 ] 対話環境でhelp()で見れるという利点もある。 まあメモリの占有が問題になるほど大量にドキュメントを書くこともないだろうし。
566 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 12:25:13 ] >>564 勝手に -OO オプションでも付けてろよ
567 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 13:35:32 ] PythonでCGI書いてるんですが、コンソールにログを出力する方法はないでしょうか? 今は print "Content-type: text/html;charset=utf-8\n" の後に出力してHTMLを返すようにしてるんですがこれだと面倒なので・・・
568 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 15:34:06 ] content-type:〜 書かなかったらCGIじゃないじゃん
569 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 16:25:33 ] デバッグで途中の変数の値とか表示させたいだけなんですが。
570 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 16:32:38 ] CGIなのにコンソール?
571 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 16:33:43 ] WinならOuptutDebugStringに出してODSモニタで見られそうなもんだが 具体的には知らん。
572 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 17:00:11 ] >>567 def debug_msg(msg): open('/tmp/debug.log', 'a').write('** debug: ' + msg + '¥n') を定義して debug_msg('var='+repr(var)) とかして使う。 そしてコンソールで tail -f /tmp/debug.log とすれば、デバッグメッセージが表示される。 本格的にするにはloggerかなんかを使うんだろうけど。
573 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 17:15:37 ] >>569 cgitbって言うの使えば、エラー起きた前後の関係ありそうな変数の中身 自動で表示してくれるよ。 import cgitb; cgitb.enable()
574 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 18:40:08 ] >>572 closeはいつすればよいですか?
575 名前:デフォルトの名無しさん [2007/12/29(土) 18:44:46 ] >>572 flush はいつすればよいですか?
576 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:08:48 ] 質問。 ファイルからバイナリデータを読み込んで 1バイト毎の数値のリストとして扱いたいんですが 文字列から数値への変更方法がわかりません。 すいませんが教えてください。
577 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:10:57 ] chr ord
578 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:24:48 ] >>577 ありがとうございます! できました!
579 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:37:23 ] >>574-575 どちらもしなくていいですよ
580 名前:デフォルトの名無しさん [2007/12/29(土) 20:12:20 ] >>574-575 def debug_msg(msg): open('/tmp/debug.log', 'a', 0).write('** debug: ' + msg + '\n').close()
581 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:20:13 ] そもそも毎回open()するのが。。。 CGIならstderrに出せばWebサーバのログに残るし たいがい出力先もサーバの設定で変えられる。
582 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:25:23 ] Pythonで動くRubyやPerlって誰か作ってないかな。すごく欲しくなってきた。 変態っぽい環境だけど、将来需要ありそうな予感。
583 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 21:35:12 ] 変態的という以外の利点を教えてくれ
584 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 21:46:26 ] execvで充分
585 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 21:57:31 ] >>583 Linux/Unixの各所に残っている腐れ縁のPerlのツールをPythonで 動かせれば、Perl猿人を入れなくて済む。 それとCRubyよりCPythonの方が規模というか依存が少ないので 小が大を兼ねる状態になっていい感じと思った。 これが実装できればグーグルに入社できるかもね!
586 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 22:09:21 ] >>582 Rubyなんて絶対に必要ないだろwww
587 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 00:35:14 ] Is perl interpreter that written in python perl or python ?
588 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 00:58:34 ] >>587 その英語ネイティブに言っても通じないわ(wwwwwwwwwwwwwwwwwww
589 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 01:16:02 ] ネイティブが書かない英語だが、「まるでわからん」と言い出すネイティブがいたら、 そいつは単なる馬鹿か、あるいは「レスって何ですか?」とか言っちゃうタイプだな。
590 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 01:22:30 ] わかりやすく2文に分けろ。
591 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 01:26:14 ] perl interpriterの後は that(which) is written in Python か writenn in Python じゃね? それと、Per、Pythonみたいな固有名詞は大文字から始めるんだぜ。 おまいの英語、中学生からやり直した方がよくね?
592 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 01:27:24 ] >>589 文法的に間違っている英語が分からないと馬鹿呼ばわりされるのか. よい勉強になったよ.
593 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 01:28:39 ] なんつーか・・・ム板ってスルー力ゼロだよな・・・
594 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 01:47:30 ] 高卒の俺が考えてみた。添削おね。 Is it Perl or Python which is a Perl interpreter written in Python? 冗長だから、Is it Perl or Pythonで一回切りたい。見出しっぽく。 Is it Perl or Python, a Perl interpreter written in Python? みたいな書き方っていかんのだろうか。 ttp://jp.youtube.com/watch?v=VezP6yqhs9k
595 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 02:03:08 ] インタプリタがどの言語か、ってとこから可笑しいだろ…
596 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 02:12:26 ] いや、そんな直訳で受け取られても…。 >>587 は>>582 に対する皮肉として書かれたんだろうし。
597 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 02:15:56 ] 文法的に間違っている英文なんて直訳すらできないだろ(wwwwwwwwwwwwww
598 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 02:23:46 ] firefoxでURLを開くことを試しています。環境はUbuntu7.04です。 成功 os.system("firefox yahoo.co.jp ") subprocess.Popen(["firefox", "yahoo.co.jp "]) subprocess.call(["firefox", "yahoo.co.jp "]) 失敗 os.spawnlp(os.P_WAIT, "firefox", "yahoo.co.jp ") os.spawnlp(os.P_NOWAIT, "firefox", "yahoo.co.jp ") なぜspawnだとうまくいかないのでしょうか。
599 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 02:25:17 ] >>596 だから中学生からやりなおせって(WWWWWW
600 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 03:49:15 ] print 'a','b' ってやるとaとbの間に空白が入って「a b」って出力されるけど この空白を挿入させないようにする方法ってありませんか?
601 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 03:55:36 ] print 'a' + 'b' 区切りで半角スペースが入るのは仕様ってどっかに書いてた。
602 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 04:15:01 ] >>601 トンクス。 仕様なら諦めます。
603 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 04:19:54 ] printうんぬんの話題を見てて思うのだが、 これって対話モード時のリターン値の"表示"の延長であって、 プログラムの"出力"用途じゃない希ガス。
604 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 04:54:00 ] >>598 質問からは少しずれるけど 標準ライブラリにwebbrowser.open(url)っていうのがあるよ。 2.5からはブラウザのタブにも対応してる。
605 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 07:25:37 ] 前スレ pc11.2ch.net/test/read.cgi/tech/1192884897/ 547 :デフォルトの名無しさん:2007/11/18(日) 21:51:04 printで一文字ずつ表示させると、間にスペースであいてしまうのはなぜ? 例) x="hoge" for y in x: print "%c" % ord(y), 出力: h o g e 548 :デフォルトの名無しさん:2007/11/18(日) 21:56:38 print i, j, k, l としたときに見やすいから 549 :デフォルトの名無しさん:2007/11/18(日) 22:10:06 printは主にデバッグ用だから くっつけたいなら、print''.join("%c" % ord(y) for y in x) 550 :デフォルトの名無しさん:2007/11/18(日) 22:15:11 sys.stdout.write()でもいいよ
606 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 13:20:54 ] Python3.0では print(1,2,3) # 1 2 3 print(1,2,3,sep='') # 123 print(1,2,3,sep='|' # 1|2|3
607 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 14:34:19 ] )
608 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 14:37:01 ] python で書かれた 2ch ブラウザってありますか?
609 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 14:46:45 ] 昔あったな
610 名前:デフォルトの名無しさん [2007/12/30(日) 16:02:26 ] webprogramを書くにあたっての python特有の強みって何ですか?
611 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 16:03:10 ] 特にありません
612 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 16:56:29 ] WebアプリケーションでPHPとPythonどっちがいい?
613 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 17:16:26 ] PHPに決まってるだろハゲ
614 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 17:23:36 ] PHPはなんちゃって仕様が多すぎていややもう
615 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 17:24:11 ] あえて挙げるならASP
616 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 17:31:46 ] >>614 kwsk
617 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 20:52:49 ] 外人のPythonの発音がどうしてもパイパンにしか聞こえません><
618 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 21:04:20 ] >>617 耳がわるいもしくは脳内エロ辞書が充実しすぎ。
619 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 21:13:01 ] >>480 VS2008だとRuntimeErrorが発生してVS2003でコンパイルしてくださいというエラーメッセージが表示される。
620 名前:デフォルトの名無しさん [2007/12/30(日) 21:17:56 ] >>600 どれでも好きなの使へ print 'a''b' print 'a' 'b' print 'a'+'b' print '%s%s'%('a','b')
621 名前:デフォルトの名無しさん [2007/12/30(日) 22:07:35 ] Microthreadを使いたいんだけど、Stackless Pythonとgreenletだとどれぐらい速度が違うの? たぶんStacklessのほうが速いと思っているんだけど。
622 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 22:15:48 ] >>612 ttp://q.hatena.ne.jp/1198821703
623 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 22:18:22 ] またruby厨かよ、もういいよ
624 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 10:02:20 ] pythonでmdbに接続するにはどうしたらいいのでしょうか? win32com?
625 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 10:12:03 ] 「pythonで」の「で」って何よって話 import win32com.client import adodb OpenOffice.org Scripting with Python
626 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 10:28:03 ] 説明不足ですまんこ pythonを使ってMSAccessを操作したいのです。 INSERTなどはどうしたらいいのでしょう? ちなみにみなさん開発環境ってなに使ってます? やっぱりテキストエディタ?
627 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 10:33:38 ] >>626 ttp://xwave.exblog.jp/6474694/
628 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 10:46:12 ] pythonからmdb操作とか需要ないのかね・・・ 説明少なすぎて解りません。 実力がないだけか
629 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 10:50:58 ] win32comで繋ぎに行くだけであとはVBからやるのと大差ないんだが そのwin32comの説明が少ないという罠 単にDB使いたいだけならSQLite使っちゃうしね
630 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 11:14:25 ] 既にmdbを使用してる状況なのでSQLLiteっていう選択肢はないので・・・ 詳しい説明が掲載されている場所はないですかね?
631 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 11:18:44 ] つか、何が分からんのか分からん。
632 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 12:07:24 ] xwave.exblog.jp/m2007-02-01/
633 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 12:22:37 ] cn = win32com.client.Dispatch('ADODB.Connection') cn.Open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb') cn.Execute(u"insert into 日本語テーブル (fileda, fieldb, 日本語フィールド) values (%d, '%s', '%s')" % (5, '6', u'七')) rs = win32com.client.Dispatch('ADODB.Recordset') rs.Open(u'select * from 日本語テーブル', cn, 1, 3) while not rs.EOF: print '%d, %d, %s, %s' % (rs.Fields('id').Value, rs.Fields('a').Value, rs.Fields('b').Value, rs.Fields(u'日本語フィールド').Value, ) rs.MoveNext() rs.Close() cn.Close()
634 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 12:54:31 ] おぉ、コード書いてもらえると解りやすか! pythonはじめたばかりだけど、みんなどんな用途に使ってる?
635 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 13:09:58 ] バッチ処理に関数計算機にGUIアプリにwebアプリに… ようするになんでも。
636 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:07:17 ] テキスト処理周りでいろいろ。
637 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 18:19:39 ] 単調な作業とかをこなすときに、小さなツールガリガリ書いてる
638 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 19:22:50 ] 僕たちが従事するドカタ仕事には欠かせないアイテムですね!
639 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 20:43:29 ] 俺はドカタ仕事はJava使ってるので Python弄ってると心が癒される
640 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 20:58:23 ] >>639 ドカタ乙(wwwwwww
641 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 21:29:41 ] >>639 会社で年越しでつか?
642 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 21:52:43 ] そうです
643 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 22:03:04 ] 使い捨ての低賃金労働者が、会社で年越しか。 Pythonで憂さ晴らしでもしないと、やってられないよね。
644 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 22:12:36 ] 職業人はマ板いってくれんか
645 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 22:14:06 ] そうそう。 ここはニートでPython覚えればGoogleに入れると信じて疑わないメルヘン専用のスレですよ。
646 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 23:07:05 ] x メルヘン o メンヘル
647 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 23:32:03 ] 幾スレにも渡ってメルヘンと書き続けて来た>>645 乙 よいお年を
648 名前: 【大吉】 【233円】 mailto:sage [2008/01/01(火) 00:07:51 ] ことよろ
649 名前: 【ぴょん吉】 mailto:sage [2008/01/01(火) 00:09:32 ] ことしもPythonよろ
650 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 00:11:36 ] あけおめ Python3000とそれに隠れがちなPython2.6に期待
651 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 00:22:47 ] 会社で年越しでつ ことよろ
652 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 04:45:59 ] Python2.99999....とかで止まらないかなぁ。
653 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 05:41:10 ] 2.999... という循環小数は 3 と等しいんだぞ。
654 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 05:44:51 ] 2.9.6 2.9.7 2.9.8 2.9.9 2.9.9.1 2.9.9.2 ... 2.9.9.9 2.9.9.9.1 ... 2.9.9.9.9
655 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 06:10:11 ] 2.999....999... == 3.1.0 !!!
656 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 07:31:33 ] おめでとうございます
657 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 09:02:20 ] >>655 それはない 2.6の次の2.7で2.xシリーズは終わりで、 メンテナンスリリースが2.7.1.8.2.8... という妄想ならしたことある
658 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 09:25:33 ] なにそのMETAFONT
659 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 13:56:21 ] >>652 それはRubyで期待しろwww
660 名前:デフォルトの名無しさん [2008/01/01(火) 21:27:28 ] py***/&+
661 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 18:23:26 ] defFnRule = "([0-9][0-9])__(.*)" ldir = os.listdir( os.getcwd() ) for fn in ldir: chk = re.match( defFnRule, fn ) if chk != None : matchList = re.findall( defFnRule, fn ) newName = matchList[0] + "_" + matchList[1] print "New:>> [%s]" % newName こんなコード書くと、 newName = matchList[0] + "_" + matchList[1] ここで怒られるんだが… 連結できるのはstrではなくタプルだ…って意味が良く分からんのですが…。
662 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 18:48:30 ] >>> import re >>> L = re.findall('(\d\d)__(.*)', '00__foo.txt') >>> L [('00', 'foo.txt')] >>> L[0] + '_' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can only concatenate tuple (not "str") to tuple
663 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 19:07:16 ] >>662 ありがとう。いろいろいじってて、どうも根本的に二重リスト?みたいになってるのは理解した。 n0 = matchList[0][0] n1 = matchList[0][1] newName = n0 + "_" + n1 print "New:>> [%s]" % newName こんな感じで稼働するのは確認。 でも、なんで二重になったのか、よくわからん。 python、悪くない感触なんだけど…うーん。
664 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 19:10:33 ] newName = chk.group(1) + "_" + chk.group(2)
665 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 19:45:40 ] >>663 defFnRule内に複数のグループがあるから >>> import re >>> re.findall("(.)(.)", "123456789") [('1', '2'), ('3', '4'), ('5', '6'), ('7', '8')]
666 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 20:11:31 ] >>663 つまりこんな感触だといいわけだなw re_once : あるかないかだけの正規表現モジュール(新規) re : re_onceに加えてnまで使える正規表現モジュール(既存) ついでにfor、rangeとかも増やした方がいいな for_once : 0(実行しない), 1(1回だけ実行) for_n : 0(実行しない), 1(1回だけ実行), n(n回実行) range_0() : []を返す range_1() : [0]を返す range_n(n) : [0,1,2...n-1]を返す
667 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 20:11:39 ] >>664 も書いてるように いっぺんre.match()して結果chkを得てるのに またre.findall()するのは如何なものか。
668 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 20:16:38 ] >>661 ldirとかchkとか、わざわざ変数用意するの読みづらくね?
669 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 21:06:21 ] その前に正規表現をコンパイルしろよ
670 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 22:21:47 ] >>661 どこ出身だ なんかmicrosoftのコードを思い出すんだが
671 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 22:24:30 ] 二重になってる理由は、つまり正規表現の処理対象にListが取れるから、でいいのかなぁ いや、>>665 見ると違うなぁ…。というか、これは俺が正規表現良く分かってないのも原因かな。 >>669 ごめん。でもファイル名の一括変更やるだけの作り捨てscriptだし、ついでにお試しでpython使っただけだから。 >>668 否定しないw >>667 言われてみればその通りだなぁ。 要は条件に合わないファイルを無視しようとして、なんとなく書いてたらああなっただけで、他意はない。
672 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 22:25:51 ] >>670 色々。C++、Java、PHPとか。 でも出身という話になると…N88BasicとかVBとかってあたりかも。 とりあえず、動いたんで、もう消えまする。 ありがとうございました。>皆様
673 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 22:43:24 ] re.match でコンパイルされてキャッシュされるからいいじゃない
674 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 23:30:38 ] >>673 前から気になってたんだけど、re.matchとかre.searchってコンパイルした正規表現をキャッシュしてくれるのかな? それってどっかに書いてある?
675 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 23:41:02 ] ソースに書いてある。
676 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 23:42:27 ] re モジュール見るとキャッシュしてるね ただ _MAXCACHE = 100 を越えるとキャッシュを全てクリアするようになってる
677 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 23:43:01 ] re.py: _cache = {} _cache_repl = {} _pattern_type = type(sre_compile.compile("", 0)) _MAXCACHE = 100 def _compile(*key): # internal: compile pattern cachekey = (type(key[0]),) + key p = _cache.get(cachekey) if p is not None: return p
678 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 11:01:39 ] keyの計算の手間ぶん損してない?
679 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 16:19:59 ] >>671 4. パターンにもっと力を www.python.jp/Zope/articles/tips/regex_howto/regex_howto_4 Python reモジュールで使える正規表現演算子 www.kt.rim.or.jp/~kbk/regex/pythonre.html >>> p = re.compile('(a(b)c)d') >>> m = p.match('abcd') >>> m.group(0) 'abcd' >>> m.group(1) 'abc' >>> m.group(2) 'b' >>> m.groups() ('abc', 'b') グルーピングまわりで躓いてると思う。match とか search の項目は 解説してるとこ多いけど よく使う findall はあまり解説されてない罠。 findall は厳密には正規表現にはカテゴライズされないからか…
680 名前:679 mailto:sage [2008/01/03(木) 16:50:03 ] >>671 ttp://kazamachi.blogspot.com/ >具体的には、ElementPathはXPathを分解するのにre.filndall()メソッドを使ってリスト >の要素としてタプルが含まれていることを期待しているのですが、IronPython 1.0.1の >re.findall()メソッドはリストのみを返すためにエラーとなります。 ごめんたぶんグルーピング関係ないw
681 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:12:25 ] なんという不思議レス
682 名前:679 mailto:sage [2008/01/03(木) 18:41:20 ] >>> re.findall("(.)(.)", "123456789") ## [Tuple(g(0),g(1)),…] [('1', '2'), ('3', '4'), ('5', '6'), ('7', '8')] >>> re.findall("((.)(.))", "123456789") ## [Tuple(g(0),g(1),g(2)),…] [('12', '1', '2'), ('34', '3', '4'), ('56', '5', '6'), ('78', '7', '8')] >>> re.findall("(..)", "123456789") ## [g(0),…] ['12', '34', '56', '78'] やっぱグルーピング関係あるかも orz
683 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 18:43:39 ] >>681 俺も勉強中なんよ(爆) スルーしる
684 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 19:05:09 ] ヒント: help(re.findall)
685 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 19:15:09 ] >>682 グループの数によって変わる。 グループなし、グループ一つはマッチリストかグループリスト >>>re.findall('test','testtesttest') ['test', 'test', 'test'] >>>re.findall('(tes)t','testtesttest') ['tes', 'tes', 'tes'] 複数のグループはグループをタプルで返してマッチしたものをリストで返す >>> re.findall('(t)e(s)t','testtesttest') [('t', 's'), ('t', 's'), ('t', 's')]
686 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 19:24:47 ] ((.)(.)) グルーピングが三つ揃っておっPython
687 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 22:32:54 ] 誰か使いやすい開発環境教えてちょんまげ
688 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 22:43:52 ] Pythonじゃないけど 某スレで脳内環境が最強だと話題になってた
689 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 22:45:37 ] クセのある環境ばかりで使いづらい みんなどんな環境?
690 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 23:06:50 ] >>689 テキストエディタ(emacs or vi)
691 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 23:10:37 ] クセありすぎだろそれ
692 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 23:47:05 ] 俺もvimなんだけど。最初はバカにしてたけど、 pythonに限って言うとかなり使いやすい。
693 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 23:53:56 ] idleとpydevを使ってます idleは軽くていいんだけど、補完がpydevに比べるといまいち ただpydevはstdinとかのエンコーディングがNoneになっていて 文字コードの変換とかしたらこけて、その解決法が良く分からないのが難しい このスレのPert20にその話題が出ているみたいなんですけど、誰か>>1 のまとめサイトに アップしていただけないでしょうか?
694 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 00:11:24 ] >>692 vimで補完できる??
695 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 00:23:08 ] 俺はxyzzyでpy-modeだな
696 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 02:41:50 ] ソースの中に日本語書かないならPythonWinで結構用が足りてる。
697 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 03:52:45 ] >>694 もちろん。
698 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 05:01:34 ] >>594 ようつべわらた
699 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 05:36:55 ] みなさん4tabですか?2tabですか?
700 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 05:51:50 ] デパは0.5mgでも4tabだと爆睡しちゃうので2tが限界かな
701 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 08:13:08 ] >>697 vimの補完てomni?
702 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 09:36:03 ] いろいろ試したけどPyDevの補完が最強
703 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 09:36:24 ] >>699 4タブ
704 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 10:22:11 ] >>702 Eclipseって起動もっさりしてね?
705 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 10:28:31 ] どんなIDEでも基本的にはモッサリしてる
706 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 10:35:09 ] Eclipseはプラグインしだい。 何も入ってないのを立ち上げたらびっくりするほど速かった。 立ち上げただけで何も出来なかったけど。
707 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 11:40:23 ] How many projects do you open in same workspace ?
708 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 13:24:54 ] >>707 14
709 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 13:25:59 ] Zero, I mean I'm on wintervacation NOW (wwwwwww.
710 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 14:11:25 ] みんなemacsかviだと思ってた ・・しかしpythonをeclipseで書くって凄いな。想像したことも無い なんか嬉しい事ある?起動もっさりでイラつかない?
711 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 15:48:38 ] >>710 CVSとかsvnとかとの連携が楽>eclipse
712 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 17:32:56 ] >>711 710はソースコード管理をしない人なんだよ。 その必要がないんだろう。 なぜなら(ry
713 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 18:29:14 ] emacs にも pcvs とか psvn とかあるのに…
714 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 01:11:59 ] >>710 さすがにviはないな。vimは良いと思うけど。 >>712 EclipseはJavaでは使うけど、他の用途では便利だとはおもわんなぁ。 cvs/svnクライアントも別にIDE連動である必要って感じないし。 でもまぁPythonはスクリプト言語にしては開発環境充実してるよね。 そうやってどれがいいとか選べるのも面白い。
715 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 01:45:36 ] vi
716 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 10:53:04 ] >>704 朝起きたら一度起動してずっとそのままだから
717 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 12:47:17 ] 「経験上、ほとんどのプログラマは以下の『宗派』のいずれかに分類される」 経験カルト 最適化カルト 簡単カルト 高速カルト 不確実性カルト 完璧カルト カーゴ・カルト ttp://slashdot.jp/developers/08/01/04/001246.shtml
718 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 15:37:07 ] 俺は完璧カルトか・・・
719 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 17:12:43 ] 元記事読んだけど、自分は簡単カルトだった。 Uncertainty Cultはカルトというよりはただの慎重派のような・・
720 名前:デフォルトの名無しさん [2008/01/05(土) 20:23:07 ] macでpythonを始めました. IDLEで日本語を扱えるようにするにはどうすれば良いですか? お願いします
721 名前:デフォルトの名無しさん [2008/01/05(土) 20:26:57 ] 質問板で聞いてきます スレ汚しすいませんでした
722 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 11:51:13 ] これから勉強するならバージョン3系と2系どっちがいい?
723 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:05:00 ] >>722 いまから始める程度の知識ならどちらも変わらない罠 安定しているor手に入っている処理系を使えばよかろ
724 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:51:39 ] 3で勉強は無理
725 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:54:13 ] Py2.0 から Py3.0 への移植に当たって / 演算子の挙動変更が一番怖い。 気づかぬところで何かが起こりそうだ
726 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 14:23:15 ] >>725 Introduction to Crunchy tutorial video - Crunchy - Learn: programming_tools, demonstration, open-source, cross-platform, interpreter, Python, interactive showmedo.com/videos/video?name=1430000&fromSeriesID=143 切り捨て除算//が、普通の除算/になるんだっけか どこに書いてあるんだ3.0の仕様とか,よくわからん
727 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 14:45:04 ] この辺りじゃね? ttp://www.python.org/dev/peps/pep-0238/ ttp://docs.python.org/dev/3.0/whatsnew/3.0.html
728 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:19:41 ] py3000のやること、やらないことリスト www.python.org/dev/peps/pep-3099/ www.python.org/dev/peps/pep-3100/
729 名前:デフォルトの名無しさん [2008/01/06(日) 16:06:13 ] Alarm clock と表示されて終了してしまう場合, 何が問題でしょうか? どの部分が問題なのかわからないので対処できずに困っています
730 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:17:37 ] 再現コードが張られないので対処できずに困っています
731 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:40:00 ] >>726 逆
732 名前:デフォルトの名無しさん [2008/01/06(日) 18:36:24 ] 「みんなのpython」 という本を買ったのですが 52pくらいで既に何をしてるか意味がわかりません。 そんな僕でも↑で挙げられていた「pythonで学ぶプログラム作法」 を理解することができるでしょうか? 他にも初心者に分かりやすい入門書があれば教えてください。
733 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:16:54 ] >>732 Pythonの前に一般常識や日本語を勉強した方がいいと思うぜ。
734 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:27:53 ] >>732 その本はたぶん一番易しい部類に入る。 もう一冊入門書を買うのは無駄だから、 何がわからないのか整理してからここで質問すべし。 あと対話型シェルでサンプルコードを試すこと。
735 名前:732 [2008/01/06(日) 20:51:17 ] ありがとうございます! 頑張って理解できるようにしてみますっ!
736 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:45:38 ] 便乗 初めてのPython買ったんですが、 表紙の絵の意味がわかりません。 なぜねずみなんですか?
737 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:51:34 ] Pythonクックブック(ウサギ)と並んで、蛇の獲物説が過去スレで言われていたな。
738 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:53:22 ] 日常の細々とした用途なら最初の50ページくらいで間に合うんだよ。 イテレータとかオブジェクト指向とかわざわざ使うこともない
739 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:09:59 ] プログラミングPythonはヘビだからそれで我慢しる あとはPythonシリーズ全部ヘビだと見分けが付かなくてよろしくないってのもあるかと >>738 なんて本の最初の50ページ?
740 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:12:52 ] >最初の50ページ 初めてのPythonならビルトインオブジェクトの項にすら入っていないな
741 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:37:56 ] みんPyで確認したらリスト操作の途中だった。 116ページまでは頑張ってみましょう。 みんPyは用例不足なんで、説明の手際はいいけど プログラムが初めての人にはイメージ沸きにくいね
742 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 02:53:09 ] ちょっと端末の再起動をpythonでやりたいのですが、どう書いたらいいのか教えてください
743 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 02:59:56 ] >>742 > ちょっと端末の再起動 ここをもっと環境含めて明示的に書いたら教えてくれるかも。
744 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 03:11:32 ] 携帯のsymbianってOS積んでるX01NKなんです。他のNOKIAでも同じなんですが。。。 WMだと.netで簡単にできたのですが、pythonでもやろうとおもって適当に連想できるコマンドで書いても再起動できないのでどのように書いたらいいのかと思いまして
745 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 03:20:22 ] X01NKって法人向け専用でしょ? 会社の端末で遊ぶんじゃありません。
746 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 03:25:46 ] いえ、個人で買いましたよ。何せ学生ですからw
747 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 03:31:46 ] ttp://slashdot.jp/~patagon/journal/413497
748 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 03:48:04 ] ありです。 でも、それだと、ネットワーク越しのPCを再起動する方法っすよね?オイラがやりたいのは携帯自体を再起動させる方法なんす
749 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 06:03:15 ] 対象は決まってるんだし、元の方法からその指定部分削れる分、 かえって楽なコードじゃないかと思った俺素人
750 名前:デフォルトの名無しさん [2008/01/08(火) 11:28:43 ] PyDev使ってる方で、IronPython 設定できた方いらっしゃいませんか? 設定しようとすると 以下のエラーが出ます。 ... eclipse\plugins\org.python.pydev_1.3.10\PySrc\interpreterInfo.py, line 15, in Initialize File , line 0, in __import__##4 ImportError: No module named os 調べてみたところ 環境変数 IRONPYTHONPATH に %PYTHONPATH%\Lib を 設定すると出来るらしいのですが、ダメでした。 参考:sourceforge.net/tracker/index.php?func=detail&aid=1535901&group_id=85796&atid=577329 よろしくお願いします。 環境 WinXP Eclipse 3.3.1.1 PyDev 1.3.10 CPython2.5.1 IronPython1.1
751 名前:750 [2008/01/08(火) 11:51:45 ] >>750 です。 パソコン再起動したらできました。 Eclipse を 再起動してもできなかったのに。。。 スレ汚しごめんなさい
752 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 14:08:48 ] >>751 ランチャーとかから起動すると、 ランチャーが起動したときの環境変数しかみなかったりするよ。
753 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 15:20:14 ] ×ランチャー ○ローンチャ
754 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:04:52 ] >>753 △ゲンマイチャ
755 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:13:50 ] 燃えるお兄さん?コアすぎるだろ常考
756 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:16:17 ] >753 ◎launcher
757 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 01:04:00 ] Δ隠されし 禁断の ゲンマイチャ
758 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 01:18:25 ] >>752 ☆ラウンチャの男
759 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 04:50:25 ] ロケットローンチャ
760 名前:750 [2008/01/09(水) 07:23:53 ] >>752 それだ! ランチャ使ってます。 なるほど、以後気を付けます ありがと!
761 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 08:40:55 ] CでPythonの独自クラスを定義して、さらにそれを継承したクラスもCで記述する場合って、 継承とかどうやるの? ttp://www.python.jp/doc/release/ext/dnt-basics.html ttp://www.python.jp/doc/release/api/type-structs.html を見ながらやってるんだけど、継承して作る場合がいまいち良く分からない。 例えば、継承元クラスの構造体が typedef struct { PyObject_HEAD PyObject *first; PyObject *last; int number; } Noddy; だったとして、これを継承したクラスを作りたい場合は typedef struct { Noddy noddy; int mydata; } NoddyEx; でいいのかね? そのうえで、継承元 Noddy の PyTypeObject である noddy_NoddyType を noddy_NoddyExType の tp_base に指定すればいいんだよね。 ただその場合、 tp_alloc とかの実装はどうなるんだろうか。今のところゼロで初期化して 継承元の設定を使ってるけど、NoddyEx で新たに確保しなきゃならない項目がある場合に どう書いていいのかよくわからん。
762 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 08:47:14 ] あと、 def __init__(self, A, B=0, *args, *kwargs): SUPERCLASS.__init__(self, *args, **kwargs) ... に相当するコードをCで書く場合、*args と **kwargs の処理ってどうやってる? int b=0; PyObject* kw = PyDict_New(); PyDict_Update(kw, kwargs); PyObject* val = PyDict_GetItemString("B", kw); if (val) { b = PyInt_AsLong(val); PyDict_DelItemString(val); } て感じで、キーワード辞書のコピーを取っておいて、必要な値を pop してから 残骸を SUPERCLASS.__init__ (に相当するC関数)に渡す?
763 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 08:50:10 ] まちがえた PyObject* val = PyDict_GetItemString(kw, "B"); if (val) { b = PyInt_AsLong(val); PyDict_DelItemString(kw, "B"); }
764 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 09:20:42 ] ローンチャ・ストラトス
765 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 12:15:58 ] 質問失礼します。 def ptest( *a ): for b in a: print b, print "" 上記の関数呼び出しを、 ptest( "a=", 1, " b=", 2 ) ptest( "a=%d,%s" %( 1, "hoge" ) ) などではなく、通常のprint文のように、 ptest "a=", 1, " b=", 2 ptest "a=%d,%s" %( 1, "hoge" ) としたいのですが、どうしたら良いでしょうか? 分かる方お願いします。
766 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 12:29:52 ] できないよ。考え直すといいよ。
767 名前:デフォルトの名無しさん [2008/01/09(水) 12:49:54 ] ttp://gihyo.jp/dev/feature/01/python3000/0001
768 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 12:53:13 ] >>765 関数呼び出しと文はまったく別物。文は自分では作れない。
769 名前:765 mailto:sage [2008/01/09(水) 13:29:31 ] >>766 >>768 勉強になりました。 ありがとうございました。
770 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 13:32:44 ] >>761 boost.pythonじゃだめなの? d.hatena.ne.jp/niitsuma/20080108
771 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 16:58:23 ] >>765 ruby
772 名前:デフォルトの名無しさん [2008/01/10(木) 02:57:18 ] pythonにおける変数名等の標準的な命名規則って何ですか?
773 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 03:02:13 ] >>772 PEP 8 -- Style Guide for Python Code www.python.org/dev/peps/pep-0008/
774 名前:デフォルトの名無しさん [2008/01/10(木) 03:25:17 ] /bin/sh シェルのバッククォートを置き換える www.python.jp/doc/release/lib/node235.html これってshより複雑になってないですか? もっとシンプルに`command`を実現することはできないのでしょうか?
775 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 03:27:34 ] >>772 www.oldriver.org/python/pep-0008j.html
776 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 03:30:08 ] コマンドの出力を取りたいだけならcommands.getoutput('command')でいいんでない
777 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 03:37:06 ] >>776 こんなのあったんですね ありがとうございました
778 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 06:25:05 ] >>774 ttp://python.matrix.jp/tips/mini-tips.html >>> args = ['python', '-c', 'print raw_input()'] >>> from subprocess import Popen, PIPE >>> proc = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE) >>> proc.stdin.write('input text') >>> proc.stdin.close() >>> proc.wait() 0 >>> print proc.stdout.read() input text >>> print proc.stderr.read() >>>
779 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 06:28:48 ] より現実的な例ではこうなるでしょう: try: retcode = call("mycmd" + " myarg", shell=True) if retcode < 0: print >>sys.stderr, "子プロセスがシグナルによって中止されました", -retcode else: print >>sys.stderr, "子プロセスが終了コードを返しました", retcode except OSError, e: print >>sys.stderr, "実行に失敗しました:", e
780 名前:デフォルトの名無しさん [2008/01/10(木) 10:02:17 ] >>777 PEP 8を知らない奴がPythonやるなよ
781 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 10:34:43 ] >> 780 「愚かな一貫性は小人物に憑いたおばけである」
782 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 10:50:01 ] おばけ(wwwwwwwww 幼稚園児かよ(wwwwwwwwwwwwwwwwwwwwwwwwwwwww
783 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 10:57:02 ] おばけ。 おばけ怖いね。たしかに怖い。 愚かな一貫性を捨ててPerlをやることにするよ。
784 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 11:08:49 ] おばけより人間の方が怖い
785 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 11:12:54 ] まんじゅうもこわい。 ついでにお茶もこわいんだけど。
786 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 14:13:05 ] >>775 >プログラミングにおける推奨案 > - ソースコードは Python の実装(PyPy、Jython、IronPython、Pyrex、 > Psyco など)ごとの欠点を引き出さないように書くべきである。たとえば、 > CPython が a+=b や a=a+b などの文字列連結をインプレイス処理して、効 > 率よく動作する実装に依存してはならない。これでは Jython での動作が遅く > なってしまう。パフォーマンスに敏感な部分では、''.join() を使うべき > である。こう書いておけば、様々な実装において、連結処理は線形時間で > 処理できる。 PythonSpeed newworld.ddo.jp/doc/PythonSpeed 合わせて読みたい。
787 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 15:17:15 ] Pythonの文字列って不変だから、+=演算子の振る舞いはあくまで s = s + "hoge" s = s.add("hoge") であって s.add("hoge") では無いんだよな。 Pythonを始めたころは+=演算子ないのかよと思っていたら 仕様拡張されて文字列にも適用されたけど、 今になって思えば失敗な気がする。 (何で当時の俺はまんせーしてたんだか…)
788 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 16:01:26 ] >>782 別に幼児語じゃないぞ。
789 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 19:29:49 ] 問題はおばけではなく小人物の方だからな つまりどこに行っても同じ
790 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 21:22:38 ] はいはい。 おばけこわい。小人物こわい。
791 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 21:41:20 ] >>789 このねちっこさは小人物の仕業だろ常識的に考えて(wwwwww
792 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:22:58 ] >>786 PEP8の次にくるようにブックマークしたー って、setオブジェクトってなんだよ…(しょっぱなで躓く)
793 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:39:49 ] >>787 In Java, we had well known it's difference same as 'String / StringBuffer'.
794 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:59:28 ] 英語ダメな人キタコレwww
795 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:10:09 ] Would you please correct it?
796 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:34:39 ] とりあえず日本語でおk
797 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:38:47 ] どこから直して良いのかわかんないけど・・・ とりあえず過去完了は昔のある出来事以前のことをあらわすので そこを現在完了に変えて、ついでに時制の一致とかも考えて・・・ You'd know it as defference between String and StringBuffer in Java. ぐらいじゃないの?
798 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:39:28 ] It totally SUCK !!
799 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:40:41 ] sucksな。
800 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:46:24 ] 「愚かな一貫性は小人物に憑いたおばけである」
801 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 23:58:18 ] kinnnen mare ni miru kuso sure no nagare
802 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 00:05:30 ] >>801 典型的なクソレス
803 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:11:53 ] >「おろかな一貫性は、・・ 調べてたら元ネタがあった。 "A foolish consistency is the hobgoblin of little minds, adored by little statesmen and philosophers and divines. With consistency a great soul has simply nothing to do." - Ralph Waldo Emerson (愚かな一貫性というものはちっぽけな精神にひそむお化けで、ちっぽけな 政治家や哲学者や聖職者達に崇められるものだ。偉大なる魂は一貫性など とは全く無縁である。 - ラルフ・ワルド・エマソン) 割と有名な引用らしい。(知らんかったけど
804 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 04:42:52 ] 質問させて下さい python2.5+Vista環境でpywin32(Python for Windows extensions)を導入してみました ところが付属Demoを実行すると次のようなエラーが出ます Traceback (most recent call last): File "<stdin>", line 1, in <module> File "c:\python25\lib\site-packages\pywin32-210.0004_s-py2.5-win32.egg\win32com\__init__.py", line 5, in <module> import win32api, sys, os ImportError: No module named win32api 3時間あれこれしてみたのですが一向に分かりません 包含関係はwin32api∈pywin32だと思うのですが・・・ 何か初歩的な設定ミスなどしているのでしょうか 原因の思い当たる方どうぞご教示願います
805 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 05:08:56 ] >>797 Thank you so much.
806 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 05:15:14 ] >>804 ttp://starship.python.net/crew/mhammond/win32/ For some overviews of the Win32 API as exposed to Python, see ttp://www.python.org/windows/win32/
807 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 05:18:10 ] ttp://www.python.org/download/windows/ Win32all, Mark Hammond's add-on for the regular Python installer (also including the Win32 API, COM support, and Pythonwin), is available from the pywin32 project on SourceForge. ttp://sourceforge.net/projects/pywin32/
808 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 06:35:50 ] >>804 eggの中身はzipだからpeなwin32api.pydは標準ではインポートできない setuptoolsもインポートの拡張してなかったと思うし というかそのeggファイルって非公式なものなんじゃ
809 名前:804 mailto:sage [2008/01/11(金) 10:54:55 ] >>806-808 egg排除してインストーラを使ってインストールし直したら できました! みんなありがとう!!! 大感謝です!!! 今回の件でeasy_installやeggの特性も少し分かったので スレタイ通り勉強になりました。今後も精進します。押忍
810 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 22:02:13 ] >>803 こっちのことわざで言えば 君子豹変す あたりのことかな。
811 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 22:31:57 ] Jinsei iro iro
812 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 22:46:35 ] URLをパースして分解してくれるようなライブラリはありますか。
813 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 22:48:22 ] 君子豹変す 小人面を革む (易経)
814 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 22:49:54 ] >>812 urlparse
815 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 22:57:39 ] で、結局怖いのは小人物なのか? それともおばけ(苦笑)なのか?
816 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 23:57:07 ] 馬鹿な突っ込みしちゃったのが心のささくれになってるのはわかるけど、 おばけにこだわってるのはもう君だけだから、無理に苦笑とかしても、ログ遡られて「ああこの子ね」となるだけかと。
817 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 00:04:31 ] >>816 小人物乙(ww
818 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 01:22:01 ] 即レスw
819 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 01:34:38 ] 子供は寝ろよ
820 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 02:38:16 ] 小人閑居して不善を為す
821 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 02:49:09 ] 馬鹿の考え休むに似たり
822 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 03:29:59 ] 生兵法は怪我の元
823 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 06:34:36 ] journal.mycom.co.jp/news/2008/01/08/045/ JythonでDjangoが動いたようです。
824 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 07:16:04 ] >より最新のバージョンに対応したJythonの登場はそうとおい未来の話ではなさそうだ。 あと1年くらいか
825 名前:デフォルトの名無しさん [2008/01/12(土) 12:18:35 ] 花よりだんご
826 名前:デフォルトの名無しさん [2008/01/12(土) 15:26:24 ] 花よりだんごより金
827 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 15:41:16 ] それにつけても金の欲しさよ
828 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 16:41:28 ] 談合三兄弟
829 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2008/01/12(土) 16:51:25 ]
830 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 20:02:35 ] Py3.0では set がリテラル表記できると聞きましたが。。。。。。。 あたらしい文法増えるってことかい?
831 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 23:52:32 ] >>830 {'増', 'え', 'る', 'よ'} {i for i in 'さらに、setとdictの'} {k: v for k, v in enumarate('内包表記も。')}
832 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 01:42:26 ] pypyっていいね
833 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 02:38:35 ] {} を 空dict にするか 空set にするかという議論もあったようだけど、空dict になったらしい。 個人的には 空set の方がよかった。
834 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 07:48:25 ] >>833 無意味に後方互換性を崩すあんたのセンスを疑う。
835 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 08:31:58 ] >>831 Yさん、ご苦労様です
836 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 10:12:27 ] >>835 Yさんて誰よ >>833-834 {} == set() {:} == dict() が自然じゃないかなぁ、と思ってた 確かに後方互換性がネックなんだけどね
837 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 11:56:25 ] pythonって、dictの要素を繰り返すのに for k, v in dct.iteritems(): print k, v としますけど、なんで for k, v in dct: print k, v でできるようにしなかったんでしょう? for v in dct: print v としたら、キーが表示されました。 どうせなら、next()で(k, v)が返されればいいのに。
838 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 13:15:05 ] for k, v in dct.items(): print k, v
839 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 14:41:03 ] for k in dct: print k, dct[k] じゃだめなんか
840 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 14:55:21 ] if k in dict: ....との一貫性のため、 だと思ってたけど。
841 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 16:41:24 ] >>840 あ、そう、それだ、 そういうのを Guido は、if k in dict と for k in dict がライムする(韻を踏む(?))と表現しているね。 mail.python.org/pipermail/python-3000/2007-September/010222.html
842 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 16:42:28 ] Pythonの開発環境はIDLEで充分ですか? まだPythonは初心者ですが
843 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 17:08:30 ] 学習段階ならぶっちゃけメモ帳でも
844 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 17:14:30 ] いやさすがにメモ帳は 最低でも複数行をまとめてインデントしたり コメントアウトできるエディターは必要
845 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 17:47:11 ] >>843-844 ありがとうございます 探してみます
846 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 18:29:17 ] pythonで入力フォームを作っているのですが、 入力値のチェックで全角のみ許可する場合は どのようにすればいいのでしょうか? 正規表現でどのように書けばいいのでしょう? お願いします
847 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 18:37:26 ] 文字コード総合スレ part3 ttp://pc11.2ch.net/test/read.cgi/tech/1180250376/
848 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 19:09:38 ] >>846 正規表現ライブラリの動作をかんがえると 簡潔にできないなら別に正規表現にする必要はないかと。 Unicodeに統一させるのは前提として 文字単位で確認するようなコードをこさえればいいと思う。 速度求めるようなもんでもなさそうだし。
849 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:27:29 ] $KCODE = 'SJIS' dat = ['Alpha', 'ひらがな', '漢字', 'カタカナ', '0123', 'ねこ大好き'] dat.each{ |str| p str case str when /^[A-z]+$/s p 'アルファベットのみ' when /^[0-9]+$/s p '数字のみ' when /^[あ-ん]+$/s p 'ひらがなのみ' when /^[ア-ン]+$/s p 'カタカナのみ' when /^[亜-煕]+$/s p '漢字のみ' else p '混合か全角英数字か記号' end }
850 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:33:46 ] 先生、ここはPythonスレです・・・
851 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:41:43 ] UNICODEにしたときも ^[亜-煕]+$ って保証されるんかいな?
852 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:22:29 ] 「半角のみ」禁止なら割と簡単だけど・・・
853 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:23:01 ] unicodedataつかいなよ
854 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:50:41 ] >>851 UNICODEなら、漢字全部って意味でそれ書いちゃ間違い
855 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:56:46 ] UNICODE(UCS-2)の文字コード順で書かないとな 漢字(統合漢字とExt.Aだけ)はこうか r'^[\u4E00-\u9FBB\u3400-\u4DB5]+$'
856 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 23:32:08 ] >>> unicodedata.east_asian_width(u'A') # 全角のA 'F' >>> unicodedata.east_asian_width(u'ア') # 半角のア 'H' >>> unicodedata.east_asian_width(u'あ') 'W' >>> unicodedata.east_asian_width(u'A') # ASCII のA 'Na' >>> unicodedata.east_asian_width(u'W') 'A' >>> unicodedata.east_asian_width(u'\u0E20') # タイ語の文字 'N' ttp://0xcc.net/blog/archives/000191.html
857 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 23:48:22 ] ……「半角が混じってたらNG」 というロジックにしちゃえというのは禁句だろうか
858 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 00:03:10 ] 2バイト半角もあるからな
859 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 04:39:57 ] もう全部UTF-32でいいよもう
860 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:28:22 ] 禁止にするとかじゃなくて 内部でお好みの全角のみか何かに正規化するのが定石じゃん? 全角のみでおねがいします、の入力フォームを見るたびに 殴りたくなるぜ
861 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 10:53:30 ] 俺も正規化すればいいと思う。
862 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:55:16 ] >>846 一旦EUC-JPかShift_JISにしてASCIIの範囲の文字とそれ以外に分ければいいと思う。
863 名前:862 mailto:sage [2008/01/14(月) 13:42:18 ] # -*- coding: utf-8 -*- def is_zenkaku(s): assert isinstance(s, unicode) try: s = s.encode("euc-jp") except UnicodeError: return False i = 0 while i < len(s): if s[i] < '\x80': # ASCII return False elif s[i] == '\x8e': # JIS X 0201 Katakana return False elif s[i] == '\x8f': # JIS X 0212 Supplementary Kanji i = i + 3 else: # JIS X 0208 i = i + 2 return True
864 名前:863の続き mailto:sage [2008/01/14(月) 13:43:21 ] if __name__ == "__main__": assert is_zenkaku(u"日本語") == True assert is_zenkaku(u"Kanji") == False assert is_zenkaku(u"Kanji") == True assert is_zenkaku(u"12345") == False assert is_zenkaku(u"12345") == True assert is_zenkaku(u"パイソン") == False assert is_zenkaku(u"パイソン") == True assert is_zenkaku(u"森\u9dd7外") == True assert is_zenkaku(u"Espa\u00f1ol") == False assert is_zenkaku(u"Россия") == True assert is_zenkaku(u"Αθηνα") == True assert is_zenkaku(u"(・∀・)イイ!") == True assert is_zenkaku(u"(・A・)イクナイ!") == False
865 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:26:52 ] >>849 rubyってそんな面倒なことしないと分けれないのかよwww >>863 そんな面倒なことせずに east_asian_width使えばいいだろ
866 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:08:51 ] >>865 ソースに問題点あるみたいなのでそっちの方が面倒そう<east_asian_width d.hatena.ne.jp/methane/20070109/1168316594
867 名前:methane mailto:sage [2008/01/14(月) 19:27:05 ] >>866 それはdocutilsの中でeast_asian_width()の結果をどう扱ってるかって話。 日本限定で使う分にはこんな感じで良いと思う。 def char_width(s): if type(s) == 'str': s = unicode(s) return 2 if east_asian_width(s) in 'WFA' else 1
868 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:41:43 ] なるほど・・
869 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:51:10 ] >>866 それは、現在の実装がblogの人の想定と違ってるってだけでそ。 そこにある修正したら、\u00A1(INVERTED EXCLAMATION MARK)とかもWide&Full-widthと同じ扱いされてまうやん。
870 名前:methane mailto:sage [2008/01/14(月) 20:53:09 ] スマン、east_asian_width() == 'A' の文字ってCJK圏では全部Wide文字扱いかと思ってた。 >>867 のも、'A'を入れるか入れないかは微妙なんだな。
871 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:12:40 ] A - East Asian Ambiguous Ambiguous : あいまい(な) なわけで。 ttp://www.unicode.org/reports/tr11/tr11.h1.gif
872 名前:methane mailto:sage [2008/01/14(月) 21:18:31 ] いや、A=Ambigious=「あいまい」は知ってたけど、 CJK圏ではWide、それ以外ではNarrow、という意味で「あいまい」だと思ってた。 Unicodeメンドイな。
873 名前:862 mailto:sage [2008/01/14(月) 21:21:25 ] >>865 へー、unicodedata.east_asian_width() なんてあるんだ。知らんかった。Thanx
874 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:03:15 ] Rubyのgets.to_iにあたる、数値入力を取得する命令ってどう書いたらいいんでしょうか?
875 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:37:06 ] 数値計算libでnumarray numpyとか似たようなのが複数あるけど どれが一番いいの?
876 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:02:47 ] >>874 try: a = input() except NameError: a = 0
877 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:09:30 ] >>876 その発想は無かった。
878 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:16:05 ] >>874 import sys x = int(sys.stdin.readline()) impoすらメンドいならint(raw_input())
879 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:26:31 ] >>876 >>878 ありがとうございました。
880 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 13:37:12 ] 自鯖でpythonを動かし、rssなんかを取得したいのですが、 cgiからurllibでgetするとソケットエラーになります。 pythonを起動してやれば、普通に取得できます。 分かる方いたらお願いします。 OS : CentOS release 5 (Final) Server : Apache/2.2.3 python : 2.4.3
881 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 15:26:14 ] >>880 > urllibでgetするとソケットエラーになります。 「ソケットエラー」なんてエラー出力にはならないと思うし 勝手な省略したらわかるものもわからなくなるよ? その環境にはないけどオチとしてはSELinuxが働いている、かな。
882 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:11:03 ] >>881 動きました。ありがとうございます。 エラー文見て、適当に略してしまいました、すいません。 IOError: [Errno socket error] (-3, 'Temporary failure in name resolution')
883 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:34:40 ] frobnicate - Google 検索 www.google.co.jp/search?q=frobnicate&hl=ja&lr=lang_ja&start=20&sa=N 質問 frobnicateってどういう意味ですか?
884 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:50:24 ] >>883 その検索結果のROT13の頁を見よ
885 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:01:23 ] >>884 ROT13 - Wikipedia ja.wikipedia.org/wiki/ROT13 >このルーチンはROT13と同じ目的で用いられるが、任意の二進データに利用可能である >(ユーモアをこめて、「意味不明化」(en:frobnicate)関数と呼ばれる)。このルーチンではデータの >各8-bitバイトをとり、二進数の00101010(十進表記では42。人生、宇宙、すべての答え参照)と >の間のビット毎の排他的論理和 (XOR) を計算する ですね Re: [Python-Dev] Replacement for print in Python 3.0 :: ASPN Mail Archive :: python-dev aspn.activestate.com/ASPN/Mail/Message/python-dev/2808632 >printf('$1 forgot to frobnicate the $2!\n', username, file.name, > to=sys.stderr) >While that's a little less self-descriptive for a translator to deal >with (who would only see the string, not the call site), it certainly >looks nicer for a non-i18n application, and could certainly work for an >i18n app too. It's a neat idea worth exploring. 意味不明化する、いう使い方をするみたいですね dくす
886 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:39:21 ] >> I request the addition of prod(): >> >> def prod(seq): >> s = 1 >> for x in seq: >> s *= x >> >> prod is always as useful as sum() > >It would have to be called product(), and I believe it has been proposed >multiple times and been rejected under the "not every 3-line function >has to be builtin" rule. そんなルール在ったんだw
887 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 00:46:04 ] set に含まれる要素うち、2つを取り出して比較ってのを全組み合わせについて やりたいんだけど、効率よく処理するにはどうすればいいだろう。 最初に思いたのは s = set([.........]) として seq = tuple(s) for i in range(len(seq)-1): for j in range(1, len(seq)): my_cmp(seq[i], seq[j]) なんだけど、すごい遠回りして処理してる気がする。 意外とベタに [my_cmp(i, j) for i in seq: for j in seq] ってインラインぽくやった方が早いのかな。ちなみに my_cmp での比較順番は関係なし。(交換法則が成り立つ) これを C で実装できればなおいいんだけど C-APIには集合オブジェクトの処理がないんだよね。。。
888 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 01:08:04 ] for x in list(s): s.remove(x) for y in s: my_cmp(x, y)
889 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 12:27:57 ] 効率よく、という趣旨からは外れるかもしれないけど、 aspn.activestate.com/ASPN/Cookbook/Python/Recipe/474124 の下の方のやつを使えば、 for p in comb(list(s), 2): my_cmp(*p) とすっきり書ける。
890 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 23:41:58 ] ls = list(s) for i in ls[:-2]: for j in ls[1:]: my_cmp(i, j)
891 名前:デフォルトの名無しさん [2008/01/17(木) 17:57:12 ] 総当たりになってないw
892 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 03:10:51 ] www.python.org/dev/peps/pep-0370/ 面倒臭そうだ
893 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 12:05:26 ] ${HOME}/bin ${HOME}/lib/python2.5 ${HOME}/share 俺は↑みたいにやってパスを通している。 /usr/local = ${HOME} の位置づけ ${HOME}/.local/lib/python2.6 わざわざ隠さなくてもいいよ。 存在を忘れそうだ。 タイプも面倒くさいし。
894 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 21:21:23 ] 半角と全角が混じった文字列を途中から改行するには どうすればいいですか?
895 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 22:45:40 ] unicode に変換したら
896 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:15:20 ] 禁則処理のことを云って居るのか?
897 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:34:09 ] この質問にちゃんと答えられたら その人はPGじゃなくてエスパーだろ。
898 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:57:27 ] マルチバイト文字が入ってる文字列に改行を挿入したら泣き別れが 起きてしまうんですがどうしたらいいですか、なのかなぁ
899 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:38:32 ] 半角と全角とか言ってるからそこらへんかも つ Unicode 文字列
900 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 06:26:07 ] lxmlの最新バージョンのwindows用インストーラーがないんだけど
901 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 11:00:18 ] あんたRubyにいいたいことがあるんじゃないんですか? とくにPythonと比べてみて。 ttp://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Bruce+Eckel%A4%CE%A1%D6Ruby%A4%CB%A5%A4%A5%A4%A5%BF%A5%A4%A5%B3%A5%C8%A1%D7%A5%B3%A1%BC%A5%CA%A1%BC
902 名前:デフォルトの名無しさん [2008/01/19(土) 13:40:00 ] 他の言語なんて放っておけ
903 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 16:00:57 ] Pythonの勉強をしにきました!
904 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 16:02:35 ] やっぱやめた!
905 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 16:17:47 ] >903 あきらめ早すぎ。
906 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:30:12 ] Pythonチュートリアル重要だねえ print時の文字フォーマットは辞書を使って >>>fuga = {'hoge':'doutei'} >>>print("%(hoge)s" % fuga) >>>doutei ができることを知ったよ。恥ずかしいのですべて読み切る。
907 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:31:03 ] なんでprintに()つけるん?
908 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:31:51 ] >>907 Python3000から付けるようになるとのことで、 今のうちから括弧付ける癖付けてる
909 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:40:02 ] print("%(hoge)s" % (fuga,)) が正しい
910 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:55:33 ] >>907 かっこつかないだろ 後悔はしていない
911 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:56:37 ] >>909 Traceback (most recent call last): File "<pyshell#909>", line 1, in <module> print("%(hoge)s" % (fuga,)) TypeError: format requires a mapping 適当なことを言うのはやめるんだ
912 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:20:07 ] ( "ヮ")
913 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:37:41 ] import string print string.Template('$hoge').substitute(fuga) というのも一応ある
914 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 22:57:31 ] slashdot.jp/articles/08/01/18/070215.shtml
915 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 02:24:27 ] ただいまメンテナンス中です Slashdot Japan は現在メンテナンスを行っております。 ご迷惑をおかけして、誠に申し訳ございません。 しばらく後にもう一度アクセス頂けますよう、お願い申し上げます。
916 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 03:01:44 ] メンテ終わったよ
917 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 03:02:55 ] >>906 >>> hoge = 'doutei' >>> print '%(hoge)s' % locals() doutei こんな技もあるから覚えておくといいよチェリーボーイ
918 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 14:50:00 ] >>916 39
919 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:12:47 ] もう伸びないってさ
920 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 20:10:47 ] >>917 どもども
921 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:08:28 ] 今日からPython始めようと思うのだけれど まずはチュートリアルを読めばいいのかな?
922 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:25:12 ] 多言語を知っているのなら でもそんな人はそんな質問しないだろうな
923 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:10:31 ] >>919 そうそう。Pythonはもう伸びない。 だからこんなに便利なプログラミング言語を使わなくていいよ。 今すぐ別の言語に移ってくれていいよ。
924 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:14:57 ] >>923 今の所、今年のキモレスNo1
925 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:16:44 ] >>924 もうPythonから離れていいよ。 100000万キロくらい離れていいよ。 むしろ二度と近寄らなくていいから。
926 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:18:29 ] >>925 子供はプログラミングじゃなくてお勉強してろ
927 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:31:54 ] 暗いと不平を言うよりも、すすんであかりをつけましょう
928 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:41:06 ] >>926 日本語も満足にできない低脳はPythonを使わない方がいいよ。
929 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:46:07 ] 100000万キロなんて今時小学生でも使わないだろ・・・
930 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:55:53 ] >921 チュートリアルよりお気楽 Python プログラミング入門ってのがいいと思うんだ
931 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:57:34 ] ガリレイの相対性原理も、アインシュタインの相対性理論も 破棄されました。! 21世紀の科学、物理学は支配の法則が支配する!!!!! home9.highway.ne.jp/cym10262/fenomina.html
932 名前:デフォルトの名無しさん [2008/01/21(月) 04:32:37 ] 初心者講座作れ!
933 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 06:32:20 ] すいません。質問させてください。 Pythonの拡張とかフレームワークみたいなのを使わないで、 jspやerbみたいにhtmlにコードを埋め込むことはできますか? テーブル作るときにレコードを一行ずつprintするのが嫌で、 配列をhtmlに渡して、レコードの数だけ埋め込んだコードでループさせたいと考えています。 まだ勉強し始めたばかりで、パイソン流の方法がわからず苦労しています。 よろしくお願いします。
934 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 08:25:44 ] テンプレート
935 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 09:35:44 ] >>933 テンプレートエンジンをつかいましょう。 Rubyと違って、PythonにはERBみたいなのは付属しないので、自分でインストールする必要があります。 ERBみたいなのでよければ、MakoやTenjinあたりが高速です。 www.kuwata-lab.com/tenjin/ に各種テンプレートエンジンへのリンクとベンチマークがあります。
936 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 20:27:54 ] >>935 やっぱり何かをインストールしないとできないのですね。 紹介していただいたTenjinを使ってみました。 欲しかった使い勝手は、まさにコレでした。 使うときもtenjin.pyだけあれば管理者でサーバーにインストールする必要もないですし、 Tenjinを使っていこうと思います。 良いアドバイスをいただき、ありがとうございました。