1 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:30:15 ] Python 3.0 は隔離スレを作るべきだと思うのは俺だけかな? そもそもあれは実用で使うには時期が早すぎるわけで、ここで 普通に語られても困る。 -------- 別に -------- 細分化する必要性が全く感じられない。 各自がレスの内容を収拾選択すればいいだけ。
152 名前:デフォルトの名無しさん [2010/04/05(月) 19:05:54 ] 3.xの日本語リファレンスが欲しいのに入門書ばっかだ
153 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 22:23:19 ] 日本語の解説サイト教えろよゴミども
154 名前:デフォルトの名無しさん [2010/04/16(金) 23:15:45 ] ほれ diveintopython3-ja.rdy.jp/index.html
155 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 18:32:09 ] もっと簡単なの出せよ 無能かよ
156 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 00:34:25 ] >>155 これで分からなかったら、何見ても分からん。
157 名前:デフォルトの名無しさん mailto:sage [2010/04/18(日) 02:37:21 ] いやいや、そういう意味じゃなくて。 ほれ、 www.python.jp/Zope/download/pythoncore これだろ。 そのものだけど。
158 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 13:56:25 ] Rubyでいうところのredoが欲しんだけどないかな。 while True: のループで代用しないとだめですかね。
159 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 01:13:26 ] 任意の数より大きい数を表す定数みたいなのない? なにかの最小値を求めるときに下のような処理はよくあるとおもうんだけどminvの初期値に設定したいんだ。 minv = すごくでかい数 for x in seq: v = func(x) if v < minv: minv = v min(func(x) for x in seq) で常にかければいいんだけど、書けないこともよくあるので。
160 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 01:35:57 ] sys.maxint とかなかったっけ?
161 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 02:41:24 ] float("inf") ?
162 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 02:49:42 ] >>160 3では削除されたし、2でも多倍長整数の最大値はないよ。 大抵の場合はそれで十分だと思うし、なくても HUGE_VAL = 2**31 とでもしとけば、大抵の用途では十分だと思うけど。 >>159 型が重要でないなら、 float('inf') で、不動点小数型の無限大が得られる。 float('inf') > 2**10000000 ---> True 整数型であることが重要なら、クラス継承して比較演算子を書き換えるか。
163 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 09:31:38 ] Python3ってもう使っても大丈夫?
164 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 10:37:04 ] >>163 使いたいライブラリが対応してるなら。
165 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 11:33:32 ] >>164 Python2の標準ライブラリー相当品は3でもOKなんだよね? その他の3rdPartyライブラリーは殆ど使わないんだ
166 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 12:23:41 ] >>165 基本的にはそうだけど、いくつかは廃止・統合されてるから標準については公式行って確認するといいよ。 サードパーティーの使わないなら、対応状況はかなりいいはず。
167 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 12:37:49 ] >>159 minv = func(seq[0])
168 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 12:47:21 ] >>166 ありがとう! ちょっとやる気が出た
169 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 14:01:21 ] >>167 それ、seqがコピーしづらいイテレータだったとき面倒にならない?
170 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 15:12:44 ] for i, x in enumerate(seq): v = func(x) if i == 0: minv = v elif v < minv: minv = v
171 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 15:14:05 ] なんか違和感あるなw こっちのが分かりやすいか for i, x in enumerate(seq): v = func(x) if i == 0 or v < minv: minv = v
172 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 18:01:53 ] Keep it simple, stupid!
173 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 21:38:50 ] python3でグラフ書くのに何使ってる? やっぱりgnuか?
174 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 15:17:24 ] python2.xでmatplotlib
175 名前:デフォルトの名無しさん [2010/05/12(水) 00:07:01 ] 3.xのライブラリが2.x並になるのって、あと何年かかるんだろうか
176 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 23:35:01 ] googleで対応してほしい
177 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 01:12:03 ] 最近python関係の書籍が色々と出てるね。 python2.6.2って・・・。
178 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 13:04:59 ] う、うん……(´・ω・`)
179 名前:デフォルトの名無しさん [2010/05/18(火) 09:44:30 ] なんで俺たち3.xなんか始めちゃったんだろう……
180 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 01:30:56 ] しかし今更後戻りなど…
181 名前:デフォルトの名無しさん [2010/05/19(水) 01:37:20 ] >>171 のプログラムみたら、 やりたいことは値の設定なのであって、複文を実行することじゃないから、 minv = func(x) if i == 0 or func(x) < minv else minv って書きたいけど、中でfunc(x)が2回出てるから、func(x)がすっごい重い処理だと 性能悪いなー って思うのは正しい? func(x)の値は内部的に保持され、2度実行されないよう最適化してくれるのかな?
182 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 02:40:26 ] そんな最適化してくれるコンパイラはCでもないと思うぞ
183 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 06:55:06 ] どうもスクリプト言語は互換性を一度ぶった切りたくなるものみたいだなぁ Rubyは一見その点では有利そうなんだが、実際にはバージョン間の互換性がさっぱりで、 単に同じこと(過去の微妙な仕様の切り捨て)を小分けに毎回やってるようなもんだから ある意味余計に悪いし まぁでも、俺は当分3kは使わないけど、いずれ移行するような気はするけどな
184 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 08:21:19 ] いつまでも保守的ではいられないのさ
185 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 10:10:03 ] CやC++も最初のころは仕様がコロコロ変わっていたような覚えがあるのだが
186 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 11:17:13 ] いまでもコロコロ変わってますが
187 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 15:28:45 ] せめてnumpyがないと移行できないなー
188 名前:181 [2010/05/20(木) 00:49:13 ] >>182 やぱCでもgcc:O2でもfuncの中身までは解析しなかった 変数の出現が関数外ではありえない、みたいな extern宣言が出来ると、イケチャウ雰囲気あるんだけどな〜 動的スコープだとほんと無理なのかな 誰か天才いないかーーーー
189 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 06:04:42 ] >>181 else のときは minv = minv になるから アホなコードだなぁ と思う
190 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 13:53:03 ] >>181 こういうコードはダメ。Ruby厨に惑わされるな。
191 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 15:27:14 ] >>159 の > min(func(x) for x in seq) で常にかければいいんだけど、 > 書けないこともよくあるので。 これってどんなとき?
192 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 18:17:37 ] >>159 reduce使え min(seq)は reduce(min, seq)と同じ その手のやつは大概適当なfを用意してやれば reduce(f, seq) に書き換えられる
193 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 18:19:04 ] ストリームデータから最小値を見つけるとか。 ファイルシステムを捜査しながら最大サイズのファイルを見つけるとか。 かな
194 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 18:21:20 ] >>193 それminで何でだめなんだ? min()はiterable受け取れるけど
195 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 21:12:50 ] うーむ
196 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 22:55:28 ] >>189 >>190 俺も同意だと思ったけど、内部的にはmin関数もまったく同じなんだよね。 趣味の問題かな?
197 名前:デフォルトの名無しさん [2010/05/21(金) 08:11:23 ] 初心者のお試しレベルなら問題ない パフォーマンス考えたら避けるべき
198 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 10:58:04 ] 関数型言語ならletする場面だから、 Pythonでは潔く2行にするのが良いんじゃないの
199 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 11:35:37 ] unko
200 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 14:44:46 ] >>140 パイソンってこういうコーディングルール統一されてると勝手に思ってたけど、汚いんだな 統一されてないのは書いてて気になるし、推測でメソッド名書けなくなるから、やっぱりそういうところちゃんとしてるルビーのほうが良さそうか 理路整然としてるイメージを勝手に持ってたけど、rubyのほうがそゆとこしっかりしてんのかな
201 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 15:12:39 ] ああ、Ruby最高だよ
202 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 15:36:16 ] >>200 classmethod みたいな、1つの単語と呼べるものは、アンダースコアで区切らない。 set_autholizer みたいな、複数の語でなる句は、アンダースコアで区切る。 JUnit みたいに、別のリファレンスに従う設計になっているライブラリは、そのリファレンスの命名に従う。 理路整然としてるけど?
203 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 17:27:52 ] なるへそ
204 名前:デフォルトの名無しさん [2010/06/02(水) 21:48:16 ] なんかpython3始めたいのにまともな書籍が売ってない。 いつになったら普及するのよ。
205 名前:デフォルトの名無しさん [2010/06/02(水) 21:49:45 ] java-jaの人が執筆したJython本で我慢しろよ
206 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 03:44:37 ] >>205 本スレにカエレ >>204 もうちょっとかかりそうだな。 このスレでも何度か出てきてるDive into Python3は、英語版なら書籍でも出てる。 書籍の形で欲しいのなら適さないけど、内容的に書籍レベルのものが欲しいのならWebの日本語訳がいいと思う。 ttp://diveintopython3-ja.rdy.jp/index.html
207 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 13:11:07 ] www.amazon.co.jp/dp/4873114489
208 名前:デフォルトの名無しさん [2010/06/05(土) 05:47:05 ] >>207 2.5じゃねーかハゲ
209 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 17:10:52 ] >>202 > 理路整然としてるけど? で、結果としてばらばらのネーミングルールになってると。 馬鹿か。
210 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 20:50:51 ] >>209 馬鹿はお前だ
211 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 21:16:35 ] まあ、馬鹿は言い過ぎと思うが、>>202 の理由が正しいとしても結果として 統一されてないのは事実だし、おれも >>200 のようにいまいち汚いと思う。
212 名前:デフォルトの名無しさん [2010/06/09(水) 05:54:43 ] べき集合をスマートな一行で書く方法ないかね
213 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 00:42:28 ] >>212 1行じゃないけどこんなの見つけた mail.python.org/pipermail/tutor/2004-April/029413.html
214 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 01:15:00 ] ttp://docs.python.org/py3k/library/itertools.html レシピのpowerset
215 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 01:47:42 ] できたと思ったらまともなのが出てた。 t = set(range(3)) (lambda st: (lambda ls: set(frozenset(ls[j] for j in range(len(st)) if (i >> j) & 1) for i in range(2**len(st))))(list(st)))(t) # ==>set([frozenset([0]), frozenset([1, 2]), frozenset([]), frozenset([0, 2]), frozenset([1]), frozenset([0, 1, 2]), # frozenset([2]), frozenset([0, 1])])
216 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 15:37:58 ] 今年出たpaython本が2.6対応なのにはワラタ。
217 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 16:47:12 ] >>216 Python3の本もたくさん出はじめてるよ。 どの本がPython3用になって欲しかった?
218 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 09:59:07 ] ぶっちゃけ入門レベルで、2.6も3.0もたいした違いはないし、 もっと他に気を掛けることがあるだろうに。
219 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 14:14:05 ] なにごとも初心者は、自分の進め方が正しいかどうかで迷ってしまうからねぇ。
220 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 14:29:00 ] そういえば、Pythonスタートブックっていう書籍が出たけど、 あの手の書籍は最新python3で出して欲しかったな。 初心者向けみたいだし、プログラミング入門者でも分かりやすい内容だったから。 仕事で使うのではなく、ただなんとなくPython始めたいような人は 最新環境で学ぶべきだと思うよ。 俺らが3の仕様変更を知らされたときに受けた失望感を 初心者にまで与えるのはあまりにも酷だろ。 それでも2.Xが優勢だということは、 おそらく3は当分普及しないってことだろうね。 たぶん日本ではGoogleのGo言語のほうがpython3よりも先に普及すると思う。 どうしてこうなった。
221 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 20:18:39 ] >どうしてこうなった encode/decodeのせい python3に期待
222 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 20:22:05 ] >>220 日本でGoが普及するか?まだC#の方がありうると思うぜ。 それ以前にGoとPythonの守備範囲も若干違う気がするし…
223 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 13:45:04 ] あるうるも何も、C#はとっくに普及しとるがな 特に国内ではPerlやPHPならともかく、Pythonとは比較にもならんだろ
224 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 18:25:04 ] >>223 そんなに普及してんの? Pythonと似たり寄ったりだと思ってた。 LLスレにでも移動して語ってくれ。
225 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 18:37:33 ] ttp://www.atmarkit.co.jp/news/200902/13/wp.html ワークポートとかいう会社の調べ C#の求人件数は5位 ちなみにPythonは圏外ね
226 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:34:21 ] 日本の不幸はRubyっつーガラパゴス言語が作者が日本人だってだけで国内で(ry
227 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:12:50 ] ガラパゴスではないだろ
228 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:30:07 ] つーか国内で別にそんなにRuby使われてないだろ Pythonがそれ以上に使われてないだけで
229 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 14:11:10 ] コアの開発に関する議論が日本語で行われていて世界からはブラックボックスに見えるという 時点で、ある程度のガラパゴス性をもってるよね>Ruby
230 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 14:26:26 ] ruby-coreの開発に関する議論は英語だが?
231 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 14:51:35 ] >>230 そうなん?スマン。 MLでオープンな議論もするけれど、重要なことはMatzを中心とする一部の日本人が エイヤで決めるってどっかのインタビューで答えてたと思ったから。
232 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:28:53 ] Pythonの話しろ!
233 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:39:20 ] pythonから発展した話題だし、少しくらいいいんじゃね? ところで、お前らpythonなにに使ってる?
234 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 01:30:20 ] >>233 電卓代わり、CGI、C/C++で書くほどじゃないプログラム全般。 まともに使い方知ってる言語がC/C++とPythonしかないから、ある意味で楽。
235 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 02:25:43 ] >>233 spamメールのフィルタ
236 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 02:34:24 ] >>233 領土問題と同じで、少しくらいと譲歩してたら乗っ取られる。
237 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 21:36:26 ] 領民あっての領土だから大丈夫
238 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 08:50:39 ] pythonだと作るのが非常に楽なので、python常用して python2だと日本語が扱いづらいので、python3導入して 研究で最適化アルゴリズムとか強化学習のプログラム作ったけど 先輩のc言語で書かれた同じ最適化アルゴリズムで作った巡回セールスマン問題と 実行速度比較したら、10倍以上差があるんだが・・・先輩のが数分で、自分のが数時間 読みやすさ重視でプログラム書いたからループ内で不要な処理とかかなりしてる気もする python3のコンパイラないかな
239 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 08:57:15 ] python3にしか対応してない素晴らしいモジュールを作れば移行が早くなるかも!!
240 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 11:11:07 ] >>238 あったとしても、多少マシになるくらいでCにはとてもかなわないと思うよ。 psycoって3.x対応してないよなぁ。
241 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 11:29:12 ] 10倍ですむならマシだな ものによっては100倍ぐらい差がつく
242 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 11:29:38 ] >>240 多少でもマシにしたいほど時間がかかる・・・ たしか対応してない
243 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 11:30:34 ] 先輩が数十分、自分のだと1日とかそんな感じ
244 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 11:51:10 ] Python2 にもどして、 PyPy 使うと良いよ。 今日 PyPy-1.3 がリリースされたし。
245 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 20:35:28 ] python3ってctypes使えますか?
246 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 21:16:25 ] 使える
247 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 23:37:58 ] ctypesいじくり中。 pointerとbyrefってどう使い分けるんだ? あとlistをそのまま配列としてcに渡したり出来ないのね。 内包表記でばーんと渡したりって訳にはいかないね。
248 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 23:45:14 ] とりあえず全部PythonでつくってProfilerかけて時間のかかる処理だけSWIG+Cで書いてるけど このオーソドックスな方法は素晴らしいっすよ
249 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 02:10:57 ] Cythonも素晴らしいよ。 ちゃんとPython3にも対応してるし。
250 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 15:23:06 ] #! /usr/bin/env python # -*- coding: utf-8 -*- import datetime def sample_loop(n): L = [] for i in range(n): L.append(i) return L def sample_comprehension(n): return [i for i in range(n)] d = datetime.datetime.today() print (":",d.strftime("%Y-%m-%d %H:%M:%S") ) sample_comprehension(50000000) d = datetime.datetime.today() print (":",d.strftime("%Y-%m-%d %H:%M:%S") ) sample_loop(50000000) d = datetime.datetime.today() print (":",d.strftime("%Y-%m-%d %H:%M:%S") ) 実行結果 2010-06-27 15:19:23 2010-06-27 15:19:46 2010-06-27 15:19:46 Python3だとリスト内包表現って遅いの?
251 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 15:43:03 ] >>250 2.6でも3でもリスト内包の方が速い。 2.5以前は知らんが、たぶんリスト内包の方が速い。 dsas.blog.klab.org/archives/51742727.html
252 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 15:50:16 ] こうしないと同じ条件にならないんじゃ? def sample_comprehension(n): L = [] return [L.append(i) for i in range(n)]