1 名前:デフォルトの名無しさん [2008/04/29(火) 23:47:08 ] Python オフィシャルサイト ttp://www.python.org/ ttp://www.python.org/doc/ 日本Pythonユーザ会 ttp://www.python.jp/Zope/ ttp://www.python.jp/doc/ FrontPage - Pythonのお勉強 ttp://python.rdy.jp/ 前スレ pc11.2ch.net/test/read.cgi/tech/1206876081/ ◆関連スレッド Microsoft IronPython 1.0 pc11.2ch.net/test/read.cgi/tech/1157686822/ Python の宿題ここで答えます Part 1 pc11.2ch.net/test/read.cgi/tech/1153585095/ Python Challengeをやろう! pc11.2ch.net/test/read.cgi/tech/1175919288/ Pythonについて(アンチ専用) pc11.2ch.net/test/read.cgi/tech/1203557046/ Pythonに見られるインデントによる制御構造の是非 pc11.2ch.net/test/read.cgi/tech/1169473442/ pythonがこの先生きのこるには pc11.2ch.net/test/read.cgi/tech/1167996371/ Eclipse統合M24【Java/C/PHP/Ruby/Python/Perl】(PyDev) pc11.2ch.net/test/read.cgi/tech/1200918324/ 【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】 pc11.2ch.net/test/read.cgi/tech/1209289408/ デザパタ + Python/Ruby/Smalltalk part2 pc11.2ch.net/test/read.cgi/tech/1175959706/ 2ch検索: [python] find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
477 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:31:05 ] >>472 ぐは禁止。きもい。
478 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:32:10 ] ruby最強!
479 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:33:37 ] regexp = re.compile('.(?=5)')
480 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:50:44 ] >479 それだと一文字消えちゃうだろう常識で考えて
481 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 03:40:04 ] pyunoでOpenOfficeの制御したかったのだけど ubuntu7.10で動かないみたい udk.openoffice.org/python/python-bridge.html Hellow Worldのサンプル動かすと line 5, in <module> localContext = uno.getComponentContext() AttributeError: 'module' object has no attribute 'getComponentContext'
482 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 03:49:34 ] >>468 Perlのバージョンは? 試したらできたよ。 my @f = split /(?=5)/, $str; print join(':', @f), "\n";
483 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 05:24:45 ] >>> import re >>> line = '123,456,79' >>> regexp = re.compile('') >>> regexp.split(line) ['123,456,79'] そもそもこうなるんだもんなぁ
484 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 08:28:25 ] >>477 ぐはははははははははははhahahahahahahahaha!!!!!
485 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 10:14:48 ] ぐは。自己解決しました。
486 名前:デフォルトの名無しさん [2008/05/24(土) 12:39:52 ] >482 perlでもsplitできるね pythonで位置指定の分割ってどうやんだろ
487 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:03:35 ] こんな感じの関数を自分で作って使えばいいんじゃね def split(pattern, string): result = [] start = 0 for m in re.finditer(pattern, string): result.append(string[start:m.start()]) start = m.span()[1] result.append(string[start:]) return result
488 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:14:27 ] リスト返すようにしちゃったけど、ジェネレータにすべきだったか ま、その辺は好きに汁
489 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:06:35 ] >487 re.findall()
490 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:18:04 ] re.findall()がどうしたの?
491 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:33:29 ] Perl で split('', $str); に相当するのは Python ではどう書けばよいですか?
492 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:37:47 ] >>491 list(str)
493 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:16:39 ] オブジェクトのメソッドを一覧で取得するにはどうすればええの?
494 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:24:33 ] filter(callable, dir(hoge))
495 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:25:54 ] [x for x in dir(obj) if callable(getattr(obj, x))]
496 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:30:26 ] >>494 動きません。 自己確認してください。
497 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:48:52 ] 自己完結しました
498 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:51:21 ] >>494 オッサン臭いコードだな。その上動かないってどんだけ(www
499 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:58:55 ] itertools は使えそうで使えない
500 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:03:49 ] >>498 まさに労害(WWW
501 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:17:21 ] おれさまがなおしてやった filter(lambda x : callable(getattr(obj, x)), dir(obj))
502 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:28:11 ] ここまで来ると、わざわざfilterを使う意味なくね?
503 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 00:07:56 ] pythonのlambdaって読みづらいだけじゃね? pythonの基本的な文法と比べると汚い
504 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 00:14:14 ] Guidoもlambdaは嫌いだったと思う。 lambdaを使うのは変態か、自称イケメンハッカーのワンライナー芸人だけだろ。
505 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:19:41 ] どうせ残すなら いろいろできるようにすればいいのに
506 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:32:31 ] cshといっしょでコード互換のために残してるだけなんだから もう新規につかうようなもんじゃないだろ。
507 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 02:44:32 ] Pythonプログラミング入門はクソだとよ。
508 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 03:45:36 ] 自分の言葉で語りなさい
509 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 05:36:58 ] ということにしたいのですね
510 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 09:50:46 ] 懐かしいフレーズだ
511 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:51:46 ] 皆さん lambda と聞くと昔の傷がうずくのですね
512 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:52:28 ] Twisted本、クソ本フラグがたった感が。
513 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 11:37:37 ] うはは、わかりません。
514 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:29:07 ] 関数をファーストオブジェクトとして扱えないのはしょうがないが だからってpython の lambda はちょっと無しだろ C++みたいに演算子()をオーバーロードできればいいのに
515 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:33:36 ] >>514 関数内で関数が定義できるんだから、lambdaはあれで良い。 演算子オーバーロードも、__call__でできるじゃないか。
516 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:40:01 ] うはは、わかりません。
517 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:11:22 ] >>514 Pythonの関数はファーストクラスオブジェクトだが
518 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:23:23 ] ファーストオブジェクトってどういう意味?
519 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:32:38 ] ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%9A%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88 >>514 は、匿名リテラルで宣言できる関数が制限されていると言いたいんだと思う。 でも、def foo() して、 bar = foo; del foo; したら、foo()できなくなる。Pythonのdefは関数定義と 変数への代入を同時にしているというだけなので、関数がファーストクラスオブジェクトと言っても良い。
520 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:00:35 ] >>519 ありがとう。ファーストクラスオブジェクトでググればよかったのか。 俺もPythonのlambdaは気持ち悪いと思う。 あと、exceptで例外が複数のときだけ括弧つけるのも気持ち悪い。
521 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:11:16 ] (UNIX環境の)Pythonってソースプログラム実行中にソースの書き換えってできるの? インタプリタだから、できそうなイメージなんだけど
522 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:13:28 ] pythonって関数内で関数作って関数を返す関数作れたっけ?
523 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:26:28 ] tupleが (a,) ってなるのがきもい
524 名前:デフォルトの名無しさん [2008/05/25(日) 14:50:03 ] python の快活環境どれがおすすめですか?
525 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:54:31 ] >>522 いろんなデコレータのソース読んでみたら?そういうのばっかりだから。 Pythonのデコレータは、関数を引数にして関数を返す関数。 @foo(a,b) def bar(): の場合、fooは、"関数を引数にして関数を返す関数"を作成して返す関数になる。
526 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:58:09 ] 間違えた 快活環境じゃなくて開発環境
527 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:27:51 ] >>522 名前なしでそれができない、ってだけ。 あと定義された時の環境に対して書き換えが効かない。
528 名前:デフォルトの名無しさん [2008/05/25(日) 17:03:38 ] 385 名前:デフォルトの名無しさん[] 投稿日:2008/05/23(金) 22:18:26 助けて java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM.0) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at java.lang.SecurityManager.checkExit(Unknown Source) at javax.swing.JFrame.setDefaultCloseOperation(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.python.core.PyReflectedFunction.__call__(Unknown Source) at org.python.core.PyMethod.__call__(Unknown Source) at org.python.core.PyObject.__call__(Unknown Source) at org.python.core.PyInstance.invoke(Unknown Source) at applet$_PyInner.init$1(applet.java:61) at applet$_PyInner.call_function(applet.java:47) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyTableCode.call(Unknown Source) at org.python.core.PyFunction.__call__(Unknown Source) at org.python.core.PyMethod.__call__(Unknown Source) at org.python.core.PyObject.__call__(Unknown Source) at org.python.core.PyObject._jcallexc(Unknown Source) at org.python.core.PyObject._jcall(Unknown Source) at applet$MyApplet.init(applet.java:139) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
529 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 17:56:17 ] 御臨終です
530 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 17:59:29 ] org が orz の相似に見えた
531 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 19:11:41 ] そういやIronPythonのスレはあるのにJPythonのスレはないんですね
532 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:08:15 ] Jythonのスレならあるでしょ。 専用じゃないけど
533 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:17:07 ] >>523 これならきもくない? tup = ( a, )
534 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:48:17 ] >>525 ,527 ありがとう やってみたら出来たよ これで使いやすいschemeの代わりが出来た
535 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:57:03 ] そんな見た目だけの問題じゃないよ! >533 誰かが「カンマがtupleを作るんだ、カッコじゃない」と言ってたが、 >>> x=() >>> type(x) <type 'tuple'> キモイヨー
536 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 22:22:42 ] >>535 男なら、空のタプルを作りたいときがあるってもんだ。
537 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:00:59 ] python for S60のスレはないよなぁ
538 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:06:35 ] パックリ(i) キモイヨー
539 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:15:23 ] RDBで言うテーブルに対するビュー Cで言う配列に対するポインタ みたいなノリで使える、オリジナルデータを更新可能なスライスみたいなの無いかな スライスみたいにコピーするんじゃなくて参照を握っていて、 更新も出来るやつ 自分で作るしかない?
540 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:44:42 ] うはは、キモイヨー。
541 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:49:16 ] >>537 需要があるのか?
542 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:48:06 ] >>539 ありますよ
543 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 09:27:23 ] >539 10行ぐらいで書けそうだから、必要な人は手元で書いちゃうんでは。
544 名前:デフォルトの名無しさん [2008/05/27(火) 09:57:14 ] ちょちょっっと書いてみていただけませんか?
545 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 11:27:27 ] >>544 書きました。 見せないけど。
546 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:41:49 ] さては11行になったな?
547 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 17:55:58 ] >>539 arrayじゃ駄目なの?
548 名前:539 mailto:sage [2008/05/27(火) 18:28:38 ] レスくれた人どうもです >>542 モジュール名を教えていただけませんか >>543 書いてみましたが、自分は10行では無理でした __getitem()__に負のインデクスやsliceオブジェクトが渡された時の 処理とかをいちいち書くのがウザいです >>547 arrayは全く用途が違うのではないでしょうか シークエンスの部分列を「参照」するだけならただのスライスで良いし itertools.islice()ならコピーを避けられますが、 元のシークエンスを「更新」もしたいわけです
549 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 18:51:41 ] pygameの和訳完成してもいいころなんじゃねーの
550 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:40:47 ] 547は配列を作りたいのかと勘違いした。 ようするに、ポインタに相当するものを作りたいのか。
551 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:53:15 ] うはは、すみません
552 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:10:20 ] >>548 要するにスライスをスライスして新しいスライスを作れればいい(そこを自前で実装するのは面倒)ということだな。 スライスをスライスしてスライスを作るというのはありがちな気がするので既にありそうだが。俺は残念ながら知らん。 自前で実装するのは確かに面倒そうだ。
553 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:02:45 ] >>539 www.rh.to/python/WDB.html こんなのとか? リンク先のViewの説明がそれっぽいとかおもた。 というか牛刀をもって鶏を割くみたいになってる気もする… >>457 def call(inil=[1,2,3,4,5]): srcl=inil; m(srcl,1,3); return srcl def m(x,i,j): _m(x[i:j]) def _m(x): x[0]=1; x[1]=1; x[2]=1 とか思いついて、書いてみる >>> def call(ini): src=ini; dst=m(src,1,4); dst.insert(0,src[0]); dst.append(src[4]); return dst >>> def m(x,i,j): print x[i:j]; return _m(x[i:j]) >>> def _m(x): x[0]=1; x[1]=1; x[2]=1; return x >>> call([1,2,3,4,5]) [2, 3, 4] [1, 1, 1, 1, 5] むぅ。糞コード。可読性悪すぐる…orz call()でintかlistで場合分け必要だし
554 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:15:15 ] numarray
555 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:36:17 ] coding.derkeiler.com/Archive/Python/comp.lang.python/2006-10/msg02680.html これとかヒントになるかも 一部を掬って変化を加えたら、全体が書き換わる…
556 名前:539 mailto:sage [2008/05/27(火) 22:52:01 ] ありがとうございます NumPyですか 数値計算が目的という訳ではなかったので完全に盲点でしたが、使えそうですね ちょっと試してみます
557 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 09:09:02 ] これからはRuby一色の時代。 PerlもPythonも廃れ、Rubyだけが生き残る新時代
558 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 09:42:45 ] その「新時代」になってから勉強しても全然遅くない。
559 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 12:02:30 ] for e in dir(): print e とかで出力されるデータをA-Z, a-z, __??__で 頭文字ごとに改行して出力するにはどうしたら良いですか?
560 名前:559 mailto:sage [2008/05/28(水) 14:23:42 ] >>> def print_elem_n(elem): ... print '\n', elem, ... >>> def print_elem(elem): ... print elem, ... >>> q='' >>> >>> a2z="abcdefghijklmnopqrstuvwxyz" >>> for e in dir(cssutils): ... if q == '' and q in set(a2z): q = e[0] ... if e[0] in set(a2z): ... if q != e[0]: ... print_elem_n(e) ... q=e[0] ... else: ... print_elem(e) 書けた…添削きぼん print文の、改行の取り扱いに嵌る orz
561 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:35:40 ] >>> a2z="abcdefghijklmnopqrstuvwxyz" >>> a2z=range(ord('a'), ord('z')+1)
562 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:35:53 ] groupby使ってみるといいんじゃない? from itertools import groupby from operator import itemgetter for k, g in groupby(sorted(dir(str)), itemgetter(0)): print ", ".join(g)
563 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:36:51 ] >>560 printだけ書けば改行できるのに。 lastchar = dir()[0][0] for e in dir(): if e[0] != lastchar: print lastchar = e[0] print e, これじゃダメ?
564 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:37:50 ] インデント消えちゃったけど、まぁ分かるよね?w
565 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 14:54:57 ] >>562 便利なもんがあるんだなー こんな普通な奴しか思いつかなかった def f(seq): d = {} for s in seq: d.setdefault(s[0], []).append(s) for k in sorted(d.iterkeys()): print ','.join(d[k])
566 名前:563 mailto:sage [2008/05/28(水) 15:07:07 ] Python始めて1週間の俺には", ".join(g) の部分がよく分からなかったが、 gのシーケンスを", "で区切った文字列が得られるのか。
567 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 15:18:09 ] むしろ g は glue の g かもしれないぜ
568 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:07:40 ] >>563 for e in dir(): 1. if 違う要素かどうか判定: 改行\n + フラグを更新する 2. 要素を出力する d。ノートにでもまとめて整理しとく乙
569 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:19:04 ] >>566 個人的には リスト.join(区切り文字) の方がわかりやすいと思ってる。
570 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:27:24 ] 1. FAQ嫁 2. Ruby使え 3. 俺もそう思う
571 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:43:04 ] 引数にジェネレータを与えられるのはstr.joinの一つの利点だと思う
572 名前:563 mailto:sage [2008/05/28(水) 17:51:18 ] >>569 俺も文脈的に直感的でないと思うけど、文字列クラスにjoinメソッドがあるという 形だからしょうがないね。 静的関数として提供した方がいい気がするが、元々静的関数だったのが廃止されて メソッドになったのね。
573 名前:デフォルトの名無しさん [2008/05/28(水) 19:13:53 ] djangoを使ってみようと思っています。 それでまずはmodelを定義してデータを入れるところまではできま した(sqlite3とかで直接DBの中身見て入ったのを確認した)。 だけど、manage.py shellでデータを確認しようとしても見れません。 具体的にはhoge.objects.all()とかってやっても[]が表示されるだ けです。 これはなぜなんでしょうか? あと、adminのhogeの画面でも 5 hoges のように表示されるだけで、DBに格納したデータをいじれたり、見 る事ができない状態です。 何かアドバイスがいただければ助かります。よろしくお願いします。
574 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:13:19 ] うちではみれてる
575 名前:デフォルトの名無しさん [2008/05/28(水) 23:51:30 ] ディショナリをそのキー名の変数にするってどうすればいいんですか? つまり a{hoge:1,foo:2,bar:3} を↓のようにしたいです。 hoge = 1 foo = 2 bar = 3
576 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 23:56:27 ] >>575 入門書嫁。