1 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:59:28 ] Pythonオフィシャルサイト www.python.org/ 日本Pythonユーザ会 www.python.jp/Zope/ まとめWiki python.rdy.jp/ 関連スレ find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python 前スレ pc12.2ch.net/test/read.cgi/tech/1264924208/
2 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:00:43 ] 参考図書 ttp://python.rdy.jp/wiki.cgi?page=%B4%D8%CF%A2%BF%DE%BD%F1
3 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:08:06 ] ●標準ライブラリミニツアー ttp://www.python.jp/doc/nightly/tut/node12.html ●レシピ集 ttp://code.activestate.com/recipes/langs/python/ ●exeファイルの作り方 ttp://www.py2exe.org/ ●GUI ライブラリ Tkinter ttp://ja.wikipedia.org/wiki/Tkinter PyQt4 ttp://www.riverbankcomputing.co.uk/software/pyqt/intro wxPython ttp://www.wxpython.org/
4 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:09:38 ] ●参考サイト ttp://python.rdy.jp/wiki.cgi?page=%BB%B2%B9%CD%A5%B5%A5%A4%A5%C8 ●Web フレームワーク等 Pylons ttp://pylonshq.com/ django ttp://www.djangoproject.com/ TurboGears ttp://www.turbogears.org/about/index.html Plone ttp://plone.org/ Zope ttp://www.zope.org/ web.py ttp://webpy.org/ werkzeug ttp://dev.pocoo.org/projects/werkzeug/ Kay ttp://code.google.com/p/kay-framework/ Paste ttp://pythonpaste.org/ wsgi ttp://www.python.org/dev/peps/pep-0333/
5 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:25:36 ] CherryPy ttp://www.cherrypy.org/
6 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:28:55 ] KanPy ttp://upload.wikimedia.org/wikipedia/commons/2/20/PS_Kr%C3%B8yer_-_Hip_hip_hurra!_Kunstnerfest_p%C3%A5_Skagen_1888.jpg
7 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:55:28 ] pass
8 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 19:54:17 ] 実装各種 Python2.6 (C言語実装、よく分からない人はこれ) ttp://www.python.org/ Python3.1 (C言語実装、バージョンの違いを理解している人用) ttp://www.python.org/ Jython2.5 (Java実装) ttp://www.jython.org/ IronPython2.6 (C#(.NET)実装) ttp://www.codeplex.com/IronPython
9 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:05:56 ] cと連携するときってctypesとCythonどっちがいい?
10 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:28:59 ] swig
11 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 21:06:22 ] >>1-8 乙
12 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 21:11:38 ] cyclone
13 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:40:25 ] Bython
14 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:58:30 ] C#
15 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 01:21:30 ] 今日はπthonの日
16 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 01:47:56 ] 前スレRとの比較にはすごい興味あり
17 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 01:59:26 ] 3.14 15926
18 名前:デフォルトの名無しさん [2010/03/14(日) 04:03:29 ] pypy 1.2 release
19 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 05:13:24 ] 974 デフォルトの名無しさん [sage] 2010/03/13(土) 11:04:22 ID: Be: PyPy Status Blog: Introducing the PyPy 1.2 release ttp://morepypy.blogspot.com/2010/03/introducing-pypy-12-release.html パイパイ!
20 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 07:39:11 ] >>1 おっぱい
21 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 07:43:10 ] pypyってなんです?
22 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 10:58:28 ] Python 2.5.4 です >>> '1.5'.isdigit() False >>> '15'.isdigit() True >>> '-15'.isdigit() False 1.5 は仕方ないとして -15 は digit ではないのでしょうか? あと -15 でも True になるような判定方法でふさわしいものがあったら教えてください orz
23 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:26:04 ] >>21 Pythonで書かれたPythonの処理系。詳しくは以下。 codespeak.net/pypy/dist/pypy/doc/
24 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:32:46 ] >>22 isdigitは0123456789かどうかを調べるもので+,-,.は偽 数値かどうかは int("-15"), float("1.5") して ValueError の例外がでたら偽
25 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:34:25 ] C#最高って何故かここでよく見るが RUBYならともかくC#はPYTHONが対抗言語と言う位置づけと感じているのか?
26 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:35:07 ] >>22 いいことを教えてやろう '+15'.isdigit() も False だ
27 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:39:10 ] >>25 ネタにマジレスかこいい
28 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:39:38 ] int('- 5') は OK なのに float('- 5') はエラーになるんだよね...
29 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:43:43 ] 節操ないなw
30 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:59:33 ] >>27 マヂレスつか素朴な疑問なんだが
31 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:20:47 ] >>30 スレ立てるまでもない質問スレで Python を猛烈プッシュしてる人が居たから 呼び込んじゃったんだろう
32 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:22:59 ] ハッカーがプッシュしてるんだから間違いない
33 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:32:06 ] >>24 いちいち実行してみて例外出たらやり直しとか Java みたいで格好悪くて納得できません int('hoge', default=0) とか int('fuga', errors='ignore') とか なんで標準で無いんですか?
34 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:33:14 ] 一生C#でTryParseしてればいいよ
35 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:36:02 ] そんなアホなコード誰も書かないから大丈夫だよ
36 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:40:08 ] >>30 コンパイルが必要な時点で、普通は比較対象から外れるよね 個人的にはREPLが無いのが決定的 MonoにはREPLあるみたいだけど サーバ側での運用ってことであれば、対抗馬になるのかな? string.formatの書式でC#をパクっちゃってるのも C#厨を勢いづけてるのかもしれない >>16 俺も興味あるなぁ Rは全然使った事ないけど Python (x, y)よりも優れた適用領域があるなら試してみたい
37 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:04:47 ] Pythonと比較するならF#だろうな こっちはスクリプトだし.NET使えるし
38 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:20:59 ] F#スクリプトはいいね あれがどのWindowsでもデフォで動くようになって LL標準添付のライブラリを備えればいうことなし
39 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:32:34 ] つまりF#最高
40 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:37:06 ] 逝ってよし
41 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:44:54 ] >>33 それはPythonが実用的な言語ではないから 実用性が欲しいのならF#をお薦めする
42 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:47:50 ] pass
43 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:07:20 ] >>28 両方エラーになるけど?
44 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:14:44 ] >>33 default=0 は判るけど、 errors='ignore' したらその関数の結果はどうなるの? 「実行して例外出たら」というのは、基本的にそういうポリシーでやってる。 なんでそんなポリシーなのかというと、 1. 先行チェック関数と実行関数の二つが必要になると、それだけ要素が増える 2. 先行チェックの関数を用意しても、実行用関数でチェックが不要になるわけではない。 3. 先行チェックだけが必要になる場合はあんまりない。 if int.tryparse(s): x = int(s) else: x = 0 と書くのと、 try: x = int(s) except ValueError: x = 0 と書くのと比べて、別に格好悪い事なんてなんにもないし。
45 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:25:47 ] x = int(s) if int.tryparse(s) else 0
46 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:38:01 ] >>45 tryparseなのに真偽しか返さないのはおかしくないか
47 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:40:54 ] >>44 だった...
48 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:42:25 ] >>45 確かに、3項演算子が使えるのは便利だね。 でも、そのためだけに int.tryparse() を実装するのはやり過ぎ。 try文も3項演算子作ろうよっていう話が少し前に Python-dev や Python-idea で 流れたけど、例外のタイプを複数利用したい場合とか、汎用的に使える物を きれいな構文にするのが難しくてまとまらなかった模様。 複数の文字列に対して繰り返し実行する必要がある場合は、その場合に応じて 関数作れば良いしね。手軽に関数を作れるのがPythonの良いところなんだから。 def toint(s, default=0): try: return int(s) except Exception: return default x = toint(a) y = toint(b, 1) z = toint(c)
49 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:43:58 ] >>47 あー、名前をC#から拝借したんだけど、checkparsable()の方が好み? 真偽を返すのは、 if int.tryparse("0") が偽にならないため。
50 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:46:57 ] >>48 ありがとうございました
51 名前:48 mailto:sage [2010/03/14(日) 14:54:08 ] あー、 try-except の部分、一行じゃ書けなかった。3行必要だ。 def toint(s, default=0): try: return int(s) except Exception: return default
52 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:55:36 ] >>43 Python3.1だとintの方もエラーになるけど、2.6だとならない
53 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:10:11 ] >>48 またコンビニ野郎かよ そういう奴が居るからPythonは低速って言われるんだよ
54 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:11:09 ] そろそろ2.6にアップグレードしてもよかと?
55 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:15:50 ] せんとすはいつまで2.4なのかねぇ
56 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:17:48 ] >>53 こーゆー作業をしている部分はユーザーの入力チェックとか 設定ファイルの読み込みとかボトルネックじゃない事がほとんどだから 実行時間を気にする必要ないよね? Pythonは低速とか、誰が非難してるの? 速度が必要な部分は拡張モジュール書けばいいんだし、 ボトルネック以外の部分が多少遅くても問題ない。
57 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:20:36 ] 話は変わるけど、Pythonはほんとに低速
58 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:22:19 ] >>56 >速度が必要な部分は拡張モジュール書けばいいんだし、 >ボトルネック以外の部分が多少遅くても問題ない。 今時は動的言語も仮想マシンと実行時コンパイルが当たり前になって来たからな。 メソッド呼び出しとか真偽判定みたいな内部機能は拡張じゃどうしようもないし。
59 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:48:45 ] まだやってたのか
60 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:18:59 ] せんとすは2.6にアップグレードしてもよか
61 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:43:03 ] する意味ないからしないんだろう。 必要なら/usr/localに入れればいい。
62 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:23:14 ] CentOS の新しいメジャーバージョンが早く出てくれないと、いろんな主要ライブラリで Python 2.4 のサポートを切る動きが出てこない。 有名なライブラリにテスト済みのパッチを送るためにローカルにPython 2.4, 2.5, 2.6, 3.1, trunk, py3k を全部入れるのは面倒だ。
63 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:06:50 ] OSの根幹にかかわる部分をpythonで書くのは不安だ perlじゃなぜダメなんだ
64 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:12:34 ] >>63 なぜPythonだと不安なんだ?
65 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:16:22 ] はっきり言って根幹じゃないほうが好きに弄れて気楽だな
66 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:27:20 ] CentOSはRHELクローンなので RHELがPythonのバージョンを変えない限り変わらない んで、そのRHELの実験的な実装の意味合いを持つFedoraでは Python 2.6に移行済みでPython 3.xも同時にインストール可能となっている なんで、RHEL6が登場するまで待てば、自然とPython 2.6になる >>65 RedHat系はyumも含めてPythonがシステムツールに入り込んでるから 確かに、気軽に/usr配下にライブラリとか入れれないよね まぁ、61の言うとおり『入れんな』ってことなんだろうけど
67 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:51:22 ] OSの根幹にかかわる部分をperlで書くのは不安だ Rudyじゃなぜダメなんだ
68 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:56:01 ] virtualenvがあるから /usr/lib/python2.4 以下にライブラリをインストールなんて 必要ないし、新しいPythonを使いたかったら /usr/local/python2.6 にでも インストールすればいい。
69 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:04:22 ] windows使えば解決
70 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:38:12 ] >16 前スレ 999 だけどリロードしないで激しく時差ぼけレスしちまったぃ まあゆるーく続けますか(matplotlibスレの方がいいかも?)。 numpy,R,matlab等のそれぞれの比較早見表見つけた (使い分ける人向け? っぽいので普通はあまり意味がないかも) mathesaurus.sourceforge.net/ ぐぐって遭遇した1,2年前の話題 Python+Scipy+Matplotlib vs Matlab? news.ycombinator.com/item?id=363096
71 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:38:54 ] 文句あるなら根幹はCで書け
72 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:44:21 ] C は良い言語だよな。メモリ空間の隅々まで自由自在にアクセス出来るし。
73 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:47:10 ] 逆に言うとCPUやレジスタは隠蔽してるので、Cで手に入る自由はメモリだけだな 結局現存するほとんどのOSの機能がCによって提供されてるってのが Cの力だと思っている
74 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:56:43 ] もうわけワカメw
75 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:44:09 ] 73www
76 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 01:04:47 ] アセンブラが無いと話にならんな
77 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 04:56:14 ] テカテカ
78 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 05:21:04 ] まだやってたのか
79 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:26:41 ] 例外処理ってのは、通常の処理手順とは異なる手順で処理するときに使うもんだよ。 引数がintの時も同じように計算して返すのに、なんでわざわざ例外処理でやるんだ。 普通の条件分岐で十分だろ。
80 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 21:04:47 ] まだやってたのか
81 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 21:11:20 ] Ruby スレで GUI が無いって騒いでるな
82 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 21:14:12 ] Python は wxPython の日本語の紹介がけっこうあるからなぁ。
83 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 21:38:27 ] wxPythonも2~3年くらい前はあまり見なかった wxRubyは当時も今もあまり見ない wxPythonの利用者の方が増えてるってことだよね
84 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 21:45:19 ] >>79 じゃあ、int('fdasl')と入力したときに、どういう風に返せば満足なの? 0返すなんて糞仕様は勘弁だからな。
85 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 22:12:26 ] def parseInt(s, default=None): try: return int(s) except ValueError: return default みたいなのをたぶん前スレで誰かが言ってた いづれにしても、自分で関数作ればよかろう
86 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 22:21:36 ] >>79 「例外は本当に例外的な場合にだけ使う」って、誰が言い出したのか知らないけど、 真っ赤なウソだよ。 例えば、ファイルを開くときに、ファイルが存在しなかったら IOError を出すけど、 開こうとする前に os.path.exists(filename) して存在を確認してもパーミッション等の 条件で開けないかもしれない、HDDがリードエラーを出すかもしれない、 チェックしたときはあったファイルが開こうとしたときに絶妙なタイミングで消えるかも しれない、etc... で、事前チェックしても例外処理は外せない。なら、事前チェックと 例外チェック両方するより例外だけチェックする方が合理的。 特にPythonは、 for i in x: でも中で StopIteration 例外が飛んでるくらい、例外を 気軽に使う言語。
87 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 22:23:46 ] parseInt('0', 0)とか考えるとやっぱいらないかな ってこの話題前にもあったね Pythonのお勉強 Part35 pc12.2ch.net/test/read.cgi/tech/1253535109/395
88 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 22:32:49 ] >>86 エラーは全部例外でいいと思うんだよな
89 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 23:03:32 ] 発生した例外を処理しないと必ず止まるってのは本当にありがたい たまにCで書くとつくづく思う
90 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:36:29 ] try: raise SyntaxError() except SyntaxError: print 'foo' は期待通りに動作するのに、 try: @ # <- syntax error except SyntaxError: print 'foo' は動作しないんだなぁ。。 文法ミスがあった時点でそれ以降のスクリプトの内容の解釈は不可能だから当然なんだけど、なんか気持ち悪い。
91 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:45:51 ] print "hello" @ # <- syntax error これでhelloと表示されないのが気持ち悪いか?
92 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 02:30:59 ] 多重ループを抜けるのに例外を使うのはどう?
93 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 02:35:50 ] ええでしょう
94 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 09:13:41 ] ええー
95 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 10:28:35 ] >>91 後ろでもそうなるのか。ほう。 syntax errorで動かないことはいいのだが、ユーザがSyntaxErrorをraiseできるのはどういう解釈なんだ?
96 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 10:32:23 ] >>95 「普通はユーザーが使う物じゃないから」なんて理由で、一部の例外オブジェクトを catchできるけどraiseできないみたいなヘンな制限を付けてないだけだろうな。 raise KeyboardInterrupt だろうがなんだろうができるけど、普通はしない。 普通じゃない場合としては、プラグインシステムのあるアプリで、プラグインに SyntaxErrorが起こるようなスクリプトをぶち込まれた場合をテストするために あえてraiseするとかかなぁ。
97 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 10:55:51 ] >>90 「気持ち悪い」理由が俺にはさっぱりわからん 単に、エラーを含む可能性のあるPythonコードを実行時に解釈したいのなら eval・compile系が使えるけど >>92 多重ループどころか、列挙の停止はいつもStopIteration例外じゃないか
98 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 11:34:51 ] >>97 こういうことだろ。 class TajuuloopNukeru(Exception): pass try: for i in someiter: for j in someiter2: if somecond: raise TajuuloopNukeru # ここで一気にループを抜けるために例外を投げる except TajuuloopNukeru: pass
99 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 11:39:59 ] >>98 いや文意は分かってるよ 別に多重じゃなくてもどうせ列挙の脱出にはいつもStopIterationが使われてるんだから 好きにすれば?ってこと
100 名前:デフォルトの名無しさん [2010/03/16(火) 11:48:04 ] 例外はgotoの代わりに仕えって死んだじいちゃんが言ってた