1 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:45:30 ] Pythonオフィシャルサイト www.python.org/ 日本Pythonユーザ会 www.python.jp/Zope/ まとめWiki python.rdy.jp/ 関連スレ find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python 前スレ pc11.2ch.net/test/read.cgi/tech/1230821097/
411 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 13:22:22 ] MLで翻訳の需要あるか聞かれてたやつだっけ? とても微妙な反応だったなw
412 名前:406 mailto:sage [2009/03/14(土) 15:17:31 ] >>407 何が? u'あ' はOKだけど、 unicode('あ') は UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128) >>408 それをさせないように、普通は del sys.setdefaultencoding してあって、 reload(sys) sys.setdefaultencoding('utf-8') とかしないと初期値のasciiから変更できないのに、、、 みんなUnicodeはきちんと使おうぜ。外部とのやり取りは encode/decode して、リテラルで使うときは unicode('ほげ', 'utf-8') じゃなくて u'ほげ' が正解だ。
413 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:10:21 ] あまりreload(sys)は流行らせるなよ >>409 twistedは処理がボコボコ切られて正直使いにくいからこれ以上流行って欲しくないなあ
414 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:16:10 ] >>413 eventletマンセーですねわかります
415 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 20:16:32 ] >>408 pyshを長いこと使ってるから sitecustomize.pyにsys.setdefaultencoding('cp932')と書いて リテラルはunicode('あ')と書くスタイルが染みついてるw utf-8にするとマジック関係が動かないからなあ・・・ [C:Documents and Settings/Administrator]|2> cd デスクトップ [Error 2] 指定されたファイルが見つかりません。: '\xe3\x83\x87\xe3\x82\xb9\xe3\x82\xaf\xe3\x83\x88\xe3\x83\x83\xe3\x83\x97' IPythonのソースに手を入れたついでに、マジック関係のユニコード化もするか。 とまで考えたところで、なんというか進む方向が酷く間違っている気がしてきたが目をつぶってがんばる
416 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 20:50:36 ] つーわけでユニコード化マジックコマンド。 --- C:/Python25/Lib/site-packages/IPython/iplib.py.bak Sat Mar 14 20:41:18 2009 +++ C:/Python25/Lib/site-packages/IPython/iplib.py Sat Mar 14 20:36:39 2009 @@ -936,6 +936,8 @@ valid Python code you can type at the interpreter, including loops and compound statements. It is added by IPython to the Python builtin namespace upon initialization.""" + + arg_s = unicode(arg_s, 'utf-8') args = arg_s.split(' ',1) magic_name = args[0] @@ -2019,7 +2021,7 @@ # this allows execution of indented pasted code. It is tempting # to add '\n' at the end of source to run commands like ' a=1' # directly, but this fails for more complicated scenarios - source=source.encode(self.stdin_encoding) +# source=source.encode(self.stdin_encoding) if source[:1] in [' ', '\t']: source = 'if 1:\n%s' % source デフォルトエンコーディングをutf-8にする必要はない(compilerにユニコードを食わせたときにutf-8化するのはデフォルトエンコーディングとは関係がない)。 [C:Documents and Settings/Administrator]|1> cd デスクトップ/ [C:Administrator/デスクトップ]|2>
417 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 05:39:24 ] あかん・・・ユニコードリテラルをちゃんと扱えるようになったところで、 print 'あ' が普通に化けるんじゃ本末転倒だなあ。
418 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 10:37:01 ] >>417 from __future__ import unicode_literals これで全部解決
419 名前:デフォルトの名無しさん [2009/03/15(日) 10:51:01 ] 「,」と「%」の記号を16進数にエスケープしたいのですが re.subを使って置換する方法はありますか? 例 (1) 'A is 20%, B is 80%' (2) 'A is 20%25%2c B is 80%25' (1)を(2)に変換したい。 次のコードでは「\1」は通常の文字列ではないのでうまく動作しない。 import re txt = 'A is 20%, B is 80%' print re.sub('([,%])', '%02x' % (ord(r'\1')), txt)
420 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 11:11:14 ] >>419 re.sub('([,%])', lambda m: '%02x' % ord(m.group(1)), txt)
421 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 11:18:06 ] >>419 urllib.quote(txt)
422 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 11:46:15 ] >>418 んだな。~/_ipython/ipy_user_conf.pyのmain関数の最後に、 o.autoexec.append('from __future__ import unicode_literals') を追加。 2> 'あ' <2> u'\u3042' 3> u'あ' <3> u'\u3042' 4> print 'あ' -------------->print('あ') あ
423 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 12:06:10 ] 416のarg_sのユニコード化がエラーになるので削除。 unicode()にユニコード食わせるとユニコードのままにならなかったっけ・・・? で、デフォルトエンコーディングはcp932かmbcsにしとく必要があるようだ
424 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 12:25:42 ] >>423 unicode() の第一引数が unicode オブジェクトの場合は、第二引数があると エラーになる。 if not isinstance(arg_s, unicode): unicode(arg_s, 'utf-8')
425 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 13:21:20 ] >>424 なるほど。isinstance()しとくしかないようだなぁ。 というかunicode_literalsのためだけに2.6にあげたよ!あげたよ!
426 名前:デフォルトの名無しさん [2009/03/15(日) 13:27:29 ] >>420 ,421 ありがとう。 re.sub('([,%])', lambda m: '%%%02x' % ord(m.group(1)), txt) 第二項目が関数だと、Matchオブジェクトを引数にして呼び出されるのか。 urllib.quote(txt) 確かにこの方が簡単ですね。 ただ今回はファイルの後方互換性が必要で、 エスケープするのは記号2種類だけにしたいので とりあえず文字列置換を使うつもりです。
427 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 13:45:03 ] txt.replace('%', '%25').replace(',', '%2c') じゃいかんの?
428 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 15:48:38 ] >>427 Ruby使う事にしたので問題ないです。
429 名前:デフォルトの名無しさん [2009/03/15(日) 21:33:17 ] >>427 今回の場合はそれで十分ですね。 実はPerlのコードを参考に作っているんだけど Pythonでもコンパイルとかなしで出来るのか知りたかったので 「re.sub」で聞いてみました。
430 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 21:47:25 ] パイソンのRadツールって何があります?
431 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 23:12:03 ] Rubyですかね。
432 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:08:07 ] よくわからんが、エンコーディングの設定が間違ってるでFA?
433 名前:430 mailto:sage [2009/03/16(月) 01:24:58 ] Rubyにしてみます。
434 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:31:18 ] あるある
435 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:42:22 ] こうしたRuby厨の工作によりまともな人はRubyを嫌うのであった
436 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 03:30:38 ] てかruby厨ってrubyしか使ったことないかあるいは使えないんでひたすら布教するんだろうな 複数の言語を使いこなせないとは哀れな
437 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 03:31:47 ] どこの世界に>>431 みたいな布教をする奴がいるんだw
438 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 04:34:45 ] もともとはそういう奴らがいたから、現在そういうネタになってるんだよw
439 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 04:41:44 ] パールときてルビーときて。 次はどんな宝石だい?
440 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 05:00:24 ] 満を持してダイヤモ
441 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 05:08:34 ] ・・・花崗岩とか?
442 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 10:53:24 ] トルコ石まで続くかもなw
443 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 14:34:47 ] ttp://sankei.jp.msn.com/science/science/081027/scn0810271031004-n1.htm ttp://sankei.jp.msn.com/science/science/081110/scn0811101543000-n1.htm ttp://sankei.jp.msn.com/science/science/090112/scn0901121402003-n1.htm 宝石の条件の一つには硬度が高いことも重要である。 これは、硬度が低い鉱物の場合、経年による砂埃(環境に遍在する石英など)による風化・劣化のために、 観賞価値が失われてしまうためである。 例としてダイヤモンドはモース硬度10、ルビー・サファイアはモース硬度9である。 石英のモース硬度は7であり、これらの宝石の硬度は石英のそれより高いことに注意されたい (オパールなどは例外的に硬度が低い)。 硬度以外の条件として色彩、透明度、希少性など鑑賞的価値・財産的価値・所有の欲求を満たす性質が重要である。
444 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 12:11:42 ] >>411 2年前なら確実に買っただろうけどな。
445 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 14:29:19 ] reprって何て読むのでしょうか? また、名前の由来は何でしょうか?
446 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 14:39:50 ] representかな?
447 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 14:41:24 ] れぷると読んでいる representだと思っている 俺はな
448 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 15:13:35 ] representation、表現 マニュアルを嫁 repr(object) Return a string containing a printable representation of an object. (...)
449 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:46:09 ] >446-448 ありがとうございます マニュアルは和訳しか呼んだことがなくて気付きませんでした…
450 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 01:31:58 ] マニュアル読まないと分からない言語って糞じゃないですか?
451 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 01:39:19 ] そりゃマニュアル読まずとも理解できればそれにこしたことはないけど、 開発言語くらいの規模だとマニュアルなしでは非常に厳しい。 マニュアル読まずとも習得できる言語ってHQ9+とかのジョーク言語くらいじゃない?
452 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 02:19:35 ] IPython使ってるなら ? 付けるだけ。 In [10]: repr? Type: builtin_function_or_method Base Class: <type 'builtin_function_or_method'> String Form: <built-in function repr> Namespace: Python builtin Docstring: repr(object) -> string Return the canonical string representation of the object. For most object types, eval(repr(object)) == object.
453 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 03:01:26 ] >>> help(repr) Help on built-in function repr in module __builtin__: repr(...) repr(object) -> string Return the canonical string representation of the object. For most object types, eval(repr(object)) == object.
454 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 23:20:58 ] わかるよ、習うより慣れろってことね。わかります。 だけど、マニュアル見た方が良い場合もある。 バージョンによる文法の違いとか、 他の言語を使ったことがあるけど、pythonに移行したい場合。 help方式は、そもそも、索引する単語が分かっている場合にしか使えない。
455 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:41:47 ] scipyのバイナリは SSEがサポートされて無いと使えないんですか?
456 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:55:06 ] そういう質問してる時点で駄目だと思う
457 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 01:06:30 ] んー CPUがSSE3をサポートして無いといって中断するんだよな。 WinでのbuildについてはOfficialにマニュアルもないし… ATLASとBLAS入れてMinGWでeasy_installか?
458 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 09:14:01 ] Rubyしかないな
459 名前:デフォルトの名無しさん [2009/03/19(木) 18:08:57 ] Cythonって既にpython3に対応してるんだな。 lxmlがpython3に対応したというのを見て初めて知った。
460 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 02:04:44 ] パイソン学び始めて1日目ですが 数当てゲームの作り方を ヒントだけでいいので教えてください。
461 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 02:34:33 ] 数当てゲームでググる
462 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 02:55:17 ] そのぐらい自分で考えてフローチャートでも書いてみれ
463 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 03:41:11 ] うおお 頭がパンクしそうだ
464 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 04:20:42 ] >>460 import random while(True): print '0-9? ', print 'ok' if int(raw_input()) == int(random.random() * 10) else 'bad'
465 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 04:23:25 ] >>464 なんか見たこと無い構文がいっぱいorz プログラミングって難しいですね・・・
466 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 04:48:52 ] int(random.random()*10) よりは random.choice(range(0, 10)) のほうがよくね?
467 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 05:04:26 ] random.randint(0, 9)
468 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 05:53:35 ] >>466-467 ありがとうございます 勉強になります
469 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 05:55:10 ] 毎回乱数発行してたら0〜9まで10回入力しても当たらんケースがあるのかw
470 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 06:01:14 ] 分かってるとは思うけど各回の期待値は1/10だから 10回連続で外れる確率は0.9**9で35%くらいある 逆に乱数一回だけ発行だと10回以内で確実に当たる
471 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 08:44:10 ] 35%もあるのか
472 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 10:12:05 ] そんなことよりエロゲつくってくださいよぉ
473 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 10:16:37 ] 了解
474 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 10:39:39 ] 音ゲー作ろうかと思ったけどMIDIわかんえ
475 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 12:33:21 ] ttp://www13.plala.or.jp/kymats/study/MULTIMEDIA/mciCommand_midi.html ttp://www13.plala.or.jp/kymats/study/MULTIMEDIA/waveOut_create.html ttp://www13.plala.or.jp/kymats/study/MULTIMEDIA/mciCommand_play.html
476 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 17:05:58 ] 2.6 と 2.5 の共存はどうやるのがいいんでしょうか? 窓環境で ctypes で dll にアクセスする用途で 2.6を 入れたはいいものの、環境変数の設定を 2.5 -> 2.6と 設定し直す手間がとても面倒なんです…
477 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 17:39:23 ] そうだね
478 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 19:58:48 ] 3もでてるのに何で今更2.6が使いたいの? モジュールの対応状況ならまだ2.5が最良だろ?
479 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 20:01:37 ] >>478 3はまだ先行者による地雷発掘中だから一般人は使っちゃダメ。 2.6 に移行して from __future__ しまくるのがベスト。
480 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:37:35 ] とか言ってる割には 今から使い始めるには3からが良いよ ってのを良く見るんだが… まぁ、バグ出しの問題と 仕様変更による混乱回避の問題は別物だけど 使っちゃ駄目ってのもおかしな話だ だったらリリースすんなよって言われても仕方ない
481 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:53:31 ] >>今から使い始めるには3からが良いよ 言ってねーよ。少なくとも2chでは…
482 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 00:10:39 ] ruby1.9のがはるかに先をすすんでいる。
483 名前:デフォルトの名無しさん [2009/03/22(日) 00:12:09 ] >>482 それは絶対にないwww
484 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 00:38:56 ] ipython 重すぎね? 何をそんなにがりがり読み込んでんだよ
485 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 00:45:05 ] レジストリ
486 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 00:54:09 ] それ古いんじゃね 今ならjython使え
487 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 00:57:28 ] Duron600Mhz, mem 256MBなPCを買い換えろよ
488 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 14:19:00 ] >>476 d.hatena.ne.jp/walf443/20090322/1237692764 2.5系を環境変数に登録しといて 2.6系, 2.7系, 3.0系, 3.1系を呼び出すような スクリプトを書いて > python distributed.py test_script.py みたいに呼び出せればいいじゃないか、とか 思いつくもののどう書いたらよいか思い付かず(沈
489 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 15:42:09 ] 環境変数ってbinフォルダへのパスだったの? それならバッチ書いてパスの通ったとこに置いとけばいいよ python3.1.bat c:\Python31\bin\python.exe みたいなので ほかの環境変数もいじれるよ
490 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 15:58:42 ] 俺は単にexeの名前変えてる python25.exeとかpython26.exeとか で、両方のbin/を環境変数に登録しとけば いちいち環境変数弄らんでも、いつでも好きなほうを使えるよ
491 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 16:30:20 ] 数当てスクリプト作ってるんですけど、 乱数を一回だけ発行するにはどうすりゃいいんでしょうか・・・?
492 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 16:31:49 ] >>491 一回だけ生成すればいいだけだろ 意味が分からん
493 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 16:32:04 ] そのくらいぐぐろうよ・・・ Python 乱数 で一発だよ
494 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 16:46:22 ] ぐぐってもよくわかりません
495 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:01:26 ] while(True): print'1-9?' if int (raw_input())==random.randint(1,9): print 'ok' else: print'bad' これで合ってます?
496 名前:デフォルトの名無しさん [2009/03/22(日) 17:04:47 ] >>491 import time;time.clock()
497 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:08:06 ] >>495 まちがってます。ヒントは型。
498 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 22:43:45 ] >495 ループに入る前に生成して変数に
499 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 06:08:06 ] >>495 みんなのPythonから始めたほうがいいと思う www.amazon.co.jp/ みんなのPython-柴田-淳/dp/479733665X
500 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 06:25:16 ] ミス www.amazon.co.jp/gp/product/479733665X
501 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 14:17:27 ] いやいや、分厚い初めてのPythonで挫折しようぜ
502 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 18:31:06 ] 漏れはdoskeyだね。 doskey py26=c:\python26\bin\python $* doskey py31=c:\python31\bin\python $* とかバッチファイルに書いて、 cmd.exe /k, c:\util\setdos.bat とかショートカット作ってこれを実行するようにしてる。
503 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 11:03:28 ] >>484 IPython 0.9.1 + Python 2.6.1 の環境で、 Sets の Warning 出している部分を #import Sets Sets = sets と書き直してやったら早くなった気がする。
504 名前:503 mailto:sage [2009/03/24(火) 11:15:53 ] やっぱりあまり変わらないかも… どっちも1秒で起動する。
505 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 15:21:00 ] ヤマタノ
506 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 15:30:54 ] ダルに代わったときはどうなることかと思った
507 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 16:22:43 ] すいません、質問です。 関数内で構造体に値を入れまくって、関数抜けた後 次の関数でその値を参照する。と言う感じのことをやるにはどうしたらよいでしょうか? クラスメンバに代入する方法で書いてみたのですが、 なんか上手くいきませんorz 説明下手ですいません(´Д`;
508 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 17:01:17 ] 構造体って何?
509 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 17:10:34 ] class foo: pass x = foo() x.y = 1 x.s = 'abc' x.b = True これって構造体っぽい物ですか?
510 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 17:31:14 ] 動的にメンバ変数を増やせるメリットがいまだに分からない
511 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 17:45:20 ] >>507 っす。 すいません、色々試してたら自己完結しました。 引数とかでエラー出てると思ってたら、配列指定のトコでこけてましたorz 修正前:print frm.name 修正後:print frm[0].name イラネーYO、と言われそうですが、 色々試してたソース張ってみます。