1 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:25:51 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、 お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>950 辺りで 前スレ くだすれPython(超初心者用) その3 pc12.2ch.net/test/read.cgi/tech/1232055225/ 関連スレ Pythonのお勉強 Part33 pc12.2ch.net/test/read.cgi/tech/1240678081/
475 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:06:50 ] www.python.jp/doc/release/lib/module-hashlib.html
476 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:08:54 ] どのソースに書いてあるかドキュメントに書かれていればいいんだがなー 組み込み関数だとgrepしてもノイズ多くてゲンナリ
477 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:11:08 ] memo ttp://mail.python.org/pipermail/python-dev/2003-June/036556.html ttp://stackoverflow.com/questions/793761/built-in-python-hash-function ttp://www.unixuser.org/~euske/doc/python/python-lisp-j.html
478 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:23:01 ] >>475 それじゃないww
479 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:29:32 ] help(hash)したら書いてあるだろうが
480 名前:476 mailto:sage [2009/07/23(木) 10:22:52 ] >>479 俺へのレスじゃなくて>>463 へのレス? やってみたけど、どちらにしても書いてなかった
481 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 10:28:17 ] Summer holidays
482 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 10:47:47 ] 機能性文盲はつらいよ
483 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 10:52:46 ] いいからやってみろよ 上で求められてるような情報は出てこないから
484 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:00:18 ] 求められてるのって、完全hashかどうかだよな? > Return a hash value for the object. Two objects with the same value have > the same hash value. The reverse is not necessarily true, but likely. 明快に書いてあるよな、「逆は真とは限らない」って。
485 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:08:54 ] hash()の入力の値域と出力の値域を比較すれば見当がつくじゃまいか 出力は整数なんだから衝突せずにすむ入力の範囲はせいぜいそれと同程度だ Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] on win32 >>> hash(0) 0 >>> hash(1) 1 >>> hash(-1) -2 >>> hash(-2) -2
486 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:39:32 ] >>484 完全ハッシュって双方向に一意なんだっけ って複数のキーで同一の値が取れたら完全ハッシュじゃないもんな
487 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:41:55 ] >完全ハッシュって双方向に一意なんだっけ no >って複数のキーで同一の値が取れたら完全ハッシュじゃないもんな no
488 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:00:32 ] えっ
489 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:42:36 ] >> 完全ハッシュって双方向に一意なんだっけ > > no > no >> って複数のキーで同一の値が取れたら完全ハッシュじゃないもんな > > no no
490 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:44:34 ] > no no なんだよおまえらww
491 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:55:19 ] > なんだよおまえらww neet
492 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 13:22:51 ] なんなんだこのスレ
493 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 13:23:49 ] 衆議院議員をめざしている人が、 本当のところどう思っているのか、 きいてみよう。 ttp://moderator.appspot.com/?hl=ja#16/e=9df89 "名前を連呼するだけの選挙宣伝カーを、「スパム認定」して禁止しませんか?" Lambda
494 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 16:24:25 ] >>474 Python 自体のソースを見るのが確実かと。 svn.python.org/view/python/trunk/Python/bltinmodule.c?revision=73776&view=markup の builtin_hash() が組み込み関数の hash() に相当する。 svn.python.org/view/python/trunk/Objects/object.c?revision=73076&view=markup に PyObject_Hash() の定義がある。
495 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:07:08 ] ソースやドキュメントなんて読むまでもないだろ。 もし仮に完全ハッシュだとしたとしたら 論理的に考えてhash関数の引数はシーケンスでないとならない。 そうなってないんだから当然hashは完全ハッシュじゃない。 たまには頭使わないと腐るぞ。
496 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:10:25 ] そもそも「ハッシュ」の意味さえ知っていれば、あんな疑問は湧かないはず
497 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:31:09 ] >>495 > 論理的に考えて Python的に考えて、でしょ 型によって全く扱いが違う関数なんて 他の言語ではありふれてるわけで。 スレタイ読める?
498 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:35:19 ] 例えば数値なら桁毎のシーケンスの生成なんて簡単なことだし
499 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:43:40 ] スレタイ読めるなら いちいち「Python的に」なんて書かなくても補完できるはずなのにね。
500 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:12:47 ] >>498 桁毎のシーケンスって何? 整数型のbit数毎に異なるテーブルを用意する"なら" 整数型の完全ハッシュが作れるってこと? 条件を絞れば完全ハッシュなんていくらでも作れるに決まってるだろ? たとえば同一性を判定するためだけのハッシュとか、 ある種のFSでファイル名をキーとするハッシュとか。 自分こそスレタイ読めるなら、型によってとか他の言語ではとか 勝手に条件付け加えないでくれ。
501 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:15:53 ] 釣り針でかいなw
502 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:18:49 ] そんなもんがあるとして、少なくとも、引数の範囲とかも引数にしないと無理なんじゃまいか?
503 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:27:01 ] 引数の範囲?bitwidth?
504 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 00:28:27 ] 朝生はじめるよー
505 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 19:38:43 ] ┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい!
506 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 15:51:39 ] Output folder: C:\DOCUME~1\user\LOCALS~1\Temp Install dir for actual installers is C:\DOCUME~1\user\LOCALS~1\Temp "Target CPU handles SSE2" "Target CPU handles SSE3" XPにnumpyインストールしようとしたらこうなったんだけどどうしたらいいんだ?
507 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 16:04:23 ] あーインストーラー保存せずにそのまま実行したらできました
508 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 16:22:10 ] おれ、C:\temp\downloadsになんでもダウンロードして実行する癖あるんだけど、 俺の場合そうはならなかった気がするな?
509 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:07:06 ] Mac OS X + Python2.5です ファイルの出力なのですが、 f = open('hoge', 'w') f.write('line 1\n') としても改行されません・・・ なにか間違って理解しているのでしょうか?
510 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:10:45 ] > write( str) > > 文字列をファイルに書き込みます。戻り値はありません。 > バッファリングによって、flush() または close() が呼び出されるまで > 実際にファイル中に文字列が書き込まれないこともあります。
511 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:13:29 ] 失礼しました。 close() はしているのですが、 ファイルには line 1\n と出力されてしまいます・・・
512 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:17:15 ] f = open('hoge', 'w') f.write('line 1\n') f.close() こちらでは再現できない。
513 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:19:47 ] 原因が少しわかりました・・・ PyDev(Eclipse)を使っていたのですが、\がバックスラッシュにならないようですorz コンソールからvi で編集しなおして\(バックスラッシュ)で改行されました。 これはPyDevの挙動がオカシイんですかね、それとも仕方ないんでしょうか?
514 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 22:27:11 ] >>509 脊髄反射でバッファリングだと思ってしまった。ごめん macのyen signには癖があるって話を聞いたことがある % od -tx1 hoge して結果を貼ってみて
515 名前:511 mailto:sage [2009/07/26(日) 22:29:39 ] 解決しました Macに不慣れなので知らなかっただけで、通常に¥キーを押すと円記号、バックスラッシュを入力する場合はOption + ¥キーを押すようです。 ターミナルの場合は強制的にバックスラッシュなのかな?
516 名前:デフォルトの名無しさん [2009/07/26(日) 22:35:46 ] pythonで皆さんどんなことしてるんですか? 具体的に何をしてるか教えて下さい。
517 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 23:40:35 ] pass
518 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 00:10:59 ] ナニしてるんだろうねぇ
519 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 01:55:52 ] >>516 お仕事に使えるよ? ユーティリティ色々、前はVB.NETだったけど今は大概Pythonで書いてる。 この間は、ftpサーバーの状態をチェックして警報ショートメッセージ出すのを書いた。
520 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 02:39:53 ] Windowsアプリ作ってるよ。 Thinkpadとか、ツール類がPython使ってるから検索するとPython関連ファイルが 沢山入ってる。 バージョン古いし、ツール類の大半要らないからアンインストールして自分で最新の Python入れるけど。
521 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 09:48:56 ] Python のコマンドラインシェルや、iPython 等で タブ幅(tabstop)を指定するにはどうすればよいですか?
522 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 16:54:50 ] a = [' ','a',' ','b',' ','c',' '] のように空白を要素に持つlistがあります. このlistから空白要素を全部削除するのに, for a in range(a.count(' ')): a.remove(' ') と書いているのですが,もっとスマートに書けないでしょうか.
523 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:01:33 ] a = [i for i in a if a != " "] とか?
524 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:02:34 ] a = [' ','a',' ','b',' ','c',' '] print filter(lambda x: x != ' ', a) or a = [' ','a',' ','b',' ','c',' '] print [x for x in a if x != ' ']
525 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:02:52 ] [e for e in a if e != ' '] filter(lambda x: x != ' ', a)
526 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:04:35 ] >>524 ケコーンしようぜ
527 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:05:28 ] filterって関数があるんですね.ありがとうございました.
528 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:06:31 ] 全然スマートにみえないんだが気のせいかな?
529 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:22:53 ] リストそのものの書き換えと、リストから要素を除いた新しいリストを作るののどちらをやりたいんだ?
530 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:25:32 ] >>528 filterとかlambaとかスマートというか自己満足だよね
531 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:27:06 ] lambdaはともかくfilterはできる子
532 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:33:19 ] >>531 >filterはできる子 そういうことにしたいのですね。
533 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:36:59 ] 全然スマートにみえないんだが気のせいかな?
534 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:38:18 ] 全然スマートにみえないんだが気のせいかな?
535 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:44:34 ] reduce(lambda x, y: x + ([y] if y != ' ' else []), ' a b c ', [])
536 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:45:22 ] reduceって関数があるんですね.ありがとうございました.
537 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:52:20 ] [i for i in ''.join(a).split(' ') if i] or filter(lambda x: x, ''.join(a).split(' '))
538 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 18:01:52 ] filter(' '.__ne__, [' ','a',' ','b',' ','c',' '])
539 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 18:17:50 ] それいいね
540 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 18:53:54 ] 一行野郎め
541 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 20:18:26 ] Tkinterで書いたものをwxで書き直してます。DnDが要件にあったので。 wxは初めてです。 wxってウィジェットの位置とかサイズを指定しますが、 あれって環境によってフォントサイズが変わったりした場合、 重なったり、端が切れちゃったりしないんですかね。 TKライクに並べて行けば自動的にサイジングしてくれる 配置のやり方があれば教えていただけないでしょうか。 sizerでどうにかするんだろうとは思うのですが、具体的なや り方に行き当たっていない状態です。 あと、TKでいうところのLabelFrameってwxにはないんでしょうか。 現状StaticBoxとStaticTextで似たようなことしてます。 よろしくお願いします。
542 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 20:20:36 ] XRCed
543 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 20:21:18 ] Sizer
544 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 21:13:43 ] >>540 なんてすばらしい日本語訳かと思ったら こんなに市民権を得てるとは。。。 www.google.co.jp/search?q=%88%EA%8Ds%96%EC%98Y
545 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 22:19:10 ] python 一行野郎ってジャンルはまだ無いのな
546 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 22:56:33 ] インデントのおかげで一行で書くのはむずかしいからな
547 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 01:06:56 ] >>544 いつ頃、どこで生まれた訳なんだろうな。 俺が初めて知ったのは『Effective Perl』の邦訳版で、これが10年前の本だけど。
548 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 01:12:39 ] Rubyしかないよなあ
549 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 02:46:47 ] >>516 C言語で書いたシミュレーションプログラムに Python で GUI を付けたり、シミュレーションの 一部で新しいことを試したいとき(例えばある方程式を解く時にニュートン法が有効かどうか確か めたいときなど)に Python で試作プログラムを書いてみたりしています。 先日、線形計画問題を解く必要があって Python でシンプレックス法を書きました。線形計画問題 というのは、「製品Aには材料Sが3個、材料Tが2個必要で、製品BにはSが1個、Tが4個必要です。 Aは100円、Bは150円で売れます。手元にはSが40個、Tが30個あります。売上金を最大にするには AとBを何個ずつ作るのが最適でしょうか?」というような問題のことです。この場合、未知の変数は Aの個数とBの個数の2つなので手作業で解いてもいいのですが、未知の変数が増えるとたいへん なので適当な計算方法で解きます。シンプレックス法はその1つです。で、Python の float 型で 計算したら計算誤差のせいか問題によっては計算が収束しませんでした。そこで、アルゴリズム 本体はそのままで、入力値(シンプレックス表の要素)のデータ型を fractions.Fraction クラス に変えたところ、うまく解けるようになりました。Fraction クラスは有理数(分子と分母が整数で 表された分数)を実装したクラスで、float に比べて遅いですが計算誤差がありません。アルゴ リズムはそのまま変更なしで、入力値のデータ型を変えただけで収束が改善されたので感激しま した。他の言語(たとえばC言語)でも計算に使うデータ型を変えられるようにプログラムを作る ことはできますが手間がかかります。その点で Python ははるかに手軽で強力だと思いました。
550 名前:522 mailto:sage [2009/07/30(木) 09:14:17 ] 結局a = [i for i in a if a != " "] が分かりやすいので使わせて貰います. ありがとうございました.
551 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 09:49:48 ] filterとかlambdaを無駄に使いたがるヤツには気をつけた方がいい
552 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 13:36:25 ] >>550 それで良いのかよw if i != ' ' だろ?
553 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 16:48:22 ] 俺はlispいじってたもんでホイホイlambdaやfilterを使っちゃうな
554 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:04:20 ] クラス皆無で関数だらけのスクリプトを量産する漏れみたいなもんだな
555 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:41:54 ] [e for e in a if e != ' '] filter(lambda x: x != ' ', a) どっちが速い? 要素が1000万個くらいあっても大丈夫?
556 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 18:34:06 ] >>555 速さなら前者の方が(たぶん倍以上)速い 要素の大きさは、速度よりもメモリの問題が発生する。 リストではなくジェネレータの利用を考慮するといい。 (e for e in a if e != ' ') もしくは itertools.ifilter
557 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 20:26:35 ] 速さなんて考えたこともないぜ
558 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 03:18:40 ] > 要素が1000万個 PyCUDAとか使うべきだぜ!
559 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 08:43:10 ] (e for e in a if e != ' ') [e for e in a if e != ' '] 1000万文字ほど用意して比べたら、 後者が圧倒的に遅く、前者はほぼ一瞬で終ったのですが なんでここまで差がつくの?
560 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 10:12:51 ] ジェネレータ
561 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 22:08:13 ] そういえば、 1桁〜9桁くらいの数字だけで構成された文字列が大量に格納されたリストって 全部をint型に変換してソートするよりも 全部を文字列のままzfillで0埋めしてソートした方が速かったんだが そういうもんなの?
562 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 22:12:48 ] 今ジェネレータの意味がわかったw 関数系だとデフォで全部かYOって思ってわけわかめだったが、 こういう遅延評価ならわかりやすいな。俺でも使えそうだ。
563 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 07:40:35 ] >>561 kwsk or source
564 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 10:55:54 ] そりゃ文字列だったのをそのままソートと 文字列だったのを数値に変換してソートだと 数値変換の処理が余計なステップになるよね
565 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 12:56:06 ] みんなエディタ何使ってるの?
566 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 13:00:11 ] zfillで0埋めする処理は余計なステップにならないのか
567 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:05:01 ] Pythonぐらい簡単でゲーム作るのに適した言語ない?
568 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 15:11:23 ] sqliteで、最後に挿入した行のrowidを取得する方法ってないのでしょうか? c/c++なら「sqlite3_last_insert_rowid」というAPIがあるのですが・・・
569 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 15:28:13 ] cursor.lastrowid
570 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 17:36:57 ] >>561 そりゃ少なくとも2倍以上メモリ消費してるしな
571 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 22:09:46 ] >>567 RPGツクールに内蔵されたRubyだな。
572 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 16:01:12 ] 質問なんですが Linux上のPyGTK + Gladeで作ったアプリを Pythonなどがインストールされていない まっさらの状態のXPで動くようにしたいんですが 一緒にライブラリとかを同梱させれば可能になるんでしょうか? 可能ならそういった情報が乗ってるサイトとかを 教えてください
573 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 23:28:50 ] py2exeじゃダメなん?
574 名前:デフォルトの名無しさん [2009/08/17(月) 14:06:43 ] 3.1.1 の Windows インストーラ版はまだかな〜
575 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:19:27 ] Pythonの属性について。 モジュールオブジェクトやインスタンスオブジェクトobjに対して、 obj.x = x のように、新しい属性をつけることはできますが、 文字列オブジェクト等でこれをやると、AttributeErrorが発生します。 これは文字列オブジェクト等の__setattr__()メソッドがエラーを発生するように定義してある、 という理解で良いのでしょうか?
576 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 23:02:27 ] >>575 組み込みオブジェクトは実装上そうなってる。 実際 class myStr(str): pass と継承すれば望みのことが可能。 Pythonはそのへんの美しさは二の次なので好き嫌いが分かれるかも。
577 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 23:06:48 ] 文字列はimmutableだし美しさを損なってるってほどでもないような
578 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 23:50:14 ] >>576 理解力が悪くてすみません。 strを継承したクラスのインスタンスには属性を追加できる → __setattr__()は関係ないってことで良いでしょうか?
579 名前:575 mailto:sage [2009/08/18(火) 00:14:45 ] 連続で申し訳ないです。 今いろいろいじっていたら、そもそも組み込みオブジェクトが __dict__属性を持っていないことがわかりました。 オブジェクトの属性は__dict__に格納されているみたいなんですが、 じゃあこの__dict__自身はどうなっているのでしょうか。 混乱してきましたw
580 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 13:21:44 ] >>579 __dict__ は dict型のオブジェクトだよ。 属性の管理方法は、組み込み型ならC言語で自由に管理できるし、Pythonのclassで __setattr__ を定義しない場合はデフォルトの __setattr__ が __slots__ か __dict__ を使って 管理する。
581 名前:575 mailto:sage [2009/08/18(火) 15:50:11 ] >>580 ああ、なるほど__slots__ですか。 これを定義しておくと、これに格納されていない名前の属性は付けられなくなるんですね。 ありがとうございました。
582 名前:デフォルトの名無しさん [2009/08/18(火) 17:49:09 ] # main.py import mymodule print mymodule.getmypath() # mymodule/__init__.py def getmypath(): return __file__ 引数等に何も渡さずにgetmypath()でmain.pyのファイルパスを取得する方法はありますか? python2.5を使ってます
583 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 18:06:27 ] os.fullpath(__FILE__)
584 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 18:35:37 ] これでいいの? sys._getframe().f_back.f_code.co_filename
585 名前:582 mailto:sage [2009/08/18(火) 20:25:52 ] >>584 できました!ありがとうございます。
586 名前:586 [2009/08/19(水) 21:17:25 ] はじめまして。 BeautifulSoupを使っていて、 <class 'BeautifulSoup.NavigableString'>をstrに 変換するにはどうすればよいのでしょうか?
587 名前:586 [2009/08/19(水) 21:42:58 ] メソッドencodeを使ってもエラーになります。 <class 'BeautifulSoup.NavigableString'>オブジェクトから 1文字ずつとりだすとunicodeになるので、 無理やりunicodeに変換することはできました。 なので解決といえば解決なのですが、美しくないです…
588 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 02:06:21 ] unicode(s) str(s)
589 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 02:09:18 ] unicode(s.prettify(), s.originalEncoding)
590 名前:デフォルトの名無しさん [2009/08/20(木) 05:33:30 ] Pythonでは「文字列」と「ユニコード文字列」と「バイト列」 は異なるオブジェクトとして明確に区別されてるのでしょうか?
591 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 07:41:29 ] 2でも3でも文字列とバイト列は同じ 文字列リテラルとしてソースに書く場合はやや注意が必要
592 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 07:49:52 ] >>591 いや違う 2: バイト列=文字列≠ユニコード文字列 3: バイト列≠文字列=ユニコード文字列
593 名前:590 [2009/08/20(木) 08:40:32 ] >>592 なるほど,その説明はわかりやすい encode とか decode とかのメソッド見たとき, 何から何へなんだよ〜元と先が指定できなきゃ だめなんじゃね?って悩んだ.
594 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 10:59:28 ] urllib.urlopenで読んできたHTMLをBeautifulSoupに渡すとunicodeにしてくれますが、 その中に囲み数字みたいな機種依存文字があるとencodeでeuc-jpとかにしようとすると 例外が発生しますよね? これってみなさんどうしてます?
595 名前:デフォルトの名無しさん [2009/08/20(木) 12:37:08 ] unicode-escape
596 名前:デフォルトの名無しさん [2009/08/20(木) 12:40:43 ] encode('euc-jp', errors='replace') encode('euc-jp', errors='ignore') encode('euc-jp', errors='strict')
597 名前:デフォルトの名無しさん [2009/08/20(木) 12:57:40 ] ttp://www.python.jp/doc/release/lib/string-methods.html ttp://www.python.jp/doc/release/lib/codec-base-classes.html
598 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 14:13:08 ] euc_jis_2004
599 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 14:47:56 ] ttp://www.python.jp/doc/release/lib/standard-encodings.html
600 名前:594 mailto:sage [2009/08/20(木) 19:51:48 ] ヒントありがとうございます。 色々試してみましたが、文字コード回りは今一つ良く分かりませんね。 みなさんのヒントとウェブ情報を参考にとりあえず次のようにしてみました。 html = urllib.urlopen(url).read() html_coding = chardet.detect(html)['encoding'].lower() soup = BeautifulSoup(unicode(html, html_coding, 'replace').encode('utf-8')) text = soup...... print text.encode('euc-jp', 'replace') 単純にprintの時に text.encode('euc-jp', 'replace')とかだと、何故か全体がわけわからないコードになりました。 2.5.4でやってるんですが、3.xになるとこの辺もっとスッキリするんでしょうか。
601 名前:デフォルトの名無しさん mailto: [2009/08/20(木) 22:08:07 ] 「Python 3.1.1」リリース pc11.2ch.net/test/read.cgi/pcnews/1250773470/
602 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 07:36:16 ] >>600 html = urllib.urlopen(url).read() soup = BeautifulSoup(html) text = soup...... print text.encode('euc-jp', 'replace')
603 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 07:38:11 ] html = urllib.urlopen(url).read() soup = BeautifulSoup(html) text = soup...... print unicode(text, soup.originalEncoding).encode('euc-jp', 'replace')
604 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 14:22:39 ] あのLinux使ってる人が一行目に書くのはなんだ?
605 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 14:42:43 ] shebang
606 名前:デフォルトの名無しさん [2009/08/23(日) 22:49:29 ] はじめまして。 最近、pythonを始めました。 ipythonをとても便利に使っています。 ipythonに関して、一つ質問なのですが、代入式の場合に、評価の値が表示されるようにすることはできないでしょうか?
607 名前:デフォルトの名無しさん [2009/08/24(月) 13:03:36 ] 「はじめてのpython」で勉強しています 下記スクリプトを実行したとき、 Winで実行する場合とUbuntuで実行する場合とで 結果が違う(Ubuntuの場合はエラーになる)のですが どうしてですか? Ubuntuでエラーを解消するにはどうすればいいですか? 文字エンコード部分を変えたり消したりするのはやってみました。 #! /usr/bin/env python # coding:shift_jis while True: str=input('> ') print( str ) if str=='bye': break
608 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 13:27:59 ] raw_input() にすれば動くよ。たぶんwinのはpython3なんだろう。 その本がどちらを使ってるかわからないけど、個人的にはまだ2.xを使ったほうがいいと思うよ python2のraw_input() == python3のinput() python2のinput() == python3のeval(input())
609 名前:デフォルトの名無しさん mailto: [2009/08/24(月) 23:54:44 ] 改行コード
610 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:17:27 ] win32api を使いたいです ctypes から、windll.[DLL名].[関数名] で呼べるのはわかったのですが、 引数が要求したり、関数が返してくるような定数(?)の実際の値は普通どう確認するものなんでしょうか 他言語から win32api を使った経験は無いです
611 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:29:15 ] ttp://www.python.jp/doc/contrib/ctypes/tutorial_jp.html ttp://www.python.jp/doc/release/lib/module-ctypes.html ttp://www.ueblog.org/blog/entry/ctypesunlha/ ttp://moco.sakura.ne.jp/python/ctypes%E3%81%AEstructure%E3%81%AB%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B3%E3%83%94%E3%83%BC/
612 名前:610 mailto:sage [2009/08/25(火) 17:27:33 ] えーと WM_CLOSE とかそういったものが定義されてないので、 その実際の値がわからないとそれを要求したり返したりする関数が使えないんです それで、普通はどうするものなのかと思って質問しました
613 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:31:15 ] 少しぐらいならヘッダファイルから拾ってくれば済むけど GUIまでやろうとするとものすごく大変な気がする
614 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:34:19 ] MSDNでしらべる。Mingwのw32apiとかみる
615 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:45:43 ] >>813 たまたま目に付いたものを書いただけで、今のところは GUI をやろうとしてるわけではないです ヘッダファイル名でググって、定数名で検索掛けてコピペしてくればいいんですかね 他のコードからコピペして著作権的に大丈夫なんでしょうか >>614 関数と、対応するDLLは、ググって出てきたMSDNのページを見てるんですが、定数が見つからないです どこに何があるかいまいちわからない…… Mingwは調べてみます
616 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:25:48 ] pywin32 の win32con.py
617 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:50:24 ] >他言語から win32api を使った経験は無いです
618 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 21:41:44 ] >>616 おお、大抵の場合はこれで大丈夫そうです というよりctypesじゃなくてpywin32でwin32apiを呼べるみたいですが、その方がいいんでしょうかね でもpywin32のヘルプ読んでもどこに何があるのかわかりづらい…… >>617 一応書いておいた方がいいかなと これから先、どのapiを使うかわからないのであえて書かなかったのですが、 DDEクライアントを書いてました win32conにddeml.hの定数が見当たらなかったので、 Google先生にお願いしてヘッダファイルからコピペしたところ、とりあえず動きました (コピペして大丈夫なんでしょうか) pywin32にddeなるモジュールがあるようですが、使い方がさっぱりなので見なかったことにします みなさん回答ありがとうございました 今回の件とは別ですが、>>611 も参考になりました
619 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 22:00:04 ] >DDEクライアント win32com
620 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 22:58:40 ] COMはDDEとは別物じゃないですか?
621 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:05:06 ] それはMSに言っといてくれ 死語だけでもWindows DNAとかChromeEffectsとかいくらでも出てくる
622 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:34:06 ] >>619 を読んで、win32comとDDEクライアントの関係がわからなかったので>>620 を書いたのですが……
623 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:55:48 ] COMはOLEクライアント
624 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 04:10:26 ] 拡張子は opyで
625 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 21:05:40 ] .pyoのほうがいい
626 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 08:19:35 ] そのうち2.xようと3.xように .pyo2とかになるのか
627 名前:デフォルトの名無しさん [2009/09/01(火) 22:46:42 ] Windows環境でもPyreadlineをインストールしていれば cmdモジュールのデフォルトでbash-like動作が有効になると思ってたんですが 普通に“^A”などと表示されてしまいます。 IPythonでは補完が効くので、cmdモジュールの使い方が間違ってるんだと思いますが 公式サイトのリファレンスではCmd.cmdを継承したクラスを作って 引数無しでインスタンスを作成するだけのように読めます。 何が間違ってるんでしょうか?
628 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 07:39:13 ] 助けてください・・・ これからPythonを勉強しようと思ってるのですが、それ以前に「パスを通す」 ということができません。 Windows XP で、Python2.6.2 をインストールしたんですけど、初心者用の サイトにある「パスの設定」というのを見ながらやっても [操作可能なプログラムまたはバッチ ファイルとして認識されていません]と でてしまい困っています・・・。どうすればパスを通せるのか教えていただけ ないでしょうか。よろしくお願いします。
629 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 08:12:03 ] 了解
630 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 08:33:11 ] スレ違い パソコン入門スレとかにいってこい
631 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 09:24:33 ] ↑ PATHの通し方すら教えられない。 しょせんPyヲタなんて、この程度。
632 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 09:51:29 ] 逃げた?
633 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 09:53:19 ] >>628 autoexec.bat あたりを弄ったのかな?それはWindows98時代のやり方で、 Windows2000以降ならGUIで設定できる。 ttp://www.daikichi.net/books/lecture_java/setting_jdk.html
634 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 10:08:32 ] 言っちゃった…。 俺はあほの相手するのは疲れるんでぐっとこらえたんだけど。
635 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 14:15:51 ] >>628 >>633 が答えてくれてるけど うまくいかなかったらまた聞いてくれ
636 名前:628 mailto:sage [2009/09/03(木) 19:12:06 ] >>629 ? >>630 すみません。スレ違いという事すら気づきませんでした...。 >>631 ごめんなさい..。私が悪いんです。 >>632 ? >>633 ご親切に答えてくれて、ありがとうございます。教えて頂いた ttp://www.daikichi.net/books/lecture_java/setting_jdk.html も、見てみた のですが、ダウンロードし直したら無事にパスが通りました。本当に、 ありがとうございました。 >>634 ごめんなさい、ほんとに私はアホです。 >>635 ありがとうございます。結局、何が原因だったのかわからないのですが どうにかパスの設定はできました。
637 名前:デフォルトの名無しさん [2009/09/03(木) 21:35:11 ] >> 607 一行目の指定宣言ですが? #! /usr/bin/env python /* man env 引用 */ NAME env -- set and print environment 余り どの様な形式の基礎かが理解 出来ないのですが… この部分の基礎宣言の説明をして頂けますか?
638 名前:デフォルトの名無しさん [2009/09/03(木) 21:51:11 ] ピートンっておぼえたほうがいいかな
639 名前:BBS戦士ジョソコイダーGID@愛をください [2009/09/03(木) 21:52:46 ] ジョソコイダーを遊園地に連れてってって
640 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 22:08:29 ] >>637 その一行目は shebang という 二行目以降を入力として shebang に指定したコマンドを実行する ややこしい話をすると shebang に指定されたコマンドを実行するのはシェルでなくカーネルの仕事 シェルは環境変数PATHを知っているけど、カーネルは知らないので 原則 #!/usr/bin/python などではなく #!/usr/bin/python のように書く必要がある ただこの方法だと他のマシンでの python インタプリタの場所が /usr/local/bin/python だった場合に動かないので env コマンドに環境の設定と python の実行をお願いする
641 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 22:09:26 ] o 原則 #!/usr/bin/python などではなく #!/usr/bin/python のように書く必要がある x #!python などではなく #!/usr/bin/python のように書く必要がある
642 名前:デフォルトの名無しさん [2009/09/03(木) 22:33:38 ] >>607 /* Line 2 */ # coding: 'Shift_JIS' これで 通りますが… 何をする Program ですか?
643 名前:デフォルトの名無しさん [2009/09/03(木) 22:38:14 ] >>642 plus 失礼… >>640 を読めずに書き込んだので…
644 名前:デフォルトの名無しさん [2009/09/03(木) 22:48:02 ] >>640 読んだのですが? 文字列を入れても Syntax Error に為りますが? 直接 打ち込んでの作業では無いと云う事か…
645 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 23:12:28 ] まずは日本語の構文をマスターしてからのほうが いいと思うんだ・・・
646 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 23:17:30 ] >>644 shebang を使うのはファイルに保存したスクリプトを % python scriptname ではなく % chmod +x scriptname % ./scriptname のように実行したい場合 対話型プロンプトではそもそも必要ない よくわからなかったら、慣れるまで * スクリプト内でASCII文字だけ使うようにする * 実行する際は % python scriptname * 対話型プロンプトは使わない そうすれば #!/usr/bin/env python や # coding: sjis を書く必要が無くなる あとできればメール欄に sage って入れて
647 名前:デフォルトの名無しさん [2009/09/04(金) 00:16:11 ] >>646 本人がレスして居るのでしょうか? # coding: Shift_JIS は 始めから省略が出来たと思いましたが… 書く必要性 1: どの coding: を使用して居るかを明確にする為 記憶では二行目は かなり about に書く事が出来る でしたか? prompt を使用しないですか… script が まだ入力待ちの状態だったと理解して居りますが? >>607 「はじめてのpython」で勉強しています 下記スクリプトを実行したとき、 Winで実行する場合とUbuntuで実行する場合とで 結果が違う(Ubuntuの場合はエラーになる)のですが どうしてですか?
648 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:01:52 ] どんなエラーが出たのか書けよ
649 名前:デフォルトの名無しさん [2009/09/04(金) 01:05:22 ] OSが違うからです
650 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:06:22 ] >下記スクリプト ???
651 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:12:46 ] 異なる環境で動かすことを考えているなら、 coding指定は必ず書いておけ。 標準入力も、inputに頼らず、codecs.getreader()で、 エンコード指定して、sys.stdinからファイル入力として扱うほうが、 トラブルは少ないかもしれない。
652 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:13:36 ] その変な日本語どうにかしてよ
653 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:20:28 ] str = codecs.getreader('UTF-8')(sys.stdin)
654 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:23:08 ] str = codecs.getreader('UTF-8')(sys.stdin).read()
655 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:25:03 ] っつーかstrをへんこうしたらなにがおこるんだ?
656 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:56:11 ] うちゅうのほうそくがみだれる
657 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:57:50 ] 変更というよりは邪魔して見えなくしてるだけだ __builtins__.str
658 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 06:27:01 ] py3なら文字コード余裕でした。
659 名前:デフォルトの名無しさん [2009/09/04(金) 13:46:11 ] 拙もはじめてのpython3で勉強してます。 本に載ってた下記スクリプトが、WinでもLinuxでも動きませんでした。 本のミスでしょうか? ■エラー内容: print( gcd(int(sys.argv[1]),int(sys.argv[2])) ) IndexError: list index out of range ■スクリプト: #!usr/bin/env python # coding:shift_jis import sys def gcd(m,n): if n>m: m,n=n,m while n>0: m,n=n%m return m if __name__=='__main__': print( gcd(int(sys.argv[1]),int(sys.argv[2])) )
660 名前:659 [2009/09/04(金) 13:47:43 ] カキコしたらインシデントがなくなってしまいました。修正します。 ■スクリプト #!usr/bin/env python # coding:shift_jis import sys def gcd(m,n): if n>m: m,n=n,m while n>0: m,n=n%m return m if __name__=='__main__': print( gcd(int(sys.argv[1]),int(sys.argv[2])) )
661 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 14:08:36 ] >>660 sys.argv[1] と sys.argv[2] はそれぞれ、 python gcd.py 3 5 (もしくは ./gcd.py 3 5) としたときの 3 と 5 が入ります。 引数をつけずにプログラムを実行されたのではないでしょうか?
662 名前:659 [2009/09/04(金) 16:00:32 ] >>661 そのとおりでした。ありがとうございます。
663 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 16:15:57 ] WindowsでPython 2.6.2を使って機種依存文字を処理しようと思ったんですが、 cp932でエンコードして書き出すとき、PythonはNEC選定IBM拡張文字を優先して使うようなんです。 (例えば「掾vの場合、fbb9ではなくee9d) できたらIBM拡張文字の方で書き出せるようにしたいんですが、何かいい方法があるでしょうか?
664 名前:デフォルトの名無しさん [2009/09/04(金) 16:48:19 ] >>663 Text 文書を保存して その儘 特定機種で Text を読み込むと どの様に為りますか?
665 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 16:53:22 ] >>> u"ケ".encode("mbcs") '\xfb\xb9' >>> u"ケ".encode("cp932") '\xee\x9d'
666 名前:デフォルトの名無しさん [2009/09/04(金) 17:03:13 ] >>664 plus 否… 表現が悪かった様で… 片方の機種で その文字を Text に保存して もう片方の機種で その Text を読み込むと どの様に為りますか?
667 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 17:19:25 ] >>665 どうもありがとうございます。 何となく、Windowsではcp932を選べばいいのだと勝手に思い込んでました。 >>666 すみません、勉強不足でよく理解できていないんですが、cp932はWindows以外の環境も考慮してああなっているということでしょうか? もっとよく調べてみます。
668 名前:デフォルトの名無しさん [2009/09/04(金) 17:32:22 ] うにcode か… 素晴らしいな…
669 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 18:33:07 ] >インシデント
670 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 22:10:56 ] >>665 なんなのその顔文字ふざけてんの?
671 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 22:18:51 ] u('-') たまに出てくるけどかわいい
672 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 23:06:05 ] >>670 NEVADA
673 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 00:12:56 ] >>671 心の汚れた環境では見れないらしい…
674 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:02:15 ] osごとに異なるモジュールをインポートするにはどうしたらいいのでしょうか? C言語で言うifdefみたいなことがしたいのですがうまくいきません・・
675 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:03:45 ] import sys sys.platform
676 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 22:18:03 ] >>675 ありがとうございます sys.platformで取り込むモジュールを振り分けられました importは先頭に書くものだと思っていました。。
677 名前:デフォルトの名無しさん [2009/09/06(日) 00:20:31 ] 普通はtry: import hoge except ImportError: import fugaみたいにするんじゃなかったっけ?
678 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:36:49 ] 異なるシステムでもImportErrorでない書き方できるからsys.platform使う方が無難
679 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:42:55 ] sys.platformというのは初耳だわ os.nameよりも詳しいのかな
680 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:45:20 ] platformモジュールとか初めて知った
681 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 01:05:04 ] >>680 そういえばそんなのもあったね。程度にしか使われてないよな sysはビルトインの標準モジュールだから絶対に読み込めるという理由もあるかも osはパス通ってないとimportできないし
682 名前:デフォルトの名無しさん [2009/09/06(日) 18:33:13 ] スクリプトでテキストを立ち上げたり、IEを起動させたりは可能ですか?
683 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 18:40:20 ] yes you can
684 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 23:46:18 ] いろいろ試したんだけどwindowsでparamikoが使えない。 これは使えないでOK?
685 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 23:50:05 ] Windowsでparamikoつかえるよ? bazaarなんてWindows用のデフォルトのsshクライアントがparamikoだよ。
686 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 00:08:23 ] >>685 俺にとってあんたは神様だ。 設定しかたを教えてくれ!
687 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 00:51:13 ] >>685 1. paramiko-1.7.5.zip をダウンロード 2. 適当なディレクトリに解凍 3. コマンドプロンプト開いて 2 のディレクトリに cd で移動する 4. python setup.py build 5. python setup.py install これを順にやっていって、どこで引っかかるか教えて。 今やってみたら、依存ライブラリのpycryptoが手元の環境でインストール済みだったから すんなりインストール終わった。 ひょっとしたらpycryptoインストールするときに拡張モジュールのコンパイルが必要かも 知れないから、Pythonのバージョンに対応するコンパイラをもっていない場合は mirror.cameronbergh.com/pycrypto-win/ から対応するパッケージをダウンロードするといいよ。
688 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 00:54:35 ] 親切にありがとう! paramiko-1.7.4でやったらすんなりとおった。
689 名前:デフォルトの名無しさん [2009/09/10(木) 16:31:07 ] n(適当な自然数)次元の実数値関数fを定義するときに f = lambda x : (x**2).sum() とか書いてあるコードがあって、意味がわかりません。 lambda式がわからないのではなくて、後ろについてる.sum()がわかりません。 インタプリタで上記定義をして、f(x=1.0)とかf(x=[1.0,2.0])とかやってみると、 sum()についてのattribute errorが出ます。 よろしくお願いします…。
690 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 16:33:31 ] xがnumpyのarrayなんじゃない?
691 名前:689 [2009/09/10(木) 16:43:10 ] >>690 それでした! どうもありがとうございました。
692 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 22:49:04 ] BitTorrent以外でpythonで実装されたクライアントソフトあるいはスタンドアローンソフトって何がありますか? 砕けた言い方をすると、pythonで実装されていて拡張子がexeなそれなりに有名なソフトって何がありますか?
693 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 22:59:58 ] BTはPythonやめたんじゃなかったっけ?
694 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 23:03:43 ] ttp://wiki.python.org/moin/Applications
695 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 15:52:44 ] 拡張子がexeである必要がよくわからないけど、 bzr, mercurial といったVCSもそうだし、 Editra, Dropbox, TaskCoach, 他にもいろいろあるぞ。 LinuxにいったらさらにPython製デスクトップアプリだらけ。
696 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:57:53 ] yum
697 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:59:20 ] とりあえず2chviewerでも作って公開すれば有名になれるんかな
698 名前:デフォルトの名無しさん [2009/09/14(月) 05:56:06 ] >684 これかも ttp://d.hatena.ne.jp/lolloo-htn/20090801/1249085650
699 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 09:44:16 ] bugs.launchpad.net/paramiko/+bug/411910 へぇ。
700 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 12:47:58 ] >>692 portage, samuraix
701 名前:デフォルトの名無しさん [2009/09/15(火) 21:14:28 ] wikipediaのPythonのページに 「多くの異なる言語で書かれたモジュールをまとめるグルー言語」 とありますが、これは複数のプログラミング言語で書かれたモジュールを まとめられるということでいいのでしょうか?
702 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 08:06:50 ] >>701 文章を途中で切るよな。
703 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 09:50:28 ] ワロタ
704 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 03:21:16 ] lambda : 1 + 2 が良くて lambda : print "hoge2" がダメな理由って何故ですか?
705 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 03:35:29 ] lambda式には式(expression)しか書けないから。printは文(statement)。
706 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 03:43:40 ] lambda : sys.stdout.write("hoge2\n")
707 名前:704 mailto:sage [2009/09/24(木) 04:34:27 ] ありがとう ・・・Pythonってそう言うのを区別するのか・・・先は長そうだ orz
708 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 06:08:10 ] python3ではprintは関数だよ^^
709 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 07:27:03 ] Pythonで print "x=#{x}\n" if DEBUG (Rubyの例) みたいに1行で完結させる書き方って可能ですか? 同じ物をPythonで書くと if DEBUG: print "x="+str(x) となると思いますが出来ればデバッグメッセージごときに2行は使いたくない・・・
710 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 08:07:41 ] if DEBUG: print "x="+str(x) だが、logging使え。
711 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 10:34:36 ] if DEBUG: print "x="+ str(x)
712 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 10:36:08 ] >>711 ミスったので見なかったことに
713 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 11:42:46 ] logging.logger
714 名前:デフォルトの名無しさん [2009/09/24(木) 13:37:14 ] pythonjp.sourceforge.jp/dev/library/functools.html ここにある def partial(func, *args, **keywords): という書き方に出てくるCのポインタみたいな記号(*args,**keywords)ってどういう意味ですか?
715 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 13:43:23 ] pythonjp.sourceforge.jp/dev/tutorial/controlflow.html#tut-keywordargs
716 名前:デフォルトの名無しさん [2009/09/24(木) 13:53:55 ] ありがとござます
717 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 17:46:57 ] PILのpython3対応はまだか!
718 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 22:47:32 ] >>712 え?どこどこ?
719 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 23:06:30 ] Python的には字下げだろう。
720 名前:デフォルトの名無しさん [2009/09/27(日) 04:43:59 ] 一度定義した変数を消去することは可能ですか? python3.0で、 print = 5 とするとprintという名前の変数に5が代入されたのですが、 そのあと元のprintという関数を使いたい場合はどうすればよいのでしょうか?
721 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 04:53:34 ] __builtins__.print もしくは del print
722 名前:720 mailto:sage [2009/09/27(日) 05:15:58 ] >>721 ありがとうございました。
723 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 11:24:07 ] urllib2でkeep-alive出来ない。助けて policy = cookielib.DefaultCookiePolicy( rfc2965=True, strict_ns_domain=cookielib.DefaultCookiePolicy.DomainStrict) cj = cookielib.LWPCookieJar(cookie_jar_path, False, policy) cjhdr = urllib2.HTTPCookieProcessor(cj) opener = urllib2.build_opener(cjhdr, RefererAddHandler()) opener.addheaders = [ ('User-agent', 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)'), ('Connection','Keep-Alive') ('Keep-Alive'','300') ] r = opener.open( uri ) rinfo = r.info() for key in rinfo.keys() : print h, rinfo[key] ## Referer を Autoでつける為のハンドラ ######## class RefererAddHandler (urllib2.BaseHandler) : def http_request(self, req) : req.add_header("Referer", req.get_full_url()) return req --------------------------- firefoxなんかでレスポンスヘッダを見ると、 Connection: Keep-Alive と出てる。でも上記コードでは Connection: Close になる。なにか足りないですか?
724 名前:723 mailto:sage [2009/09/27(日) 11:26:39 ] 訂正: ('User-agent', 'User-Agent: Mozilla/5.0 〜略) の箇所は ('User-agent', 'Mozilla/5.0 〜略)
725 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 11:31:06 ] HTTPヘッダでkeep-aliveするようにしても urllib2がそれを想定してないからうまく動かなかったような ソース読んで絶望した記憶がある urllib2 keep-alive でぐぐってみるといいんじゃないか
726 名前:723 mailto:sage [2009/09/27(日) 11:34:14 ] >>725 ありがとう。ここのサイトのをやってみる! python.blog-slime.com/function/urllib/
727 名前:723 mailto:sage [2009/09/27(日) 11:36:47 ] ↑はurllibだった。下のサイトのを拝借するのが一番楽そうですね。d memo.jj-net.jp/18
728 名前:723 mailto:sage [2009/09/27(日) 12:03:05 ] ちなみに・・・ urllib2だとcookieの自動処理が容易に出来るけど、keep-aliveが出来ない urllib だとcookieの自動処理を容易に出来ないが、keep-aliveは出来る (www.python.jp/doc/2.4/lib/cookielib-examples.html 見ると、cookielibはurllib2での使用を想定している?) HTTP/HTTPSをやる上で、比較的高機能で知られたライブラリってありますか? (PerlのLWP、JavaのCommons/HttpClientみたいな)
729 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 18:42:43 ] 参考になるかどうかわからんけど2.6, 3.0系列の構成は urllib-gsoc.blogspot.com/2008/06/urllib-package.html www.python.org/dev/peps/pep-3108/#http-package www.python.org/dev/peps/pep-3108/#urllib-package こんなかんじらしい…
730 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 18:45:28 ] 一番下の example が参考になるかも試練 docs.python.org/dev/3.0/library/http.cookiejar.html
731 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 18:53:41 ] おまいらおちつけ >>723 のコードはPython2系列だ
732 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 19:01:48 ] https://fisheye.toolserver.org/browse/~raw,r=6953/pywikipedia/branches/rewrite/pywikibot/comms/threadedhttp.py Bingo? 直感で 実は keep-alive の意味がよくわからないw
733 名前:723 mailto:sage [2009/09/27(日) 23:14:59 ] みんな、アドバイスありがとう! python 2.4 に拘っている訳ではないんだ。 v3.0に上げて >>730 のurllibとhttp.cookie_jarでやってみる。 >>732 ありがとう!参考にさせてもらうぜぃ
734 名前:723 mailto:sage [2009/09/28(月) 01:08:16 ] python3.1 ってif,for,printが式になってて、今まで書いてたコードが動かねーおwww なんかLISPっぽいね。 2.6と変わりすぎててわらってしまったw
735 名前:723 mailto:sage [2009/09/28(月) 01:13:56 ] ひとりごと多くてすまん >>734 は気にしないでくれ。勘違いだったお
736 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 02:44:31 ] Twitterでやれ
737 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 14:47:48 ] Tkinterについて質問です from Tkinter import * root = Tk() sub_win = None def button_callback(event): global sub_win print 'button down' sub_win.destroy() def message_window(): global sub_win sub_win = Toplevel() button = Button(sub_win, text='window close') button.pack() sub_win.bind('<Escape>', button_callback) button.bind('<Button-1>', button_callback) Button(root, text='about', command=message_window).pack() root.mainloop() 以上のようなコートなのですが、ESCキーを押してもコールバック関数が呼ばれません 何故でしょうか?よろしくお願いします
738 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 15:28:31 ] フォーカスの合ってるウィジェットにしか イベントは送られない。
739 名前:737 mailto:sage [2009/09/28(月) 16:00:47 ] レスありがとうございます >>738 >フォーカスの合ってるウィジェットにしか >イベントは送られない。 もうちょっと単純にしてみて from Tkinter import * root = Tk() def esc_down(event): print 'esc key down' root.destroy() button = Button(root, text='close') button.pack() button.focus_set() button.bind('<Button-1>', esc_down) button.bind('<Escape>', esc_down) root.mainloop() こういう事ですよね? これの「button.bind('<Escape>', esc_down)」を「root.bind('<Escape>', esc_down)」 としてもきちんとコールバック関数は呼ばれます。 上のコードのTkをToplevelにしてもESCキーのイベントの補足は成功するようです >>737 みたいな形にするとうまく行かないです。よろしくお願いします
740 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 18:59:50 ] UTF-8にエンコードする方法を教えて下さい。 例えばx = "あいうえお"のときyに"%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A"を代入したいんですが どのようにすればいいでしょうか?
741 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 19:15:31 ] 元の文字列がShift_JISだと仮定 import urllib x = 'あいうえお' y = urllib.quote(x.decode('sjis').encode('utf8'))
742 名前:740 mailto:sage [2009/09/28(月) 20:07:56 ] >>741 ありがとうございました、出来ました。
743 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 21:03:12 ] >>737 好きなのをどうぞ - 2つ目のウィンドウをクリックしてからEsc押す - sub_win.focus_set() - root.bind('<Escape>', button_callback)
744 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 03:25:29 ] 複数行の文字列xからどうすれば中身を1行ごとに分割して1つずつリストに代入させることが出来ますか?
745 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 03:40:05 ] 複数行の文字列をどういうデータ形式で持っているのかによる。
746 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 03:42:06 ] "abc\ndef\nghi".split("\n")
747 名前:737 mailto:sage [2009/09/29(火) 03:59:51 ] >>743 レスありがとうございます 2枚目のウインドウは作っただけではフォーカスは動かないのか・・・il||li ○| ̄|_ 真ん中の方法を使わせて貰いました
748 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 04:04:20 ] Tkinterについての質問です。 何らかのイベントが起きたときにフレームの内容を 丸ごと入れ替えるようなプログラムはどの用にする ば書くことができますか?