1 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 01:27:53 ] Python オフィシャルサイト www.python.org/ 日本Pythonユーザ会 www.python.jp/Zope/ FrontPage - Pythonのお勉強 python.rdy.jp/ 前スレ pc11.2ch.net/test/read.cgi/tech/1201073019/l50 ◆関連スレッド Microsoft IronPython 1.0 pc11.2ch.net/test/read.cgi/tech/1157686822/ Python の宿題ここで答えます Part 1 pc11.2ch.net/test/read.cgi/tech/1153585095/ 2ch検索: [python] find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python ◆関連リンク Python 日本語ドキュメント - Pythonistaのお友達 www.python.jp/doc/release/ Pythonのバイブル的書籍 www.amazon.co.jp/dp/4797341815 その前編 www.amazon.co.jp/dp/4797341815
343 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 09:02:45 ] ubuntuでfrom importするとエラーになるのは何故なんでしょう。 windows上では正常に動作するんだけど。 バージョンは2.5.1
344 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 09:13:10 ] strって変数名は止めような。 minとかmax,lenも変数名として使わない方がいいからな。
345 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 09:21:02 ] このスレでは map(str, seq) とかもアウトなのでしょうか
346 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 09:23:23 ] 別に
347 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 09:47:12 ] >>343 うちは平気
348 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 09:56:05 ] >>343 だけどfrom importの問題じゃなくて、random.pyだけの問題らしい。 >>> from random import Random random.pyはインポートできるが、random.pyのClass Randomが呼び出せない。 ソースコード見ても問題ないし弄ったわけでもない。よくわからん。
349 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 10:04:05 ] で、なんでコードとエラーメッセージを貼らないんだ
350 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 10:12:03 ] 再起動したらタイミング悪くクラッシュして今再インスコ中なんで、コードとエラーメッセージは忘れた。 よくある「'Random'ってnameないですよ。from random」みたいなエラーだった筈。
351 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 10:19:44 ] まずPCを窓から投げ捨てろ そのあとで「別の」random.pyが存在しないか確認
352 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 11:46:51 ] 別のファイルはありません でもスクリプト本体がrandom.pyですとかいうオチだろ
353 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 11:56:07 ] そんなわけないじゃん。 ↑のせいで再インスコしたら同環境で実行できたんで、恐らくどっかにrandom.pyが存在してたんだと思う。
354 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 12:23:53 ] そういう時は __file__ で確認だな >>> __import__("random").__file__
355 名前:デフォルトの名無しさん [2008/03/02(日) 12:33:13 ] Pythonチートシート(早見表) PQRC - Python Quick Reference Card www.limsi.fr/Individu/pointal/python/pqrc/
356 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 12:43:47 ] アルファだから入れる必要はないけど 2.6a1, 3.0a3 来たな
357 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 15:13:14 ] pythonで2ch書き込みライブラリみたいなの作りたいんですが なにをどうしたらいいかさっぱり。。
358 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 15:18:58 ] 事故解決しました。汚してすいません
359 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 15:49:44 ] 2ch書き込みライブラリってなんだったのだろう 書き込むスクリプトならライブラリとか言う話じゃないし・・・
360 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 16:11:37 ] いえ、要は書き込めればなんでもいいんですよ
361 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 16:43:32 ] じゃあ2chブラウザ使え。
362 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 17:54:15 ] 少なくとも一ヶ月以内にこのスレにIEコンポ使って 2chにアクセスするpysourceが上がってたが
363 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 19:44:41 ] >>356 俺はα1から入れてたぜ もちろん実用目的じゃなくて遊ぶ用だけど ttp://www.python.org/download/releases/3.0/ ttp://www.python.org/download/releases/2.6/
364 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 20:55:03 ] >>362 意味ねー
365 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 22:45:39 ] Python始めたばかりなんですけど・・・。 シェルスクリプトより簡単でいいですね〜。 でもGUI作成が面倒で挫折してますけど。 まぁ自分で便利に使えてるんだしいいかな〜って。
366 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 03:51:55 ] Head First Programming ttp://headfirstlabs.com/books/hfprog/ プログラミング入門書 使用言語はPython 1章の抜粋がPDFでDL可能 入門イラネって人多そうだがこんなのも出るよってことでひとつ
367 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 09:35:46 ] 英語という時点で日本人の入門者排除です。本当にありがとうございました。
368 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 10:47:09 ] 英語ごときでつまづいてちゃこの先やってけないので,そういう意味で排除されて正解でしょうな
369 名前:デフォルトの名無しさん [2008/03/03(月) 11:46:02 ] こういう英語のテキストは構成が大体 同じで、語彙も限られているのでそれ ほど難しくない。学校の授業から連想 されるような英語を想像して尻込み して読まないのはもったいない
370 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 11:50:30 ] Rubyが国内で普及したのは、作者が日本人ということもあり、日本語の情報が豊富だったことが一因と言われています。 Pythonの人たちはどう見ても初心者排除主義者です。 本当にご苦労様でした。
371 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 11:55:53 ] 内容が電波なのはもういいけど、最初の文とその後のにまるでつながりが無い。 分裂が書いた文章みたいな破綻っぷりで、なんだか読んでうすら寒い。
372 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 11:59:57 ] 初心者で思い出したのだけど。 抵抗勢力(?)の人たちはどうしたんだろうね。 最近見かけない気がする。。。
373 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 12:16:13 ] 低脳自慢の会場はここですか?
374 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 12:22:00 ] 英語嫁が初心者排除になるとしたらゆとりここに極まれりって感じだな
375 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 12:22:35 ] >>369 しかし「プログラムってなあに?」ってレベルの日本人に 英語の入門書は勧めんだろ。 確かに367の「排除」という言い方はおかしいが、どうも368-369は なにか自尊心を補強するために書いているように見えてしまうな。
376 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 12:59:20 ] 嫁は秋田弁
377 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 13:17:00 ] >>375 > どうも368-369は > なにか自尊心を補強するために書いているように見えてしまうな。 こんなところでプライドを補強するなんて悲しすぎる。。。
378 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 14:27:32 ] でもまあHead Firstシリーズはもっと和訳されてもいいとは思う それとかアンクが「Pythonの絵本」出すとか あと「Pythonで学ぶプログラム作法」を3.0出たあたりで改訂して出しなおして欲しいな
379 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 14:41:58 ] 本はみんpyでいいよ、 それよりウェブ上の入門コースみたいなのが少ない気がする、python は、 perl なんか、こんなに必要か?と思うほど、独立した入門サイトがたくさんあるけど、 python だと、1から10まで一通り全部説明してくれてるのって、本家ぐらいしか思いつかない。
380 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 14:58:09 ] 本家のチュートリアルが過不足なくまとまっているのがどんなにすばらしいことか... とRuby厨がぼやいてみるテスト
381 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 16:20:57 ] ar.aichi-u.ac.jp/python/ ってどう? 大学のプログラミング入門のページで授業用教科書も配っているところなんだけど けっこう基礎的な話から説明していて良いんじゃないかと思う。
382 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 16:29:42 ] なんか可哀想。その程度の技術を講義に使ってるなんて。 パソヲタ中学生のがレベル高いんじゃね
383 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 17:05:17 ] 「入門コースがない」とか嘆いてるやつは自分でつくればいいだろ
384 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 17:11:56 ] >>382 ゆとりにプログラミングを教育する立場になってみろ(ww
385 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 18:01:16 ] pythonceって、httplibのssl対応ってしてないの?
386 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 18:04:42 ] というかsocketモジュールで未対応?
387 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 18:32:11 ] >>381 Plan9か・・・
388 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 21:12:27 ] unix の watch コマンドのように、「実行したいコマンド」を引数に与えてなんらかの処理を行うコマンドhogehogeを作りたい ここではhogehogeがwatchコマンドをエミュレートするようなコマンドとする コマンドライン解析にはoptparseで parser = optparse.OptionParser() parser.add_option('-n', '--reload-sec', dest='reload', help='reload time') opts, args = parser.parse_args() としているのだけれども、例えば以下のコマンド $ hogehoge -n 2 ls -la の場合解釈してほしくない ls -la の -la が当然optparseに拾われてしまう(hogehogeのオプションとして認識される) $ hogehoge -n 2 -- ls -la $ hogehoge -n 2 "ls -la" とかすれば回避できるんだけど、optparseで俺が望むような動作は無理でつか? 他にこういうことが可能な解析器をご存知の方いたら教えてください
389 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 21:33:54 ] そんな特殊な解析なんて一般的には必要とされないだろ というか自前で解析すればいいじゃん
390 名前:388 mailto:sage [2008/03/03(月) 21:35:46 ] よく考えればoptparseで解析する前に、Option#has_option()とかOption#takes_value()を使って hogehogeのオプションと、それ以降の引数の境目を見つければいけそうですね。 スレよごしごめんなさいでしたー
391 名前:388 mailto:sage [2008/03/03(月) 21:38:04 ] >>389 ですよね。 ただ全部解析するのはめんどかったのですが、 >>390 の方法で部分的に前処理してからoptparseに渡す方法がいけそうなので、 その部分は頑張って自前で解析します。 ありがとうございましたー
392 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 21:42:40 ] >>388 parse_args の前に parser.disable_interspersed_args() でいけるっぽい
393 名前:388 mailto:sage [2008/03/03(月) 21:51:49 ] >>392 そのメソッドはそういう意味だったんのですね・・・ 長ったらしいメソッドだったので華麗にスルーしてました。 そして、望む動作をしていることも今確認しました。 ありがとうございます!助かりました
394 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 00:34:03 ] みんなのPythonってなんかネタ扱いされてる? 買おうと思ってるんだけどあんまよくないのかな。
395 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 00:40:21 ] プログラミング初心者ならいいのかも分からんが 多言語経験者なら Guido のチュートリアルで十分かと
396 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 00:46:13 ] 公式のチュートリアルは良く書けているね
397 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 01:01:20 ] PythonにしろPHPにしろスクリプト系の公式は分かりやすいね (Rubyは分からんけど) Javaの公式リファレンス見たときはウンコ漏れそうになった
398 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 01:33:47 ] Rubyのはひどい
399 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 02:33:24 ] >>398 マジンガー?
400 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 03:40:26 ] Ruby の公式サイトでさ、Ruby を C に埋め込む方法についての記述を探したんだけど、 全く見つからなかった。一生懸命探したら、本当に簡単なリファレンス(APIリファレンスだけ) なら見つかったが、具体的にどういうふうに実装して行くのかって話は無かった。本当に APIリファレンスだけだった。Ruby スレで聞いてみたら 「Ruby 使いはソース見て調べるからリファレンスは必要ないのさ」だった。 いかに Python のサイト&ドキュメントが親切かってのがよくわかった瞬間だった。
401 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 03:46:54 ] ネタじゃないなら酷いな
402 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 06:47:58 ] Rubyの公式はwikiみたいなもんだからな
403 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 06:48:55 ] Ruby の公式サイトでさ、Ruby を C に埋め込む方法についての記述を探したんだけど、 全く見つからなかった。一生懸命探したら、本当に簡単なリファレンス(APIリファレンスだけ) なら見つかったが、具体的にどういうふうに実装して行くのかって話は無かった。本当に APIリファレンスだけだった。Ruby スレで聞いてみたら 「お前が書け」 だった。 いかに Python のサイト&ドキュメントが親切かってのがよくわかった瞬間だった。
404 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 06:55:10 ] しかしruby界隈では rubyの方が参照カウンタを気にしなくていいからC拡張モジュールを作るのが楽だ とか言われている
405 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 07:32:08 ] >>395 >多言語経験者なら Guido のチュートリアルで十分かと ttp://www.python.jp/doc/nightly/tut/ 他言語の経験がないと難しいと思うけど、オンラインで読めるのがいいよね。 書籍も出てるみたいだけど、ネットで読めるものをわざわざ出版するなんてネタかと思うわ(ww
406 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 07:35:28 ] 本で読みたいって層も存在するよ。
407 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 07:41:58 ] >>406 ネタ本に必死になる必要はないと思うな(wwwww
408 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 07:44:29 ] ネタ扱いしてるがあの本売れてるぞ。俺が見たときは二刷だった 新訳(これが良質)で付録も付いてたしさくっと本買うのも悪くないぞ にしてもApressからまたDjango本やらBeginning Pythonの二版出るらしい どこか日本語版出してくれる出版社はないもんだろうか
409 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 07:47:18 ] >>408 >ネタ扱いしてるがあの本売れてるぞ。俺が見たときは二刷だった いや、それは初刷がアレだっただけだって. 出版社もネタ扱いしてた証拠だよ. 朝からやめてくれよ.笑い死ぬわ(藁
410 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 07:50:40 ] >ネタ扱いしてるがあの本売れてるぞ。俺が見たときは二刷だった 同じくネタ扱いされていたみんPyは3刷だったよ。 ネタ本が売れるPythonっておもしろい(W
411 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 10:19:06 ] JythonがSunに取り込まれた模様
412 名前:デフォルトの名無しさん mailto:age [2008/03/04(火) 12:47:09 ] ○ライリーの工作員が来るとスレの流れが香ばしくなるという鉄板。
413 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 16:08:16 ] みんぱいって地雷だったのか ほいほいと買ってしまった・・・ まだ入門段階なのにへこんだ
414 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 16:25:54 ] 副読本と割り切るならそんなに悪くはないよ >>413 他にわらわらと出た和製入門本の中で特に悪いというわけでもないし
415 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 16:28:23 ] 日本のユーザー会のとこから、本家っぽいとこの日本語訳にリンクしてないのはやっぱ仲が悪いから? それとも見つけきらないだけ?
416 名前:デフォルトの名無しさん mailto:uge [2008/03/04(火) 16:29:00 ] >>412 >412 名前: デフォルトの名無しさん Mail: age 投稿日: 2008/03/04(火) 12:47:09 >○ライリーの工作員が来るとスレの流れが香ばしくなるという鉄板。 > >413 名前: デフォルトの名無しさん Mail: sage 投稿日: 2008/03/04(火) 16:08:16 >みんぱいって地雷だったのか >ほいほいと買ってしまった・・・ >まだ入門段階なのにへこんだ あらあら。オラ○リーの工作員さん大変ですね。
417 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 16:33:38 ] >>415 >日本のユーザー会のとこから、本家っぽいとこの日本語訳にリンクしてないのは 「本家っぽいとこの日本語訳」ってなにか教えて>工作員さん
418 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 16:39:28 ] 三流出版社の工作員なんて放っておけば。煽るなよ(ww
419 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 16:57:22 ] てかZopeユーザ会じゃなくてPythonユーザ会って何処?
420 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 16:58:11 ] ググれょ三流(wwww
421 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 17:14:43 ] a.pyとb.pyを同時に、別々のコアを使って動かすことは出来ないのでしょうか?
422 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 17:18:51 ] python a.py & ; python b.py
423 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 17:23:01 ] ありがとう!!やってみる!!!
424 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 17:35:36 ] >>410 結局売れてないのか。工作員役立たずじゃん。
425 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 17:36:34 ] apacheでpythonのローカルCGIテストしたいんですが ブラウザで指定するディレクトリはわかるんですけど CGIのはじめに指定するパスがわかりません apacheでローカルテストする場合なんて入力したら いいんですか? #!/usr/bin python ? レベルの低い質問ですいません・・・・・・
426 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 17:41:24 ] エラーを無視する(処理を続ける)にはどうすれば良い?
427 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 17:42:51 ] 俺はエラー処理にpassってかいてるけど・・・・本当はどうすりゃいいのかな?
428 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 17:51:30 ] >>425 まず、OSは何なんだ? コマンドで「which python」とか入力してみれ。
429 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 17:54:04 ] >>428 ウィンドウズ2000proです 教えてちゃんですいません。。。
430 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 18:00:32 ] >>429 Python をインストールした場所、例えば #!C:\Python25\python.exe
431 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 18:48:05 ] >>430 こたえてくれてありがとうございます やってみたいと思います
432 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 20:46:58 ] superASCIIの連載が一番。
433 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 22:12:51 ] 結局のところ このスレに来るような 特殊な人間の趣味を 押し付けたって 一般人の役になんて 立たないと思うんだ どうだろうか
434 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 22:45:11 ] >>413 黄色い恥パイじゃなければ大丈夫
435 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 22:52:12 ] はじパイはまずいパイなの?
436 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 23:05:07 ] はじパイ。チュートリアル。クックブック。 工作員がいるような三流出版社の書籍にまともなものがあるはずがないよ。
437 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 23:07:26 ] ↑騙されて買った馬鹿です
438 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 23:32:36 ] 一時期大いに取り上げられたのに、もう実践は無いもの扱いなのかとふと思った このスレ的には オンライン物>>>オライリーはじ>>みん=しっぱい>=パチはじ>その他(Nokia本など)?
439 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 23:54:48 ] はじパイは古すぎだろ。2.6のアルファが出てるのに2.3対応はないよ。いい加減改訂しろよ三流出版社。
440 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 23:59:12 ] 3rd edition出てるの知らんのかい
441 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 00:03:28 ] >>440 和訳本出てるの?
442 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 00:21:03 ] >>431 もう解決してるかもだけど、 httpd.apache.org/docs/2.2/mod/core.html#scriptinterpretersource 1行目は実サーバ用の設定(#!/usr/bin/env python とか)のまま Windows上でもテストができる。
443 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 00:33:31 ] >>441 出てないし出る予定もない。
444 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 00:36:23 ] 何で断言してんの?
445 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 00:37:34 ] あんな分厚い本訳して出しても儲からないから。
446 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 00:39:08 ] w
447 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 00:44:14 ] Pythonの本は日本だとどれも儲け出なそう
448 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 00:46:09 ] Pythonの本に限らずさあ、全国で数百冊売れれば万万歳みたいな本って、書いて利益あるの???
449 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 00:47:03 ] 翻訳本でしかも複数人数で訳してる例の書籍なんて、手取りからみたらネタとしか思えないよなきっと。
450 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 00:50:08 ] mixiにログインして、自分のホームのhtmlソースを取得したいんだけど、 ログイン処理ってどうすればいいの? import urllib print urllib.urlopen("mixi.jp/home.jp ").read().decode("euc-jp") だと当然ログインhtmlしか取得できないわけでして。
451 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 00:59:40 ] がんばれ
452 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 01:17:06 ] とりあえずurllib2とかのリファレンス眺めてみたらどうだろう mixiの認証の形式なんてしらないのでどーだか知らんが
453 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 01:23:09 ] python mixi でググるといっぱい出てくるわけだが・・・
454 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 01:31:19 ] 昔書いた科学計算のC/C++コードにGUIをつけようと思うのですが wxPython + C/C++ が C# + C/C++ より優位なところはありますか?
455 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 01:32:34 ] ポータビリティ
456 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 01:43:22 ] winオンリーなら・・・
457 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 02:05:38 ] GUI のイベントハンドラが単に C/C++ を呼び出すだけなら C# の IDE のデザイナの方が楽だと思う scipy とか使うなら別だけど
458 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 02:49:43 ] mechanize なる物を発見したのでつかってみた。 こんなコードでmixiにログインできた # ログイン画面に移動 import mechanize br = mechanize.Browser() br.open("mixi.jp ") # フォームに入力 br.select_form(nr=0) br["email"] = メールアドレス br["password"] = パスワード # ログイン br.submit() # 試しにリンク一覧を表示 for i in br.links(): if i.text is not None: print i.text.decode("euc-jp") ところが、その後ページを移動しようとして # リンク「マイミクシイ」を探す link = br.find_link(text_regex=u"マイミクシィ".encode("euc-jp")) # リンク先に移動 br.follow_link(link) # <-- ここでエラー なんか robot.txt によりアクセスが許可されませんでした みたいなエラーメッセージがでるんだけど 普通のブラウザとの違いはなんなんだ。。。?
459 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 03:48:32 ] User-Agent: ヘッダじゃね?
460 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 05:58:04 ] >>458 >>459 で解決してるかもしれないけど一応 そういう場合はブラウザとWWW:Mechanizeの出してるHTTPヘッダを比較すればいい FirefoxならLiveHTTPHeadersとか Pythonだとhttplib.HTTPConnection.debuglevel = 1 とかなんとか もちろんWiresharkみたいなLANアナライザ入れてもOK
461 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 09:54:03 ] >>458 mechanizeはデフォルトでrobots.txtを処理する。robots.txtは、ロボットによる巡回禁止!とか書いてあるサーバー側のファイル。 robots.txtを無視したい場合は、 br.set_handle_robots(False) 詳しくはここを見れ wwwsearch.sourceforge.net/mechanize/
462 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 10:46:21 ] >>461 Grazie mille ! Sassoku tameshite miruyo !
463 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 14:02:32 ] ただしその場合、「これはボットではない、自作のブラウザなんだ」と 自分に言い聞かせなければならない。
464 名前:413 mailto:sage [2008/03/05(水) 14:55:14 ] 質問しただけで工作員扱いか。 PythonユーザーもRuby厨に近づいてきましたね
465 名前:デフォルトの名無しさん [2008/03/05(水) 17:53:28 ] ライブラリとモジュールの違いってなんですか?
466 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 17:57:03 ] モジュールが集まったらライブラリになるんじゃね?
467 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 18:12:26 ] getopt と optparse の良いとこ悪いとこ 教えて。ケースに応じて使い分けたりするもの? どちらかが obsolute なだけとか?
468 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 18:41:32 ] Python万歳
469 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 19:56:31 ] getopt は C とかでも使う奴を python 用に使えるようにしただけ 基本的には optparse 推奨 (なんかもう一つくらいあったっけ?)
470 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 21:27:13 ] class A : def __init__(self, id) : self.id = id objs = [] # オブジェクトAの配列 for i in range(10) : objs.append(A(i)) delids = [1, 4, 9] # 削除したいid objsから効率よく該当するオブジェクトを(順序は維持したまま)除外したいのだけど簡単な方法はないかな? 今はこんな風に一々ハッシュ作ってからやってるんだけど。 hash = {} for delid in delids : hash[delid] = True objs = filter(lambda x : not hash.has_key(x.id), objs)
471 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 21:31:45 ] [a for a in objs if a.id not in delids] じゃだめ?
472 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 21:37:11 ] 読みにくいのが難点ですが、内包表現だと1行でできるんですね! ありがとうございます!
473 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 21:38:22 ] filter 使うなら filter(lambda x: x.id not in delids, objs) でも同じ
474 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 21:40:11 ] なるほど〜。 速度が気になるところですが、それは自分で比較してみます! >>471 >>473 さん、ありがとうございました〜
475 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 22:17:11 ] 工作員が必死で隠蔽工作(ww
476 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 23:48:04 ] ファイルの排他制御のテストプログラムを書いています。 ただ単に1つのカウントファイルを100万回インクリメントするプログラム #!/usr/bin/env python for i in range(1000000) : f = open("count-file", "r+") fcntl.flock(f.fileno(), fcntl.LOCK_EX) cnt = f.readline() cnt = int(cnt) + 1 f.seek(0) f.write("%d\n" % cnt) fcntl.flock(f.fileno(), fcntl.LOCK_UN) f.close() を同時に2つ実行するとcount-fileの値が 2000000 になるはずが、 1984329 という風に途中で欠けてしまいます。但し1つ実行する分には正常に動作します。 排他制御がうまくいってないようなのですがどこがいけないのでしょうか。 flockの部分をlockfにしても変化はありません。 OS Gentoo、python 2.5.1
477 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 23:52:06 ] LOCK_UN の前に flush?
478 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 23:56:25 ] >>477 まさにおっしゃる通りでしたorz 的確なアドバイス助かりました m(_ _)m
479 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 02:02:34 ] structmember.h #define WRITE_RESTRICTED で同名定義の上書きワーニングが発生する。 windows 特有のエラーぽいけどはやく直したやつリリースしてくれないかな。 svnリポジトリでみるソースだと既に PY_WRITE_RESTRICTED にリネームされてるんだけど。 適当にソース直してワーニング消す事はできるけど、それだと根本的な解決になってないし。
480 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 06:36:02 ] 音速を超えたらマッハ1〜なんでしょうけど 光速を超えたら何か呼び名はあるのでしょうか?
481 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 06:41:45 ] ウォーニング
482 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 06:48:13 ] のぞみ
483 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 08:59:37 ] ワープワン
484 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 10:50:38 ] 何というスレ違い・・・板違いどころの騒ぎじゃない マジレスすると科学技術分野で「光速を超える概念」なぞ無いから用語も無いだろう SF作家が自分の作品で勝手に名付けてるぐらいじゃないの
485 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 10:55:50 ] >>484 抵抗は無意味だ。
486 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 11:13:10 ] machのmはmegaのmらしい。ってことで光の場合は1ランクグレードアップして giga つまり gach ガッハ
487 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 11:35:20 ] エルンスト・マッハ先生にあやまれ(AA略
488 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 12:36:30 ] それよりガチンコ格闘映画のマッハにあやまれ。7人分あやまれ。
489 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 15:04:14 ] ガッハの次は・・テラだからテッハ?ペタはペッハか マッハの前はキロだからカッハ
490 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 16:37:12 ] 定数Cが単位Cになるだけじゃに 引力が1Gとか2Gになるがごとく
491 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 17:35:38 ] Python3000で追加されるライブラリは何かありますか?
492 名前:デフォルトの名無しさん [2008/03/06(木) 18:53:40 ] 光速を「C」で表すのはなぜでしょうか?
493 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 18:55:24 ] > 一般的に記号cで表わされる。これはラテン語で速さを意味するceleritasの頭文字である。
494 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 19:43:26 ] >>491 www.python.org/download/releases/3.0/ www.python.org/download/releases/3.0/NEWS svn.python.org/view/python/trunk/Misc/ 2.6α2はここのNEWS svn.python.org/view/python/trunk/Misc/NEWS?rev=61275&view=log コメント参照 docs.python.org/dev/3.0/whatsnew/3.0.html [Doc要約] 中段にある New, Improved, and Deprecated Modules のとこ >As usual, Python’s standard library received a number of enhancements and bug fixes. >Here’s a partial list of the most notable changes, sorted alphabetically by module name. >Consult the Misc/NEWS file in the source tree for a more complete list of changes, or >look through the Subversion logs for all the details. ここに最も顕著な変化の一部をリストとして示します。 完全なリストはソースツリーの Misc/NEWS を参照するか、詳細に ついてはsubversionのログを追いかけましょう。 - Removed these Python builtins: apply(), callable(), coerce(), execfile(), file(), reduce(), reload() [What's New in Python 3.0a1?より] - Removed UserDict.DictMixin. Replaced all its uses with collections.MutableMapping. [What's New in Python 3.0a3?より] あたりがちょっと個人的にショックかもしれん
495 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 20:14:08 ] apply,reduceはforか内包表記使った方がいいし coerceとかなんのためにあるか分かんなかったし execfileはexec open()で代替できるし fileとかややこしいだけだし callableはちょっと惜しいかな reloadは自分で実装すればいいや
496 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 20:23:27 ] >>494 >- Removed these Python builtins: >apply(), callable(), coerce(), execfile(), file(), reduce(), reload() [What's New in Python 3.0a1?より] file()以外は組み込み関数でなくなるだけで、モジュールどっかのモジュールに収容されるんでしょ?
497 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 22:16:09 ] callable は __call__ を持ってるかどうかで調べなさいということらしい def callable(f): return hasattr(f, '__call__')
498 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 22:47:25 ] >>496 ほんとうになくなる
499 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 22:58:22 ] reduce は functools.reduce
500 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 23:02:35 ] ttp://www.python.org/doc/essays/ppt/regrets/PythonRegrets.pdf
501 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 00:02:54 ] # 光より速い粒子で「タキオン」ってのがあるよ。 # マイナスの質量を持っていて、光より速くしか動く事が出来ない(光よりも遅くなれない)。 # # もちろん理論的な存在であり、 # 「相対性理論の式とは矛盾しないよね」ってだけの話。 # でもなぜか、タキオンを利用したブレスレットってのが存在するよw # ttp://shop.tachyonhealing.net/ exit()
502 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 10:52:16 ] >>> exit() Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: 'str' object is not callable >>> exit.__class__ <type 'str'> な、なんだってー
503 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 12:03:36 ] >>476 flushするのでもいいけど、LOCK_UN しないというのでもいいよ。 今の OS だとどれも f.close() すれば勝手に LOCK_UN してくれる。 つまりリソースの解放を OS 任せにすれば、問題は起きない。
504 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 12:56:05 ] >>297 遅レスで申し訳ありませんが,pywin32からGlobalMemoryStatus等のAPIが実行できるということでしょうか?
505 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 14:14:11 ] >>502 windows 版だとそれでもexit できる、・・・・ってこの話題前にもあった気がするなぁ・・・
506 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 15:24:20 ] pydevcampの動画が始まった。 www.ustream.tv/channel/pydevcamp08w
507 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 16:24:49 ] >>502 古いバージョン使ってる人ハケーン
508 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 17:03:24 ] 2.4のexit if os.sep == ':': exit = 'Use Cmd-Q to quit.' elif os.sep == '\\': exit = 'Use Ctrl-Z plus Return to exit.' else: exit = 'Use Ctrl-D (i.e. EOF) to exit.' __builtin__.quit = __builtin__.exit = exit
509 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 17:03:45 ] 2.5のexit if os.sep == ':': eof = 'Cmd-Q' elif os.sep == '\\': eof = 'Ctrl-Z plus Return' else: eof = 'Ctrl-D (i.e. EOF)' class Quitter(object): def __init__(self, name): self.name = name def __repr__(self): return 'Use %s() or %s to exit' % (self.name, eof) def __call__(self, code=None): # Shells like IDLE catch the SystemExit, but listen when their # stdin wrapper is closed. try: sys.stdin.close() except: pass raise SystemExit(code) __builtin__.quit = Quitter('quit') __builtin__.exit = Quitter('exit')
510 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 21:15:45 ] >>506 ちょw小林くん落ち着けw
511 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 21:27:44 ] て、てす、てすと・・そ、そそ、それ、それぇ
512 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 22:47:45 ] なんか、夕べあたりから静かなのは、荒らしてる人が雪山に行っちゃったせい?
513 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 00:46:39 ] 遭難、、もとい、そうなんだ
514 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 04:10:08 ] >>509 自分だったら、if elif else を __repr__ の中に入れちゃいそうだ。 そんなに何回も、そのreprを起動させるやつもいないだろうし・・・
515 名前:デフォルトの名無しさん [2008/03/08(土) 15:15:42 ] 小林くんはぶっつけ本番なのかな。話の筋がみえない…。
516 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 15:19:48 ] ageてしまた…
517 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 15:35:06 ] gdgdすぎてみる気起きん
518 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:22:08 ] ...
519 名前:デフォルトの名無しさん [2008/03/08(土) 16:23:02 ] | .| /./ / | | _,,,,||,,,l.,,_ ト / | _ | .| / . | | .| | l .| .,-'|.l .|l .| `|. l ' /´ / / / | | |.| .| , |´ | .| | _|,_ l .| ./ ''`ト ./ / | | |.| | | .| |_,,l-,─-.,_、_ | / .λl,/ / . |. |. || | .| | /::::l ヽ `'' | / , ,.ミ,|´| ./ ,,,__.| .| ヘ .| | .|/ |:i::::::〉., ノl | / .// ∨| / `'' ‐ 、l | .|||l'l:|:|l:::::`':::::i´|| '' / ...:::::l..'' .`ヽ、 |:| ヾl.ヾ::::::::::| .|| ::::::::: l .\_ -''lヾ ヘ:、.ヘ;;_;ノ ノレ .l .ヾ=,,,_ .ヘ ,ヾ_,,=..''´.... _,,, / ヽ .i'`''‐--.〉''´ .ヽ:::::::: _,,, -‐'''´:::::l ./.| ゲロゲロ!! .\ ヽ`ニ / l. /:::::::::::::::::::::::/ i''ヘ .l `ヽ .l-‐''l / .l:::::::::::::::::_;;-ヘ l ヽ ヘ ./.`iヽ .|ヽ| ./ ,,,,,,,_.ゞ,,, -‐''ヽ. |.| .| ヾ.、.ヽ / /|.| ヽ .| .| /ヽ /:::::ヾ .| ,l '| .l.l '|ヽ.、.ヽ // /./.|,, -'''''''''''''''-.、.'-< .| ヽ /:::::::::lト''´ .| | | .i.| .ヾ.、.ヽ / / /./ ヽ,.` .l ヽ,'ノ/ ヾ_;;;l.l |/ .l l | ヾ.、lヘ ./ .//l i | .ヾ |:::::|.| .|' l// i.|| i.| スクリプト稼働チュウ!
520 名前:デフォルトの名無しさん [2008/03/08(土) 16:23:33 ] | .| /./ / | | _,,,,||,,,l.,,_ ト / | _ | .| / . | | .| | l .| .,-'|.l .|l .| `|. l ' /´ / / / | | |.| .| , |´ | .| | _|,_ l .| ./ ''`ト ./ / | | |.| | | .| |_,,l-,─-.,_、_ | / .λl,/ / . |. |. || | .| | /::::l ヽ `'' | / , ,.ミ,|´| ./ ,,,__.| .| ヘ .| | .|/ |:i::::::〉., ノl | / .// ∨| / `'' ‐ 、l | .|||l'l:|:|l:::::`':::::i´|| '' / ...:::::l..'' .`ヽ、 |:| ヾl.ヾ::::::::::| .|| ::::::::: l .\_ -''lヾ ヘ:、.ヘ;;_;ノ ノレ .l .ヾ=,,,_ .ヘ ,ヾ_,,=..''´.... _,,, / ヽ .i'`''‐--.〉''´ .ヽ:::::::: _,,, -‐'''´:::::l ./.| ゲロゲロ!! .\ ヽ`ニ / l. /:::::::::::::::::::::::/ i''ヘ .l `ヽ .l-‐''l / .l:::::::::::::::::_;;-ヘ l ヽ ヘ ./.`iヽ .|ヽ| ./ ,,,,,,,_.ゞ,,, -‐''ヽ. |.| .| ヾ.、.ヽ / /|.| ヽ .| .| /ヽ /:::::ヾ .| ,l '| .l.l '|ヽ.、.ヽ // /./.|,, -'''''''''''''''-.、.'-< .| ヽ /:::::::::lト''´ .| | | .i.| .ヾ.、.ヽ / / /./ ヽ,.` .l ヽ,'ノ/ ヾ_;;;l.l |/ .l l | ヾ.、lヘ ./ .//l i | .ヾ |:::::|.| .|' l// i.|| i.| スクリプト稼働チュウ!
521 名前:デフォルトの名無しさん [2008/03/08(土) 16:24:03 ] | .| /./ / | | _,,,,||,,,l.,,_ ト / | _ | .| / . | | .| | l .| .,-'|.l .|l .| `|. l ' /´ / / / | | |.| .| , |´ | .| | _|,_ l .| ./ ''`ト ./ / | | |.| | | .| |_,,l-,─-.,_、_ | / .λl,/ / . |. |. || | .| | /::::l ヽ `'' | / , ,.ミ,|´| ./ ,,,__.| .| ヘ .| | .|/ |:i::::::〉., ノl | / .// ∨| / `'' ‐ 、l | .|||l'l:|:|l:::::`':::::i´|| '' / ...:::::l..'' .`ヽ、 |:| ヾl.ヾ::::::::::| .|| ::::::::: l .\_ -''lヾ ヘ:、.ヘ;;_;ノ ノレ .l .ヾ=,,,_ .ヘ ,ヾ_,,=..''´.... _,,, / ヽ .i'`''‐--.〉''´ .ヽ:::::::: _,,, -‐'''´:::::l ./.| ゲロゲロ!! .\ ヽ`ニ / l. /:::::::::::::::::::::::/ i''ヘ .l `ヽ .l-‐''l / .l:::::::::::::::::_;;-ヘ l ヽ ヘ ./.`iヽ .|ヽ| ./ ,,,,,,,_.ゞ,,, -‐''ヽ. |.| .| ヾ.、.ヽ / /|.| ヽ .| .| /ヽ /:::::ヾ .| ,l '| .l.l '|ヽ.、.ヽ // /./.|,, -'''''''''''''''-.、.'-< .| ヽ /:::::::::lト''´ .| | | .i.| .ヾ.、.ヽ / / /./ ヽ,.` .l ヽ,'ノ/ ヾ_;;;l.l |/ .l l | ヾ.、lヘ ./ .//l i | .ヾ |:::::|.| .|' l// i.|| i.| スクリプト稼働チュウ!
522 名前:デフォルトの名無しさん [2008/03/08(土) 16:24:34 ] | .| /./ / | | _,,,,||,,,l.,,_ ト / | _ | .| / . | | .| | l .| .,-'|.l .|l .| `|. l ' /´ / / / | | |.| .| , |´ | .| | _|,_ l .| ./ ''`ト ./ / | | |.| | | .| |_,,l-,─-.,_、_ | / .λl,/ / . |. |. || | .| | /::::l ヽ `'' | / , ,.ミ,|´| ./ ,,,__.| .| ヘ .| | .|/ |:i::::::〉., ノl | / .// ∨| / `'' ‐ 、l | .|||l'l:|:|l:::::`':::::i´|| '' / ...:::::l..'' .`ヽ、 |:| ヾl.ヾ::::::::::| .|| ::::::::: l .\_ -''lヾ ヘ:、.ヘ;;_;ノ ノレ .l .ヾ=,,,_ .ヘ ,ヾ_,,=..''´.... _,,, / ヽ .i'`''‐--.〉''´ .ヽ:::::::: _,,, -‐'''´:::::l ./.| ゲロゲロ!! .\ ヽ`ニ / l. /:::::::::::::::::::::::/ i''ヘ .l `ヽ .l-‐''l / .l:::::::::::::::::_;;-ヘ l ヽ ヘ ./.`iヽ .|ヽ| ./ ,,,,,,,_.ゞ,,, -‐''ヽ. |.| .| ヾ.、.ヽ / /|.| ヽ .| .| /ヽ /:::::ヾ .| ,l '| .l.l '|ヽ.、.ヽ // /./.|,, -'''''''''''''''-.、.'-< .| ヽ /:::::::::lト''´ .| | | .i.| .ヾ.、.ヽ / / /./ ヽ,.` .l ヽ,'ノ/ ヾ_;;;l.l |/ .l l | ヾ.、lヘ ./ .//l i | .ヾ |:::::|.| .|' l// i.|| i.| スクリプト稼働チュウ!
523 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:27:06 ] ちょMonty Python てありなの?w
524 名前:デフォルトの名無しさん [2008/03/08(土) 16:27:20 ] | .| /./ / | | _,,,,||,,,l.,,_ ト / | _ | .| / . | | .| | l .| .,-'|.l .|l .| `|. l ' /´ / / / | | |.| .| , |´ | .| | _|,_ l .| ./ ''`ト ./ / | | |.| | | .| |_,,l-,─-.,_、_ | / .λl,/ / . |. |. || | .| | /::::l ヽ `'' | / , ,.ミ,|´| ./ ,,,__.| .| ヘ .| | .|/ |:i::::::〉., ノl | / .// ∨| / `'' ‐ 、l | .|||l'l:|:|l:::::`':::::i´|| '' / ...:::::l..'' .`ヽ、 |:| ヾl.ヾ::::::::::| .|| ::::::::: l .\_ -''lヾ ヘ:、.ヘ;;_;ノ ノレ .l .ヾ=,,,_ .ヘ ,ヾ_,,=..''´.... _,,, / ヽ .i'`''‐--.〉''´ .ヽ:::::::: _,,, -‐'''´:::::l ./.| ゲロゲロ!! .\ ヽ`ニ / l. /:::::::::::::::::::::::/ i''ヘ .l `ヽ .l-‐''l / .l:::::::::::::::::_;;-ヘ l ヽ ヘ ./.`iヽ .|ヽ| ./ ,,,,,,,_.ゞ,,, -‐''ヽ. |.| .| ヾ.、.ヽ / /|.| ヽ .| .| /ヽ /:::::ヾ .| ,l '| .l.l '|ヽ.、.ヽ // /./.|,, -'''''''''''''''-.、.'-< .| ヽ /:::::::::lト''´ .| | | .i.| .ヾ.、.ヽ / / /./ ヽ,.` .l ヽ,'ノ/ ヾ_;;;l.l |/ .l l | ヾ.、lヘ ./ .//l i | .ヾ |:::::|.| .|' l// i.|| i.| スクリプト稼働チュウ! @ 5
525 名前:デフォルトの名無しさん [2008/03/08(土) 16:27:51 ] | .| /./ / | | _,,,,||,,,l.,,_ ト / | _ | .| / . | | .| | l .| .,-'|.l .|l .| `|. l ' /´ / / / | | |.| .| , |´ | .| | _|,_ l .| ./ ''`ト ./ / | | |.| | | .| |_,,l-,─-.,_、_ | / .λl,/ / . |. |. || | .| | /::::l ヽ `'' | / , ,.ミ,|´| ./ ,,,__.| .| ヘ .| | .|/ |:i::::::〉., ノl | / .// ∨| / `'' ‐ 、l | .|||l'l:|:|l:::::`':::::i´|| '' / ...:::::l..'' .`ヽ、 |:| ヾl.ヾ::::::::::| .|| ::::::::: l .\_ -''lヾ ヘ:、.ヘ;;_;ノ ノレ .l .ヾ=,,,_ .ヘ ,ヾ_,,=..''´.... _,,, / ヽ .i'`''‐--.〉''´ .ヽ:::::::: _,,, -‐'''´:::::l ./.| ゲロゲロ!! .\ ヽ`ニ / l. /:::::::::::::::::::::::/ i''ヘ .l `ヽ .l-‐''l / .l:::::::::::::::::_;;-ヘ l ヽ ヘ ./.`iヽ .|ヽ| ./ ,,,,,,,_.ゞ,,, -‐''ヽ. |.| .| ヾ.、.ヽ / /|.| ヽ .| .| /ヽ /:::::ヾ .| ,l '| .l.l '|ヽ.、.ヽ // /./.|,, -'''''''''''''''-.、.'-< .| ヽ /:::::::::lト''´ .| | | .i.| .ヾ.、.ヽ / / /./ ヽ,.` .l ヽ,'ノ/ ヾ_;;;l.l |/ .l l | ヾ.、lヘ ./ .//l i | .ヾ |:::::|.| .|' l// i.|| i.| スクリプト稼働チュウ! @ 6
526 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 18:37:37 ] test
527 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 18:59:03 ] >>523 まあ広川さんもなくなったしな。 とかなんとかいっちゃったりして。
528 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 19:24:05 ] 荒らし来てるじゃん
529 名前:デフォルトの名無しさん [2008/03/08(土) 20:48:54 ] まあここまでは俺が作ったpythonスクリプトで生成された人工知NOが自演してたんだがな
530 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 20:59:53 ] うほ、これWii動かしてんの?
531 名前:デフォルトの名無しさん [2008/03/08(土) 21:04:29 ] ('A`)ウィ
532 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 21:07:17 ] 値読むのは出来てたみたいだけど、入力するのもできるのかなぁ・・・、 まあ、出来てもうれしくないか・・・
533 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 22:01:41 ] IDLEのエディタでプログラムを更新したあとF5押してもシェルの方に反映されないんだけど何で?
534 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 22:13:59 ] ごめん、何か反映されてた
535 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 00:49:28 ] おまえらつまんねぇよ。 面白い奴らはみんな松本に行ってる証拠だな。 氏ねよカども。
536 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 00:52:34 ] Py3.0って日本語識別子使えるんだね。 なんかすごい危険な予感が。。。 全角()とか全角:とかが識別子に含まれてたらもどうしようもないな。 def 関数:読み取る(): return input(">>") def 関数:表示する(文字列:メッセージ): print 文字列:メッセージ 変数:文字列:メッセージ = 関数:入力() 関数:表示する(変数:文字列:メッセージ) とかっていう気持ち悪いのがまかり通るようになる
537 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 00:53:54 ] そういえば以前識別子に日本語使えないからってPython導入の許可が下りなかった人がいたな よかったね
538 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 00:54:31 ] >>535 おとといぐらいまでに面白いレス本当にあった?
539 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 02:19:19 ] >>536 VBでそんな悪夢を垣間見たことがあるんだが……まさか……orz
540 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 02:32:12 ] 松本かっこよす デブいけどwww.memelo.org/motocrash5.jpg
541 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 02:35:42 ] 開始するとは アプリケーション“Finder”について
542 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 02:39:29 ] bbs.exet.nu/gore/src/1201289908681.jpg
543 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 02:46:00 ] >>540 janeで見る限り、交通事故? たぶんグロ画像。 >>542 よく分からない白と茶色の塊が落ちてる。 たぶん汚物画像だと思う。
544 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 02:53:17 ] しょうがねえ、俺がわざわざポップアップしてみてやったよ。 >>540 がバイクの事故でバイクがぐちゃぐちゃ。2人死亡。 >>542 はよく見ても良く分からん。人が燃やされてるのか???
545 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 03:03:24 ] そう。人がコンクリの路上で燃えてる
546 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 03:36:02 ] motocrashとgoreやし、なんとなく判るやろ
547 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 12:42:11 ] なんだか著しく堕スレになったなぁ
548 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 12:43:22 ] そうか、もう春なのか…。
549 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 15:24:47 ] >>544 >>540 のは一人じゃないかな 上半身と下半身が別々の場所に転がってるように見える
550 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 16:04:19 ] わざわざ解説されても困る
551 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 16:06:43 ] グロ画像いらない。 わざわざ人に見せようとするのって心の病気だろ。
552 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 16:12:46 ] たかがネットで何を
553 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:03:04 ] Windows で Python を使ってみようと思うのですが、 インストール先としては C:\Python25 がでふぉなんだけど これを変えるといろいろと後で困りますか? たとえば C:\Program Files\Python25 とか。 たしかにスペースが入っていてマズそうなんですが。
554 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:04:39 ] Vistaでその位置にあると困るかも知れない
555 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:12:29 ] os.path.hogehoge でアクセスしている分には問題ないと思うよ
556 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:25:17 ] XPだし、とりあえずやってみます、というかインスコ完了。 で、また質問君なんですが、これでテキストデータ処理する スクリプト書いたとして、処理系をまるごと USB メモリに放り込んで 持ち歩くことって可能なんでしょうか? 学校のパソコンで実験データを処理したいのですが、 ネカフェにあるPCのようにがちがちにファイルシステム のパーミッションつーかACLが閉じられてて、自分の My Documents 以下以外には何も置けないのです。Docuemnt and Settings\自分の名前 直下の他のフォルダやファイルはドメインログオンの ログオンスクリプトで抹消されてしまいます。 教師いわくExcelの授業でやったろ!Excel使えExcelらしいんですが、 Office 2003 しか入れてくれないくせに実験データ10万行以上 あるよプギャーお前実際に生徒にやらせる前に自分で試してないだろ プギャー理科と情報の教師で情報交換してないだろプギャー というかExcelの使い方教えるなら分析ツールの回帰分析とか ちゃんと数学的に教えろよ数学の教師兼だろプギャープギャープギャー 結局ネットで調べてどっかの大学の授業資料読んだほうがいいじゃんorz
557 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:31:01 ] 試してないけど Portable Python ってのがあるよ ttp://www.portablepython.com/ 人柱よろしこ
558 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:31:20 ] telnetしてサーバのpython使う
559 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:36:18 ] >>557 おお、面白そう、試してみます。 >>558 たぶん学校の外にtelnetとかsshとか出て行けないです。 今眺めてたらなんで tcl/tk が・・・ かなり厨房のころにLinuxのカーネルをコンパイルしようと したときに tcl/tk ベースのGUIを使ったような気が。
560 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 18:06:22 ] >ちゃんと数学的に教えろよ数学の教師兼だろプギャープギャープギャー ある一線を超えたら、教官から何か教えてもらえると思わないほうがいい
561 名前:553 mailto:sage [2008/03/09(日) 18:14:51 ] なんと IronPython なるものもあるみたいっすね 別に.NET好きってわけじゃないけど Visual C++ は普段から使ってるんで操作性がいいならデバッグまでは IronPython 使って同じスクリプトを実行は python.exe (pythonw.exeはコンソールウィンドウが出ないだけ?) という手もあるのかなぁとか思ってます。
562 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 18:19:38 ] 最低限python.exeとpythonXX.dllとmsvcランタイムがあれば動くよ ライブラリ検索パスをレジストリから取得するのでセットアップしてない状態だと python.exeと同じディレクトリとpythonXX.zipくらいしかパスが通ってないと思う。 以下のファイルをpython.exeと同じディレクトリに置けば普通に使える C:\Python25\DLLs\* C:\Python25\Lib\* C:\Python25\tcl (これはtcl使ってないからわかんね) 関連づけとかはまあ適当に
563 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 18:22:11 ] というか、学校の宿題をネットカフェのPCでやろうととてることには誰も言及しないのはなぜだ。
564 名前:553 mailto:sage [2008/03/09(日) 18:31:32 ] >>563 エカフェでやろうとしてないっす〜 学校のPCがリブートのタビに初期化される仕組みが ネカフェのと似てるって書いただけっす。 家にあるのは Sempron で組んだ XP SP2 なマシンですよ。 せっかく64ビットOKな世代のSempronにしたのにWindowsは 32ビットでなんか悲しいです。
565 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 19:14:19 ] あとあれだ、py2exeでバイナリ化 > ポータブルになる
566 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 20:09:58 ] Python本体 Win32com py2exe
567 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:59:46 ] Pythonフォルダをコピーして適当なところにペーストし、 c:\/windows/system32/ にある msvc*71.dll をPython.exe と同じフォルダに 置けばどんな環境でもそのまま動く (別途インストールした Python ライブラリももちろんそのま使える) パスがをわざわざ通すのが面倒なら、バッチファイルを作ればいい Python .\hoge.py PAUSE と書いたテキストファイルを hoge.bat としておけば、 パス通すとか面倒な事しなくても ダブルクリックしただけで hoge.py が動く。ファイル名前にある .\ を忘れない事。 PAUSE というのは、スクリプトで例外が発生したときに トレースバックが表示された瞬間にアプリケーションが終了して 窓が閉じてしまうのを防ぐためのおまじない
568 名前:553 mailto:sage [2008/03/09(日) 23:26:47 ] 皆さんありがとうございます。 ところで本家から落としたWindows版のバイナリを使わせてもらっているのですが、 Pythonってコメント中にはマルチバイト文字って無理でしょうか? マルチバイト文字と言ってもUTF-8なのですが。
569 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:31:04 ] >>563 日本語で すが読めないんですか
570 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:34:17 ] >>568 何も問題なし ただし、環境によっては(たとえWindowsでも)ソースコードの1行目に #coding: UTF-8 とか書いておかないと、実行しようとしたときに文字コードエラーが起きる
571 名前:553 mailto:sage [2008/03/09(日) 23:37:18 ] コメントで指定する方法があるんですね。 コマンドラインオプションで指定する方法も探して見ます。
572 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:15:43 ] >571 ttp://www.python.jp/doc/nightly/tut/node4.html#SECTION004230000000000000000
573 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 10:59:07 ] pythonでCP51932の文字は扱えますか?
574 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 11:07:11 ] >573 ttp://www.python.jp/doc/nightly/lib/standard-encodings.html
575 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 11:27:28 ] >>574 dクス
576 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 12:21:34 ] スレのレベルが上がったような気がする。 合宿が終わったからか?
577 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 12:36:32 ] おまえのレベルが下がったんだよ
578 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 14:15:21 ] >>577 ゴメン、意味ワカンネ
579 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 15:24:25 ] 日本語読解能力レベルも下がったんだな
580 名前:デフォルトの名無しさん [2008/03/10(月) 16:49:50 ] すばらしい py3.0で日本語識別子試してみたけど、全角記号はちゃんとはじかれる! これで安心して日本語プログラムできますな
581 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 17:39:58 ] >>579 「読解能力レベル」ってデコレータをデコレーションする、みたいなもんか?
582 名前:デフォルトの名無しさん [2008/03/10(月) 19:02:05 ] site-packages/sitecustomize.py で import sys sys.setdefaultencoding('utf-8') ってやればソースコード中にエンコードしていを書かなくても utf-8 でコメントとか書きまくれるかと思ったんだけど, だめなんでしょうか.
583 名前:デフォルトの名無しさん [2008/03/10(月) 19:18:28 ] 一応対話的に起動した後で import sys sys.getdefaultencoding() とすると utf-8 と表示されるんですが, python hage.py ←UTF-8なコメントを含んでいる と実行すると non-ascii が含まれてる癖に エンコーディング方法が指定されてないぜ!死ね. と怒られます.
584 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 19:30:15 ] >>583 >>570 sys.getdefaultencoding()はunicode(somestring)したときに参照される なんにしろ相互に変換するときはきちんと把握すること
585 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 20:40:56 ] {set/get}defaultencoding とソースの文字コードは無関係
586 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 20:44:59 ] たとえば SJISのファイルを読んでUNICODEでコンソールに出力するプログラムをUTF-8のソースで書くとこのようになります ↓
587 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 20:47:19 ] │ ↑ └─┘ おらっしゃあぁぁ!!! ∩∧ ∧ ヽ( ゚Д゚) \⊂\ O-、 )〜 ∪
588 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 21:01:57 ] #!/usr/bin/env python # -*- coding: utf-8 -*- import sys sys.setdefaultencoding('cp932') print unicode(open('日本語.txt', 'rb').read(), 'cp932')
589 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 21:02:38 ] ああ、ファイル名の文字コードはUTF-8ね
590 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 21:25:15 ] setdefaultencoding は site.py 実行最後で del されるぞ
591 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 21:30:57 ] つcodecs.open
592 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 22:01:56 ] >>591 俺、自前じゃない他人のを読むときは全部それで開けてるわ。 便利だよな。
593 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 22:29:04 ] codecs.openを知らない奴は入門書も読まない文盲か貧乏人。
594 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 22:36:33 ] >>580 識別子に使える文字はそれっぽく妥当に決めてる(Unicode.orgが)みたいね ttp://www.python.org/dev/peps/pep-3131/ ttp://www.unicode.org/reports/tr31/ 全角記号が使えなくてちょっと安心した
595 名前:デフォルトの名無しさん [2008/03/11(火) 02:13:50 ] みなさんパイソン歴どんくらい?
596 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 02:38:59 ] そういう話はmixiで
597 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 03:04:18 ] mixiは見るのが面倒。遅いしfeedも無いし。
598 名前:デフォルトの名無しさん [2008/03/11(火) 07:36:36 ] フィードがないからなんか使わなくなっちゃうんだよな。 たまにマイミクにメッセージ送る程度。
599 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 07:49:34 ] python-json 3.4 と codecs.open は共存出来ますか?
600 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 08:50:38 ] codecs.open て unicode(file(filename).read()) に対してどの程度利点がある?
601 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 08:51:37 ] >>596 暇な窓際オッサンがスレを占拠しててウザいからmixiは嫌い
602 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 09:01:17 ] >>600 ファイルオブジェクトとして扱える
603 名前:デフォルトの名無しさん [2008/03/11(火) 10:06:10 ] このスレ的には IronPython もおkって人が多い? それとも IronPython は異端?
604 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 12:21:46 ] >>600 後者のほうは Python3 で使えない (unicodeとfile)
605 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 12:41:44 ] >>603 異端かは知らんが 専用スレはあるようだ pc11.2ch.net/test/read.cgi/tech/1157686822/l50
606 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 19:57:43 ] >>603 文法は一緒なんだがライブラリが別物(.NET Fw使うから)なんで 用途的な意味でほとんど別物だと思う、俺が使った感想だと。
607 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:02:04 ] >>606 .Net・・・ファイアーウォール?
608 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:11:01 ] つ、つられないぞっ
609 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:42:19 ] MSのOSでしか使えないスキルというのが、手を出すのをためらう所かな。
610 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:17:00 ] monoも忘れないであげてください
611 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:54:00 ] >>606 そういう人にはFePy
612 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:42:08 ] unicode(file(filename).read())とか書いちゃう奴は入門書を買えない貧乏人か文盲 open()使うかRubyでもやっとけクソ
613 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:46:37 ] 貧乏人バカにすんなよ
614 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 08:37:05 ] 巷に出回ってる入門書のすべてでunicode()を扱ってるとでも思ってるんだろうか
615 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 11:37:06 ] クソ本はクソ人間にも劣る。 codecs.open()を扱っていない入門書など論外である。
616 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 11:47:51 ] おミンパイはどうなの?
617 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 14:03:28 ] >>616 書いてあるわけないだろうがボケカス氏ね
618 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:33:06 ] def func1(a,b,c,d): 中略 関数の呼び出しで第一引数を省略して呼び出すには どうしたら良いでしょうか? func1(,"hoge","fuga","piyo") と書いたら怒られますた。。。
619 名前:618 mailto:sage [2008/03/12(水) 18:39:06 ] >>> def func1(a,b,c,d): ... pass ... >>> func1(,"hoge","fuga","piyo") File "", line 1 func1(,"hoge","fuga","piyo") ^ SyntaxError: unexpected token ',' >>> def func1(a="nyo",b,c,d): File "", line 1 def func1(a="nyo",b,c,d): ^ SyntaxError: default value must be specified here はじめの引数だけ省略したいですと… orz
620 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:42:41 ] >>618 答えがあるのかもしれないけど、 普通は、関数を定義する時に、 必須の引数を前に持ってきて、オプションは後ろ def func(arg1, arg2, arg3=None, arg4=True): return True こうすると、3と4は省略可能
621 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:44:29 ] むり 省略は後ろから順
622 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:47:59 ] それか綺麗じゃないけどその場で適当に何か入れといてから 必要になったときに入れ直したら? どういうコードが後に続くのかによって何とかなりそうな気もする
623 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:48:23 ] def func1(a='hoge', b='fuga', c='moge', d='piyo'): 中略 とやって func1(b='foo', c='bar', d='baz'): 中略 と呼ぶ手もなくはないがめんどい
624 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:53:19 ] >>618 # python 2.5 import functools func1p = functools.partial(func1, "第一引数の値") func1p("hoge","fuga","piyo")
625 名前:618 mailto:sage [2008/03/12(水) 19:01:30 ] >>620-621 now = time.strftime("%Y/%m/%d", time.localtime(time.time())) def res(name, mail, time=now, body): 中略 res("デフォルトの名無しさん","sage",,"本文") ではなくて、res(,,,"本文") と書けたら便利そうなのですが、前から省略はできない… でも引数の順を変えるのは嫌かも…諦めるしかない d
626 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:09:54 ] >>623 すべての引数にデフォルトの値を割り当てれば いいのか… >>> def res(name="デフォルトの名無し",mail="sage",time="2008/03/12",body=""): ... print name,mail,time,body ... >>> res(body="本文") デフォルトの名無し sage 2008/03/12 本文 とりあえず解決しますた。 dd
627 名前:デフォルトの名無しさん [2008/03/12(水) 20:11:10 ] コピペアフィブログの臭いがプンプンだぜ
628 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:04:02 ] IronPython使ってる人なんていたんか
629 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:14:11 ] >>> def res(**kwargs): ... print kwargs['hoge'] if kwargs.has_key('hoge') else None ... print kwargs['fuga'] if kwargs.has_key('fuga') else 0 ... >>> >>> res(fuga=100) None 100 >>> res(hoge='abc') abc 0 >>>
630 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:22:30 ] [] if...else...よりはget 更にhas_keyよりはin演算子
631 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:58:37 ] def res(**kwargs): print kwargs.get('hoge', None) if 'hoge' in kwargs print kwargs.get('fuga', 0) if 'fuga' in kwargs
632 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:30:45 ] **kwargs 出す場面じゃあない 暗黒面への入り口
633 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:11:23 ] 肛門臭うぞ
634 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:19:05 ] 鼻エスパー?w
635 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:21:17 ] かわいそうな能力w
636 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:23:13 ] import os print [x for x in os.listdir(u"C:/")] このやりかたって日本語ファイル名だめなの?
637 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:29:17 ] \x83等のエスケープの事なら避けられない
638 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:55:29 ] Python3000でprintが関数になれば出来るのかね。 強引だけど、map(print, os.listdir('.'))みたいな
639 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 01:03:54 ] >>636 の振った話題に付いて行けない。 このコードだとなにが問題なの?
640 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 01:10:55 ] それよりみんなさ、引数がたくさんあるメソッドをオーバーライドしたときってどう対処してる? たとえばGUIクラスがあったとして class Window: def __init__(self, parent, width, height): ... これを継承するでしょ。で、そのとき独自の引数 piyo を追加したい。その時って class ExWin(Window): def __init__(self, parent, width, hegiht, piyo, *args, **kwargs): Window.__init__(self, parent, height, *args, **kwargs) ... みたいに律儀にやってる? でもこれだと、基底クラスの受け取る引数が一つ増えたときにややこしいことになる それとも、..., piyo=None, *args, **kwargs) って、キーワードとして追加? なんにしても、基底クラスの仕様が変化すると、渡すパラメータの順番が狂ってしまう
641 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 02:54:37 ] 日本語コーデックの自動判別モジュール探してたんだけど、よく考えたら この判定コードで十分じゃね? jp_codecs = ("euc-jp", "sjis", "utf-8") jp_patterns = "あいうえお…わをん" def get_jp_codec(s): def tryenc(s): for i in jp_codecs: try: u = s.decode(i) yield i, u except UnicodeDecodeError: pass for enc, u in tryenc(s): if len(set(jp_patterns) & set(u)) > 0: return enc return None
642 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 05:01:39 ] >>641 厳密に言うと、完全ではない。 たとえばEUC-JPとShift_JISは完全に区別することはできなくて、 Shift_JIS なのに s.decode('euc-jp') でエラーにならない場合もある。
643 名前:デフォルトの名無しさん [2008/03/13(木) 13:08:28 ] 全部試してみてエラーが起きないやつを可能性として 全部候補に挙げて,あとはカン,とかどうよ? nkf なんかはもっとなんか別の統計的手法をつかってるんだっけ?
644 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 13:12:57 ] シフトJISの半角カタカナ2文字か、EUC-Jの漢字1文字か、が 全く同じバイト列になるから判別不可能。
645 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 19:51:59 ] Welcome to NISHIO Hirokazu's homepage!
646 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 23:52:55 ] [i for i in globals().keys()] と打ち込むと "_[2]" ていう変な識別子が定義されてるんだが、なんだこれは。
647 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 00:11:31 ] ぐぐったらこんなのがみつかった aspn.activestate.com/ASPN/Cookbook/Python/Recipe/204297 内包表現で使われる一時変数みたいね >>> def p(x): print x ... >>> [x for x in range(5) for _ in [p(locals()['_[1]'])]] [] [0] [0, 1] [0, 1, 2] [0, 1, 2, 3] [0, 1, 2, 3, 4] # トップレベルのlocals()とglobals()は同じだよね・・・
648 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 00:21:47 ] >>> dis.dis(compile("[x for x in range(5)]","","eval")) 1 0 BUILD_LIST 0 3 DUP_TOP 4 STORE_NAME 0 (_[1]) 7 LOAD_NAME 1 (range) 10 LOAD_CONST 0 (5) 13 CALL_FUNCTION 1 16 GET_ITER >> 17 FOR_ITER 13 (to 33) 20 STORE_NAME 2 (x) 23 LOAD_NAME 0 (_[1]) 26 LOAD_NAME 2 (x) 29 LIST_APPEND 30 JUMP_ABSOLUTE 17 >> 33 DELETE_NAME 0 (_[1]) 36 RETURN_VALUE さっぱりわからんが_[1]が使われてるみたいだ
649 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 02:21:21 ] IronPythonだと出ない
650 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:14:55 ] 3.0α3でも出なかった
651 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:35:10 ] >codecs.open()を扱っていない入門書など論外である。 >おミンパイはどうなの? 書いてあるよ。 工作員お勧めのはじパイには書いてないけど。
652 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:39:53 ] 速pyはどうなの?すごいマイナー臭がするけど。
653 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:19:15 ] 初めてのPythonって、オライリーから出てるのが本物?
654 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 14:20:31 ] 黄色い方が偽者
655 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:30:10 ] wanthac.blogspot.com/2007/10/python_27.html
656 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:40:40 ] d.hatena.ne.jp/Cassiopeia/20070602/1180805345
657 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:42:33 ] osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/python/encoding.html ># 日本語の入った文字は、u'....' のように、頭に"u"をつけて、 この文字列がUTF-8で書かれている事を明言します。 大嘘だ罠
658 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:45:03 ] d.hatena.ne.jp/Cassiopeia/20070604/1180900747
659 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 16:08:04 ] >>636 import os print repr([x for x in os.listdir(u'c:/')]).decode('unicode-escape')
660 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 18:59:09 ] 工作員お勧めのクソ本のせいで「Pythonは日本語が苦手」という印象が広まってしまっている件。
661 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 19:48:06 ] 初めて日本語処理を書く人は大抵つまずく、という点では正しい。
662 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:16:36 ] そこらへんはJAVAやC#に遅れをとっている所だよね PerlやRubyよりはマシなんだけども
663 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:18:53 ] >>659 出来ました 激しくありがとうございました
664 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:20:25 ] PPPの中ではunicode化に関しては一番進んでるよな
665 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:22:09 ] Java/C#はそんなに優れてるの?
666 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:42:40 ] 特にjavaは秀逸
667 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:46:13 ] Javaってクラス名や変数名日本語可能?
668 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:10:48 ] 動物が表紙のウンチ本が全部悪いんだぜ
669 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 00:49:12 ] フローズンバイナリがよくわかりません。チュートリアルにも フローズンバイナリに付いて全くといっていいほど情報がないし。。。 なんなの?これ
670 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:00:52 ] >>669 何が分からんのか分からん。
671 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:19:15 ] 書いたスクリプトの実行時間(0.5秒)のボトルネックがimport文(9割を占める)でした。 importのオーバーヘッドを小さくするtipsなどないでしょうか?(2.4使用) スクリプトはCGIにしたいと思っているもので、 色々な種類の小さめの処理(各1ファイル)をサクサク実行したいという状況なのです。
672 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:24:55 ] >>669 サードパーティーモジュールが必要だから チュートリアルに書いてあるわけがない。
673 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:31:32 ] >671 まさか関数内で import なんてことないよね? import はモジュールのトップレベルですべし。
674 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 02:05:00 ] ディスクの空き容量が知りたい時は df を popen() して re.search()? Windowsではどうするの?
675 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 02:17:29 ] ctypesでGetDiskFreeSpaceEx呼び出す
676 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:12:45 ] >>674 じゃないけどヒントもらったしせっかくなので from ctypes import * dirname = ur'c:\\' GetDiskFreeSpaceExW = windll.kernel32.GetDiskFreeSpaceExW freeBytesAvailable = c_ulonglong() totalNumberOfBytes = c_ulonglong() totalNumberOfFreeBytes = c_ulonglong() GetDiskFreeSpaceExW( dirname, byref(freeBytesAvailable), byref(totalNumberOfBytes), byref(totalNumberOfFreeBytes)) print "free space of %s: %d bytes" % (dirname, freeBytesAvailable.value) こういうのちょこちょこ書き溜めたら結構なライブラリになるだろうなあ
677 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:40:42 ] ttp://starship.python.net/crew/mhammond/win32/
678 名前:676 mailto:sage [2008/03/15(土) 10:02:11 ] >>677 d さっそく書き直したよ >>> import win32file >>> win32file.GetDiskFreeSpaceEx(u'c:/')
679 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:11:46 ] おれもやってみたけど >>676 で帰ってくる値と >>678 で帰ってくる値が微妙に違うw もちろんその間にdiskは使ってないし totalNumberOfBytes の値だけは一緒だから freeBytesAvailable と totalNumberOfFreeBytes の値だけが変化してるw こういうときでも freeBytesAvailable == totalNumberOfFreeBytes は常に真なんだな
680 名前:674 mailto:sage [2008/03/15(土) 14:17:33 ] みなさんありがとう! Mac OS X と Windows をターゲットにした客先なので os.name 見て切り替えるしかないですね。 pywin32 でも ctypes でもいいから標準インストールに含まれるようにならないかなーと思ったら 2.5 から ctypes 入ってたのねorz 知らなんだ...
681 名前:636 mailto:sage [2008/03/15(土) 22:24:47 ] >>659 超ありがとう
682 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:01:51 ] win32com.clientを使いたいんだけど、 '\x83N\x83\x89\x83X\x95\xb6\x8e\x9a\x97\xf1\x82\xaa\x96\xb3\x8c\xf8\x82\xc5\x82\xb7' なんてエラーメッセージが帰ってきたんです。 これ、何て読むんですか?
683 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:03:52 ] >>> print '\x83N\x83\x89\x83X\x95\xb6\x8e\x9a\x97\xf1\x82\xaa\x96\xb3\x8c\xf8\x8 2\xc5\x82\xb7' クラス文字列が無効です 確かに見づらい罠。
684 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:36:41 ] >>683 シフトJIS? utf-8な環境だと????だらけで見れない。
685 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 01:14:11 ] だな。sjisにdecodeでおk。
686 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 02:10:23 ] 教えてください! PyDEVでプログラムを書いています。 書いたプログラムを実行するのに「次を実行ボタン」「ダイアログが開く」 「Python実行を選択する」「OKボタン」の順に操作するのが面倒です。 また、「左のツリーからファイルを右クリック」「右クリックメニュー」「実行→」「Python実行」 とメニューを辿っていくのも面倒です。 なんかボタン一発で今開いているファイルを実行する方法はありませんか?
687 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 02:13:01 ] 書いたpyファイルダブルクリックが最速かもな 端末から打つより早いだろうし
688 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 02:44:35 ] 左側のツリー(Pydevパッケージエクスプローラ)で、 開いているファイルをダブるクリックすると、一瞬マウスが砂時計になって、その後何も起こりません。 開いていないファイルをダブるクリックすると、エディタで開きます。 どこでダブルクリック?
689 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 08:16:44 ] 困ったことがあったら、 >>1 にリンクされている 聖書を読むべき
690 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 08:29:47 ] 聖書ってお民パイのことか?w
691 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 11:48:19 ] ITproにPythonの連載がのってた。 itpro.nikkeibp.co.jp/article/COLUMN/20080207/293301/ 2回目がSQLObjectだった。
692 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 11:50:43 ] 気軽といいつつLinuxを例にしてるアレか
693 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 11:54:01 ] SQLAlchemyだったら読みに行くんだが・・・
694 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 13:04:59 ] datetime.strptime に UnicodeString 渡したらエラーになった…。 str のまま渡すとうまくいく模様。これって変じゃないか? ---- # -*- coding: cp932 -*- from pprint import pprint from datetime import datetime # 成功 pprint( datetime.strptime("2008年3月16日 2:03", "%Y年%M月%d日 %H:%m") ) # 失敗 pprint( datetime.strptime("2008年3月16日 2:03".decode("cp932"), "%Y年%M月%d日 %H:%m".decode("cp932")) ) ----
695 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 13:37:00 ] datetime.datetime.strptimeがunicodeならsys.getdefaultencoding()でstrに変換、という処理を行ってるからのようだ。 time.strptimeはそんなことをしていないので、バグかな? $ python -S Python 2.5.2 (r252:60911, Mar 12 2008, 13:36:25) [GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu4)] on linux2 >>> import sys, time, datetime >>> sys.getdefaultencoding() 'ascii' >>> time.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m") (2008, 3, 16, 2, 3, 0, 6, 76, -1) >>> datetime.datetime.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m") Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode character u'\u5e74' in position 4: ordinal not in range(128) >>> sys.setdefaultencoding('utf-8') >>> sys.getdefaultencoding() 'utf-8' >>> time.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m") (2008, 3, 16, 2, 3, 0, 6, 76, -1) >>> datetime.datetime.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m") datetime.datetime(2008, 3, 16, 2, 3)
696 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 14:10:24 ] strptimeのメインの処理は_strptime.strptimeなんだけど、 これを呼ぶPyObject_CallMethodの第三引数formatが違うんだな。 datetime.datetime.strptimeは"ss"になってる(strへの変換)。 time.strptimeは"O"でタプルのまま渡してる。
697 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:38:50 ] >>691 SQLObjectのことをフレームワークと言ってて「ふーん」と思った。
698 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:48:46 ] >>686 Eclipse + Pydev? F11やCtrl + F11はどうよ
699 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:11:59 ] >>698 レスありがとう。 F11すると「次を実行ボタン」を押したときと同じでダイアログがでてきました。 >>686 で書いたのと同じです。Ctrl+F11は何も起こりません。 ソースをちょこちょこ変更して実行して、、、ていうことを繰り返してると、 実行するまでの動作がだんだん煩わしくなってきます。
700 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:48:22 ] どなたか教えてください t=urllib.urlopen("http://〜〜").read() print type(t) とするとstrとなるんですが。 utf-8のサイトの場合 tの型がunicodeになってほしいんです どうしたらよいでしょうか。 python2.5の場合はstrのままテキストに落としたらutf-8として文字化けせずに表示されるのですが ironpythonの場合テキストエディタで開いたらASCIIとして認識され文字化けされています。 utf-8としてそのファイルを保存し直しても文字化けしたままです。 解決策ご存じの方いましたらお願いします
701 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:52:27 ] t=urllib.urlopen("http://〜〜").read().decode("utf-8")
702 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:58:58 ] >>700 入門書嫁。
703 名前:700 mailto:sage [2008/03/17(月) 00:39:43 ] 文字化けしない方法自己解決しました。すいません; ファイルの側をバイナリモードで開いて突っ込むだけでした。 open("hoge","wb")
704 名前:700 mailto:sage [2008/03/17(月) 02:02:00 ] >>701 ちゃんとレスが表示されてなくて見てませんでした。 それだとAsciiキャラクタじゃないから変換できませんよーってエラーがでます。 ironpythonではutf-8なんて定義されてないって出ました 僕の環境だけでしょうか・・・・?
705 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 10:23:43 ] >704 ところで Python のバージョンは?
706 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 11:14:09 ] また文字コードか
707 名前:デフォルトの名無しさん [2008/03/17(月) 11:45:17 ] 文字コードの諸問題もテンプラに入れて初心者が醤油と大根おろしで美味しく食せるようにするべき
708 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 12:33:53 ] pythonce mobileとpythonce smartphoneってどうちがうんですか?
709 名前:デフォルトの名無しさん [2008/03/17(月) 15:04:11 ] 正直文字コードをうまく扱えないやつはPython使うなといいたい。 Rubyのがはるかに先を行っている
710 名前:デフォルトの名無しさん [2008/03/17(月) 16:00:43 ] どう先を行っているの? 煽りじゃなくてマジで知りたい。 しかしRubyを学ぶのは断る!
711 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 16:11:21 ] ほんとどの言語使っても文字コード絡みはネックだなー Pythonに限った話しじゃないけど、文字コードの仕組みというか原理というかを完全に理解してる方たちは、 悩まずプログラミング出来てますか? なんかいっつも日本人可哀想だなーって思ってしまう俺がアホなだけ?? 一回とことん文字コードについて勉強したほうがいいんかなー
712 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 16:17:39 ] 文字列は基本unicode、strは単なるバイト列(≒I/O用) なんもややこしいことはない。
713 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 17:54:59 ] >>711 unicodeへのエンコードモジュールを自分で作ってみ。
714 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:14:19 ] u'ほげほげ' を勝手に UTF-8 だと思い込んでいるひとが意外と多い それがすべての間違いの元
715 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:07:39 ] >>> a="タ" >>> if a in "[ぁ-んァ-ン]": print "true" ... else: print "false" 文字列が、ひらがな、もしくはカタカナだと 判定するにはどうしたら良いですか? 上記のだとうまくいかない…
716 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:47:50 ] if a in [c for c in u'ぁ-んァ-ン']: print "true" else: print "false"
717 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:02:05 ] >>716 >>> for e in u"ぁ-ん": ... print e, ... ぁ - ん >>> for e in [c for c in u"ぁ-ん"]: ... print e ぁ - ん できないジャン
718 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:07:45 ] print re.match(ur"[ぁ-んァ-ン]", u"タ") is not None
719 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:09:33 ] >>> for i in unicode('あア亜', 'mbcs'): print unicodedata.name(i) HIRAGANA LETTER A KATAKANA LETTER A CJK UNIFIED IDEOGRAPH-4E9C
720 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:39:32 ] c = u'タ' if u'ぁ' <= c <= u'ん' or u'ァ' <= c <= u'ン': print "true" else: print "false"
721 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:20:48 ] 見た感じ、unicodedata使うのが綺麗っぽいかな。
722 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:24:56 ] >>707 おっと、いい天ぷらは塩だけでいけるぜ
723 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:06:51 ] 手元のベンチマークだと一文字だと比較 : 正規表現 : unicodedata = 1 : 2 : 2.5くらい 複数文字の文字列だと長ければ長いほど正規表現が抜群に速い (PythonのループはCと比べてかなり遅い)
724 名前:デフォルトの名無しさん [2008/03/17(月) 22:33:13 ] py2exe を使った場合、完全にその exe ファイルだけで 動くのでしょうか。それとも何らかの DLL などが必要なんでしょうか。
725 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:03:06 ] DLLも一緒にパックされる
726 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 08:15:55 ] Python的ヒエラルキーは 汚いけど速い<<<綺麗 汚いけど速い>綺麗だけどかなり遅い だろ
727 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 13:55:08 ] www.python.org/dev/peps/pep-0361/ 2.6, 3.0の正式リリースは9/3予定だって
728 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 15:25:07 ] ひげぽんがPythonのネガティブキャンペーンしてる。 最も todo と fix meが多いプログラミング言語は Python かもしれない d.hatena.ne.jp/higepon/20080317/1205768303
729 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:06:56 ] ToDoが明確になっているのはよいことじゃないかな? 何もないままいい加減なコードを書かれるよりずっとまし。 Pythonの人って被害妄想が強すぎる。だからいじめられるんだよ。
730 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:19:40 ] >>729 同意。ネガキャンというほどの内容でもないよね。
731 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 18:53:31 ] >>729-730 そうか。社内のPythonハッカーと抗争を始めたのかと早とちりして しまったよ。
732 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:01:10 ] >>731 西尾さんとは仲いいしそんなことはないっしょ
733 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:05:52 ] >>728 どう見てもなんとなく書いてみました風の記事なんですが
734 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:51:59 ] 早とちりしたのは西尾さん本人説。
735 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:53:26 ] >>729 TODOは 現時点ではこのコードは書けない 余裕のある時にやろう 汚いコードを書いていることに対する言い訳 と書いてますよ
736 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:56:14 ] 負け犬意識で頭がいっぱいのPython使いに栄光あれ!
737 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 20:02:41 ] こんなネタでしか盛り上がれないPythonスレの住人はバカだな。 PHPに帰れよ。
738 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 20:13:11 ] いやいや、Pythonにネガティブだったり無視したりけしからんと 言う奴は、頭でっかちで使えない人とか老害の域に達した技術者に 多いので、Pythonに対する態度でその技術者の成長の余地が測れ るのよ。
739 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 20:49:51 ] いやいや、PHPにネガティブだったり無視したりけしからんと 言う奴は、頭でっかちで使えない人とか老害の域に達した技術者に 多いので、PHPに対する態度でその技術者の成長の余地が測れ るのよ。
740 名前:デフォルトの名無しさん [2008/03/18(火) 20:59:36 ] ToDoって書いてあったらだめって? あふぉですか?こいつは。
741 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:12:02 ] 誰もだめとは言っていないとおもいますが あふ(ry
742 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:21:22 ] >>740 にしおさんにそんなこといってはいけませ〜ん!
743 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:23:01 ] 質問 list=[('apple', 1),('banana',2),('orange',3)] タプルの一番目の要素をキーにして ソートするにはどうしたら良いでしょうか?
744 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:26:01 ] list.sort() でいいじゃん
745 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:31:59 ] listという名前の変数に代入するなと(ry 汎用的なやり方としては(タプルの二番目の要素でソートする例) L=[('apple', 3),('banana',2),('orange',1)] L.sort(key=lambda x: x[1])
746 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:32:28 ] >>743 ここ辺りが参考になるかも ttp://morchin.sakura.ne.jp/effective_python/sort.html
747 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:39:41 ] 743みたいなネタで引っかかるやつ、いるよな。 基本的なところで引っかかって先に進めないようなやつは、 フレームワークを使いこなせるようになるまで、100年くらいかかったりするのだろうか。
748 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:35:12 ] 作り直した方がマシというフレームワークに こと欠かさないだろ。
749 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:40:15 ] >>715-717 そもそも、ぁ-んァ-ンはただの文字列。
750 名前:749 mailto:sage [2008/03/18(火) 22:41:32 ] スマソ。途中で書き込んじゃった。 >>715-717 そもそも、ぁ-んァ-ンはただの文字列。 unicodeの平仮名と片仮名全部出力できれば・・・・・・
751 名前:749 mailto:sage [2008/03/18(火) 22:44:03 ] >>743 .soat()に第一引数として、関数を与えるとその関数で判定を行います。 判定用関数には二つの引数が渡されるので、 def S:
752 名前:751 mailto:sage [2008/03/18(火) 22:45:38 ] またやっちまったorz インデントの習慣で・・・・・・ .soat()に第一引数として、関数を与えるとその関数で判定を行います。 判定用関数には二つの引数が渡されるので、 def S(A,B): return cmp(A[1],B[1]) とすればおk
753 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:48:21 ] Sorting Mini-HOWTO (和訳) ttp://www.python.jp/Zope/articles/tips/sorthowto 関数を渡すって言うのがピンとこなかったら ここでわかるようになるまで頑張っておく価値あり
754 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:59:32 ] >>751-753 この方法は旧式。遅い。 >>745-746 こっちが新式。早い。 つうか新式紹介した後に旧式を紹介してるやつはなんなの?
755 名前:753 mailto:sage [2008/03/18(火) 23:19:38 ] 不勉強でした。許して
756 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 23:24:14 ] >>745 の状況ではlambda使うよりはoperator.itemgetter(1)が好きだな
757 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 23:55:07 ] ttp://www.python.org/dev/peps/pep-0361/ 2.6 と 3.0 は同時リリースなのか
758 名前:sort ⇒ 整列 mailto:sage [2008/03/19(水) 09:14:15 ] soat() ってナニ?
759 名前:751 mailto:sage [2008/03/19(水) 09:28:55 ] >>758 sort()だとおもわれ
760 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:59:55 ] >>749-750 for k in range(0x3040, 0x3100): try: print '%04x, %c' % (k, unichr(k)) except: print '%04x, None' % k
761 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 11:15:10 ] こんな関数を作ったらどうだろう def expand_char(s): i = 0 _chr = unichr if type(s) is unicode else chr _len = len(s) while i < _len: if s[i] == '\\': yield s[i+1] i += 2 elif i + 2 < _len and s[i+1] == '-': for j in xrange(ord(s[i]), ord(s[i+2])+1): yield _chr(j) i += 3 else: yield s[i] i += 1 for i in expand_char(u'ぁ-ん'): print '%x: %s' % (ord(i), i)
762 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 13:42:50 ] type() is じゃなくて isinstance 使えっていつも言ってんだろ 素直に unicodedata 使えよ
763 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 13:55:04 ] >>762 なんぞそれ
764 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 13:58:06 ] ininstanceのほうがいいね。しばらく使ってないと忘れるなあ
765 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 17:57:01 ] isinstanceなら継承関係も考慮してくれるしな
766 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 18:35:41 ] 「入門書も読めないゆとりが集まるスレ」に名前を変更した方がいいな
767 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 19:33:39 ] 「煽り一行書くだけしかできない生産性の無いゆとりが集まるスレ」に名前変えたほうがいいな
768 名前:デフォルトの名無しさん [2008/03/19(水) 19:43:08 ] 人間の頭なんて大差ないんだよ。 やるか、やらないか、それだけの違い。 毎日少しずつでも前進してる奴と、 毎日言い訳を考えて何もしない奴とでは差がついて当然。 たいしたことを思いつこうが、思いつくまいがそんなのどうでもいい。 出来ない奴を馬鹿にする奴はどうせたいした事無いから。 出来ない奴に対して自慢したいだけなんだよ。 やりたい事、目標を見つけて少しでも前進する事。 覚える事がさしあたって100あるなら1つずつ覚えていけばいいだけじゃないか。 一度に100覚えられないから漏れは駄目なんだと思ってるんじゃないのか? それは天才がやる事であって、凡人は1つずつやっていけば良いんだよ。 努力する癖を習得するんだ。
769 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:06:14 ] 挫折なんかしたことないなあ。分からなくなったことはあるが 色々試したりしてずっとやってたら分かったし。 挫折したとか言ってる人は自分で勝手に挫折したと決めている だけなのでは? 分かるまでずっとやってりゃそのうち分かるよ。 諦めなきゃ良いだけ。 いつまで経ってもできないという場合は本当は自分のやりたく ないことなのかも知れないけどな。そういう場合はやめてみれば いい。だがそれを「挫折」と呼んではいけない。それは単に やめただけだ。
770 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:19:24 ] FizzBuzz問題 1から100までの数字を出力する。ただし、 3の倍数のときは数字のかわりにFizz 5の倍数のときは数字のかわりにBuzz 15の倍数のときは、FizzBuzzと出力する。 これはここの人にはどう捉えられるのかちょっと知りたいな。
771 名前:デフォルトの名無しさん [2008/03/19(水) 20:21:38 ] >>770 それ、問題か? hello, world と同じレベルじゃねえか。
772 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:21:43 ] >>770 ガイシュツ
773 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:24:04 ] >>768 1%の才能と99%の努力が大切なのですが その1%の才能すら持ち合わせていない人が大勢います あなたもそのうちのひとりであることはほぼ間違いありません
774 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:25:11 ] >>770 簡単すぎて素直な回答を出したら低能だと言われそうで怖い問題。 出題者がビット演算とかトリッキーな回答を要求してるのではないかと 勘繰ってドツボにはまる。
775 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:26:28 ] 普通に書いたあとググっていかに短くできるか考え続けるだけ
776 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:28:43 ] >>774 有名なプログラマーもどき除け問題だけどタイプ可能な文字数の制限があったり十進じゃなかったりすると面白いのかな
777 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:38:58 ] コード書くのが好きで飯もいらないときがある、 別にこれで食っていこうとかは思わないけど趣味の範疇ならほんと楽しい。 素人だし下手糞なりに人に教えもしたけど、大体の奴は途中で飽きてやめていく。 そういう奴らは、読解力とか理解力なんかが足りないというか、 自分で調べる気がないというか。 別に馬鹿にしてるわけじゃないけど、そういうこと好きじゃないなら 無理してプログラムなんてやらなくてもいいんじゃないかな?
778 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:48:30 ] プログラミングって、実行させてはエラー出して、その度に調べて、って 根気良く続けるのが重要だと思う。 ちょっと上達してきて、エラー出すのが恐くなって、実行させるのが 億劫になったとき、成長が少し止まった気がした。 「とにかくやってみる」ことは武器の一つだと、小学校のときの先生が言っていた。 何つーか、動くコードを知るだけじゃなくて、動かないコードを知ることも 実は重要なんだよな。 要はエラーを恐れるなってこと。
779 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:11:10 ] なんでID出ないんだろうこの板
780 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:13:05 ] 人間だもの 人間だもの 人間だもの へびお
781 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:49:38 ] [[i,'Fizz','Buzz','FizzBuzz\n'][[3,0,0,1,0,2,1,0,0,1,2,0,1,0,0][i%15]]for i in xrange(1,101)]
782 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:54:01 ] for n in [[i,'Fizz','Buzz','FizzBuzz\n'][[3,0,0,1,0,2,1,0,0,1,2,0,1,0,0][i%15]]for i in xrange(1,101)]: print n,
783 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:57:15 ] print open("answer.txt").read()
784 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 22:02:51 ] for i in range(100):print i%3/2*"Fizz"+i%5/4*"Buzz"or-~i
785 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 22:04:16 ] python -c "__import__('webbrowser').open('www.google.com/search?q=python+fizzbuzz&btnI=I%27m+Feeling+Lucky ')"
786 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 22:49:43 ] 「入門書を読めない文盲のゆとりがポエムを貼り付けるスレ」に変更しませんか?
787 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 22:50:29 ] アンチスレと交換するだけでいいと思うよ
788 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 22:56:35 ] 早く恥パイの第3版の和訳だせボケ もう2.6出てんのに。
789 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:03:21 ] >>788 だから出ないんだって。 ソースな↓ ttp://tinyurl.com/23y5e
790 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:06:42 ] >>770 応用編 「3の倍数と3の付く数字だけアホになり、8の倍数だけ気持ち良くなります」
791 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:10:57 ] >>789 これは信頼できるソースだな
792 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:16:23 ] >>790 俺も言おうと思っていたが先越された
793 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:18:58 ] >>> import urllib2 >>> urllib2.urlopen("tinyurl.com/23y5e ").url 'www.bulldog.co.jp/ '
794 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 01:01:25 ] >>792 やっぱり '3' in str(i) がキホン?
795 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 07:51:38 ] FizzBuzz問題って色んなバージョンあるんだね ttp://ja.wikipedia.org/wiki/%E6%B8%A1%E8%BE%BA%E9%90%98
796 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 11:57:56 ] 問題をアレンジして 3の倍数および3がつく時、アホになる に変えてみると?
797 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 12:24:06 ] for i in range(100):print (i%3/2or(-~i/10==3)or(-~i%10==3))*'Aho'or-~i
798 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 12:28:04 ] -~i何度も使うならこっちの方が短いね for i in range(1,101):print (i%3==0or(i/10==3)or(i%10==3))*'Aho'or i
799 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 12:40:04 ] しね
800 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 14:14:31 ] x%y==0 は、x%y<1の方が短い あと、(i/10==3)or(i%10==3)だったら'3'in`i`が短い
801 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 14:20:56 ] for i in range(1,101):print(i%3<1or'3'in`i`)*'Aho'or i
802 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 14:23:20 ] for i in range(100):print(i%3/2or'3'in`-~i`)*'Aho'or-~i
803 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 15:10:14 ] ('3'in`-~i`) == ('3'in`~i`)
804 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:02:03 ] くだらね
805 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:06:33 ] strと``ってどう違うの? 測ると``の方がだいぶ速いみたいだけど。
806 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:27:25 ] UNARY_CONVERT と CALL_FUNCTION
807 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:32:14 ] strじゃなくてreprだな
808 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:57:31 ] str は、そのオブジェクトを表す適当な文字列 repr は、そのオブジェクトを表すpython 式 >>> `'a'` "'a'" >>> str('a') 'a' >>> `2**32` '4294967296L' >>> str(2**32) '4294967296'
809 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 18:48:30 ] >>> [u'ほげ',u'ふが'] [u'\u307b\u3052', u'\u3075\u304c'] >>> `[u'ほげ',u'ふが']` "[u'\\u307b\\u3052', u'\\u3075\\u304c']" >>> `[u'ほげ',u'ふが']`.decode('unicode-escape') u"[u'\u307b\u3052', u'\u3075\u304c']" >>> print `[u'ほげ',u'ふが']`.decode('unicode-escape') [u'ほげ', u'ふが'] 各行の動作の違いを教えてください
810 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 19:19:51 ] >>807 >>808 なる、reprと同じだったね。 にしても不思議、何度測ってもrep()より``のが速い。
811 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 19:54:57 ] >>810 速度は>>806 が書いてあるように `` が UNARY_CONVERT のバイトコードだけになるから
812 名前:デフォルトの名無しさん [2008/03/20(木) 20:23:06 ] IDLEって完全にPython自身で書かれているのか・・・ ってことは自分のプログラムの途中から IDLE を起動するなんてこともできるのか?
813 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:57:48 ] import wx app = wx.PySimpleApp(0) frame = wx.Frame(None, -1, "Hello wxPython World!") app.SetTopWindow(frame) frame.Show(True) app.MainLoop() > AttributeError: 'module' object has no attribute 'PySimpleApp' 環境ubuntu7.10。wxPythonは入れたが上のエラーが出る。なぜ?
814 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 21:02:57 ] 他にwx.pyがあるんじゃないか?そのスクリプト自体がwx.pyとか
815 名前:813 mailto:sage [2008/03/20(木) 21:05:27 ] うわ本当だ。。。 その通りです。ありがとう。>>814
816 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:58:54 ] >>811 へー、バイトコードなんて調べた事無かったから>>806 は意味不明でしたw ようするに最終的にreprを呼ぶコードが出来るんだけど、 ``から出来たコードの方が速く処理が終わるのかな。
817 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:10:27 ] wxWidgets にはさ、GUI を XML で記述するってのがあるじゃん。あれと同じ理屈で Tk を YAML で記述するってのは無いかね。。。。yaml がなければせめて XML で。最初は自力で簡単なコーディングしてて gui_yaml = """ frame1(Frame): text: "Hello tk!" button1(Button): text: Exit command: quit """ て感じの yaml 形式テキストをつくって import yaml dict_ = yaml.load(gui_yaml) すると、 {"frame1(Frame)": { "text": "Hello tk!", "button1(Button)": { "text": "Exit", "command": "quit" }}} ていう辞書になるので、これを適当に解析して name(base_class) という項目を見つけたら指定されたクラスインスタンスを生成して、 command って項目があったら値に対応するメソッドを関連づけて… みたいな感じで Tk GUI を構築しようとしたんだけど、辞書だと順番が保存されないんで、コントロールを生成する順番に依存する処理の場合に死ぬる事に気づいた。 packするとき、どの順番で pack する?とか。grid 使えば順番非依存になるのかも。 というわけで自分でつくるのあきらめたので、できあいのやつ教えてください。
818 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:19:17 ] もしマトモに yaml -> Tk ビルダ作ったら、みんな使ってくれるかい?
819 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:24:56 ] なんで今更Tkにこだわるのさ
820 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:35:39 ] だって標準ライブラリにくみこまれてるじゃん
821 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:46:29 ] 辞書にorder項目を追加するだけじゃね?
822 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 02:13:48 ] 順番を保存するならシーケンスにするしかないよね。 てか辞書じゃ重複できないから、その例ちと変な気が。 Tkだととても軽いというのなら意味は有ると思う。
823 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 02:56:18 ] import yaml # PyYAML from pyyaml.org/wiki/PyYAML import Tkinter import re def build(parent, dic, commands): widget = None for key, val in dic.items(): o = re.match(r"(?P<name>\w+)\((?P<base>\w+)\)", key) if o: name, base = o.group("name", "base") klass = getattr(Tkinter, base) widget = klass(parent) #widget.pack() if parent: setattr(parent, name, widget) if isinstance(val, dict): build(widget, val, commands) elif key == "command": parent["command"] = commands[val] elif key == "pack": parent.pack(**val) if isinstance(val, dict) else parent.pack() elif key == "grid": parent.grid(**val) if isinstance(val, dict) else parent.grid() else: parent[key] = val return widget
824 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 02:59:55 ] # テストコード if __name__ == "__main__": gui_dict = yaml.load(""" frame(Frame): button1(Button): grid: {column: 1, row: 2} text: OK button2(Button): grid: {column: 2, row: 2} text: Cancel ent1(Entry): grid: {column: 1, row: 1} ent2(Entry): grid: {column: 2, row: 1} memo1(Text): grid: """) commands = {} app = build(None, gui_dict, commands) app.mainloop()
825 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 03:03:13 ] 823-824をそのまま貼付けて実行してください。 Entry の textvariable の扱いをどうすればよいかがさっぱり思いつかん。 一貫性を持たせるという意味で "text" でアクセスできればいいんだけど。
826 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 03:35:59 ] 標準にこだわってるくせに pickle使わずにYAML使う愚
827 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 03:52:49 ] だって xml より yaml のほうが編集しやすいじゃん。 まあ、たしかに yaml 表現が python の辞書リテラルとほとんど同じだから、 まんま python 式で書いてもいいんじゃ?と思ったのは事実。 だけど文字列を "" で囲まなくて良いのは地味に楽。
828 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 03:55:20 ] class TestClass(object): def __init__(self, i_name): _name = i_name def __eq__(self, i_other): if not isinstance(i_other, TestClass): return False return self._name == i_other._name a_key = TestClass('test') a_dic = {} a_dic[a_key] = 0 --------------------------------------------------- 上のソースコードをPython 2.5.2で実行すると問題ないけど、 Python 2.6a1で実行すると、最後の行でエラーがでたよ。 TypeError: unhashable type: 'TestClass' Python 2.6以降だと、object.__hash__()は実装されてないものなん?
829 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 04:06:37 ] >>827 それならさ、 wxPythonのXRCedが吐き出すXMLをYAML化してよ
830 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 04:11:50 ] >>823 GJ!! インデント崩れてない?
831 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 04:46:11 ] # インデント修正+コメント加筆 def build(parent, dic, commands): widget = None for key, val in dic.items(): o = re.match(r"(?P<name>\w+)\((?P<base>\w+)\)", key) if o: # name(base_class_name) にマッチした場合は新規にウィジェット生成する name, base = o.group("name", "base") # 名前とクラス名を取り出す widget = getattr(Tkinter, base)(parent) # ウィジェット生成 if parent: setattr(parent, name, widget) # 親の属性としてウィジェットを追加 if isinstance(val, dict): build(widget, val, commands) # ウィジェットの設定 elif key == "command": parent["command"] = commands[val] # 呼び出し可能なオブジェクトをコマンドに指定 elif key == "pack": parent.pack(**val) if isinstance(val, dict) else parent.pack() elif key == "grid": parent.grid(**val) if isinstance(val, dict) else parent.grid() else: parent[key] = val return widget # 最後に生成したウィジェットを返す
832 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 04:50:23 ] # テストコード gui_dict = yaml.load(""" frame(Frame): button1(Button): grid: {column: 1, row: 2} text: OK button2(Button): grid: {column: 2, row: 2} text: Cancel ent1(Entry): grid: {column: 1, row: 1} ent2(Entry): grid: {column: 2, row: 1} memo1(Text): grid: """) commands = {} app = build(None, gui_dict, commands) app.mainloop()
833 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:58:33 ] このまま進歩してって、数日したらちょっとしたフレームワークが出来上がってそうだ。
834 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:40:58 ] ____ / \ / ─ ─ \ / (●) (●) \ ない ない | (__人__) | \ ` ⌒´ ,/ r、 r、/ ヘ ヽヾ 三 |:l1 ヽ \>ヽ/ |` } | | ヘ lノ `'ソ | | /´ / |. | \. ィ | | | | |
835 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:42:14 ] 思いつきだけで始めたことはたいてい早晩ポシャる 失敗するのはいいのだが、問題なのは、 一度や二度の失敗で学ばない人間がいかに多いかということだ
836 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 00:10:21 ] Pythonを選んだこと自体が失敗だからなぁ
837 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 00:13:51 ] 歴史から学べるのはただ一つ、 人は歴史から学ばないということだけ だとばっちゃが言ってた
838 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 01:22:16 ] つまり韓国に関わっていたら日本は不幸になるってことですね! さすがばっちゃ!頭いいや!
839 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 01:47:02 ] >>835 一度や二度の失敗で投げてたら何も作れんぞ。 大事なのは、捨てて作り直す勇気だ。
840 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 03:04:52 ] 自作してる時点でTkの負けだと思いました>< xml使ってないけど。
841 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 03:22:33 ] 出来あがった物が思いの外ショボいと モチベーションが続かないんだよなぁ
842 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 03:33:50 ] >>837 φ(..。 )メモシテオコウ
843 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 03:40:18 ] こういうのは衝動が肝心だと思うんだ。 ガーッと書いて結局没になる、そういう自己満足って大事よ。 あんまりはまるとPC恐怖症になるけど。
844 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 07:13:06 ] 何度やっても同じだよ。 そもそもセンスがないんだから。一生ドカタ暮らし。
845 名前:デフォルトの名無しさん [2008/03/23(日) 09:23:21 ] 一生ドカタできるならまだいいさ。 俺なんかすら干されそうだ。 マァ無能だから仕方ない。 結構なんてするんじゃなかった。 自殺すらできない。保険増額しておこう。
846 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 11:28:05 ] なんだこの流れ
847 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 11:39:22 ] 流れなのかこれは。
848 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 12:50:59 ] 春は色々湧く季節
849 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:28:31 ] PythonにRubyのPathnameみたいなクラスってないですか? os.path.hoge(path); os.path.huga(path)が面倒なので p = Path(path)などとしておいて p.hoge(); p.huga()とできるような感じのものでいいんですが… 自分でつくるしかないですかね?
850 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:37:35 ] よく意味が分からんがimport os.path as pって意味ではなくて? 別にimport os.pathしてからp = os.pathでもいいけど。
851 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:47:44 ] すまん。Rubyしらんのに適当いうもんじゃなかった
852 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:57:32 ] >>849 標準ではないけど ttp://www.jorendorff.com/articles/python/path/ とか
853 名前:849 mailto:sage [2008/03/23(日) 14:19:38 ] >>850 >>852 いろいろ検索しても見つからなかったのでないのかと思っていましたが あるんですね。探し方が悪かっただけで。ありがとうございます!
854 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 14:27:19 ] >>853 今後もPythonと付き合っていくなら可能な限り標準モジュールを利用した方がいいよ
855 名前:850,851 mailto:sage [2008/03/23(日) 14:46:12 ] >>853 いや、俺のは違うから。スマン。 RubyのPathnameオブジェクトってのを知らなかったんで 勘違いしたんだよ。
856 名前:849 mailto:sage [2008/03/23(日) 15:07:30 ] >>854 そういうものなんですかね? os.pathは使うとき逐一引数にパス名指定しないといけないので面倒なんですよね… >>852 さんに紹介していただいたようなクラスが標準に入ればいいのですが >>855 ああ、すいません。書き方が悪かったみたいです >>855 さんの回答は今回はちょっと希望に沿うものではなかったのですが 質問したときは回答していただいた方全員にお礼を言いたいと思っているので…
857 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 18:13:25 ] 「できるだけ標準モジュールを使え」はGuideの言葉だっけ?
858 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 19:29:53 ] >>849 os.stat()を使えば解決しそうだけど
859 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 20:17:05 ] lambdaで逃げるって手も...ないか。
860 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 21:26:23 ] Guideって誰? それどんな道案内?
861 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:15:43 ] >>860 かわいそうなPython使いを ジョセフ様に認められた清く正しい言語Rubyへの 改宗を促すGuideです。 Pythonを作られたGuidoさんとは別です。
862 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:20:26 ] カルト言語逝ってよし。
863 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:42:31 ] ruby使いは正確悪いことで有名
864 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 13:56:51 ] お前の性格の悪さも分かった
865 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 14:33:40 ] >>863 たまには変換候補のことも思い出してあげてください。
866 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 14:37:14 ] pythonで数値計算はnumpyだけど数式処理は何かあるの?
867 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:54:39 ] しらない
868 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 19:00:16 ] 他人を敬えない人は、他人から敬われることはありません。 日本語が不自由ならなおさら。 良くて一生ドカタ。 たいていはいい年になってから路頭に迷う。 本当にありがとうございました。
869 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 19:10:30 ] 経験者の話は説得力がありますね
870 名前:デフォルトの名無しさん [2008/03/24(月) 23:36:43 ] なんといつのまにか wxVCLなるものがあるみたいじゃないか。VCLの使い勝手が忘れられない俺がまちのぞんだもの。 だれかpythonバインディング作って
871 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:20:38 ] C++スレにも書いたけど、こっちにもネタ投下してみる。 なるべく短いプログラム書いてみようぜ。 基本問題: 例えば N = 8 としたときに 「この文章には0が1個、1が5個、2が3個、3が2個、 4が1個、5が2個、6が1個、7が1個含まれています」 という文章が生成されるとして、9以下の任意の自然数Nについて もこのような文章を生成するプログラムを作れ。 解がない場合は「解なし」とする。 発展問題: Nが10以上の時、解はあるだろうか?
872 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:28:43 ] 一応自分の答え(うろ覚え)さらしとく X = 8 S = ["" for i in range(X)] found = False def count(num): ret = 0 for i in S: ret += i.count(str(num)) return ret def check(): for i in range(X): if count(i)+1 != int(s[i]): return found = True print "数字の数は", [str(i)+"が"+str(s[i])+"個" for i in range(X)] def find(depth): if depth < 0: check() else: for i in range(X): s[depth] = i find(depth - 1) if not found: print "解なし" print "終了" find(X-1)
873 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:47:48 ] ごめん、問題の意味がわからない
874 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:53:15 ] 短くしようとしたら総当りになると思う。 それよりもスマートな解き方を探すほうが面白そうだな
875 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:58:37 ] >発展問題: >Nが10以上の時、解はあるだろうか? 10がn個あります、と言った時の意味がわからない
876 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 03:01:55 ] どっかの課題丸投げ乙
877 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 03:07:32 ] 変数Nは「」内に影響しないため、Nがどのような値でも 「この文章には0が1個、1が5個、2が3個、3が2個、 4が1個、5が2個、6が1個、7が1個含まれています」 という文章が生成されます。
878 名前:871 mailto:sage [2008/03/25(火) 03:19:09 ] 丸投げじゃないよ。今日仕事中に思いついた問題。 ちなみにNが4のときの解。ようするに N 以上の数を使わない。 「0が1個、1が2個、2が3個、3が2個」 Nが10のときは "10" という部分文字列がいくつ含まれるかって解釈にしようと思う。
879 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 03:57:45 ] 0-2 1-8 2-3 3-3 4-1 5-1 6-1 7-1 8-2 9-1 10-1
880 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 09:57:56 ] ドウカクカクカク。
881 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 10:34:00 ] ブラック民パイ読んで、練習でHP作ってるんだけどさあ・・・・HTMLのテンプレートを簡単につくるソフトでいいのってないの? ホームページビルダー(バージョンふるいのしか持ってない)で作って、置き換え文字を書き加えるとかじゃ・・・・ちょっと使いづらいぜ。
882 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 10:43:31 ] >>881 HTMLかくんだったら、テキストエディタでおk。 入力補助がついてるのもあるし、なんだったらメモ帳やワードパッドでもいける。
883 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 11:31:43 ] >>871 が基地外にしか見えない
884 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 11:41:05 ] >881 Nvu nvudev.com/
885 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 11:42:58 ] >>883 >>871 が見えるおまえは基地外認定
886 名前:866 mailto:sage [2008/03/25(火) 12:03:30 ] >>866-867 ないのならmaximaのあるcommon lispに乗り換えを決意した
887 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 13:45:09 ] お昼に見てからやっと >>871 の意味が分かったわ ちょっと仕事の合間に考えて見るか
888 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 19:05:30 ] >>871 をN<=10(二桁にならない)までで高速化してみた codepad.org/m5o71GS1
889 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 20:54:01 ] C++は老害言語。
890 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:00:41 ] >>884 Nvuは開発止まってるから後継ソフトにしようね KompoZer: kompozer.net/
891 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:21:00 ] 回転座標求めるのに def rot(x, y, radian): c = math.cos(radian) s = math.sin(radian) return x*c - y*s, x*s + y*c と def rot(x, y, radian): return math.hypot(x, y) * cmath.exp(radian*1j) の速度を比べてみると、明らかに複素数使った方が速い。。。が X, Y成分を取り出す処理を入れると結局始めから三角関数使った方が速い。なんかくやしい。
892 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:48:33 ] x,yはc.real と c.imag で取り出してる?
893 名前:891 mailto:sage [2008/03/26(水) 00:16:01 ] >>892 ttp://codepad.org/e53Ole56 あれ? デスクトップでやった時と結果が違う。。。。
894 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 03:32:48 ] rpy.sourceforge.net/ Rをpythonから呼べる 便利そうだがnumpyで直接計算するのと比べてどうなんだ
895 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 03:38:08 ] modular.math.washington.edu/sage/ pythonの数式処理っぽいのあった
896 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 03:44:09 ] python -> sage -> maxima -> common lisp でcommon lispをpythonから呼べるね もっと単純な方法ありそうな気もするけど
897 名前:デフォルトの名無しさん [2008/03/26(水) 10:45:12 ] py2exe 使うと使っている標準モジュールが自動的に 同梱されますが、これも丸ごと配布してしまっていいん でしょうか?というか、py2exe で実行ファイル形式にして 配布するときってライセンス的にどんな制約があるんでしょう? 自分が作ったプログラムも含めてPSFに従わないとだめ?
898 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 13:25:01 ] PSFはGPLじゃないのでちゃんとPythonの著作者表示があれば自由だったはず
899 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 14:22:28 ] PSFはライセンスじゃない。 それはそれとして、っ ttp://www.python.jp/pipermail/python-ml-jp/2007-May/004044.html
900 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 14:31:13 ] >>894 ・統計屋の中で流行っている統計手法はいち早くRで誰か実装するので、 自分で書き直す手間は省ける。 ・Rになれている人に使いやすい。 ・グラフなんかをプロットするとよく落ちる。 ってところかな。
901 名前:デフォルトの名無しさん [2008/03/26(水) 15:45:42 ] すまんが、cgiのGETとPOSTって両方一度にはつかえないの???
902 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 15:51:19 ] 仕様書嫁
903 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 16:04:25 ] 実装依存で使える場合もあるかもしれないけど、 どこでも動く保証はないっていう感じだったきがする<GET、POST同時 まあ、普通にやめといた方がいいと思う
904 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:07:01 ] >>901 os.environ['QUERY_STRING']に入ってない?
905 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:25:33 ] GET,POSTはHTTPのメソッドの名前。当然どっちかしか使えん。 HTTPの仕様上はPOSTで「?」付URLを呼び出せる。 >>904 の言う通り cgi.parse_qs(os.environ['QUERY_STRING']) でよかったとオモ POSTされたデータは cgi.parse(sys.stdin) か cgi.FieldStorage()
906 名前:デフォルトの名無しさん [2008/03/26(水) 23:27:08 ] ttp://www.openplans.org/projects/plone-summer-of-code-2008/project-ideas ふるって応募を!
907 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:31:48 ] POSTのときにQUERY_STRINGとれない環境もある
908 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:08:23 ] panel = wx.Panel(frm,-1) こんなんがあって、panelをデストラクタするにはどうすれば良いんでしょうか。 ある状況でパネルを削除したいんですが。
909 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:24:14 ] panel.Destroy() del panel じゃね
910 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:27:21 ] おお!できました。 ありがとうございます。
911 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 18:49:43 ] 297 :デフォルトの名無しさん:2007/12/23(日) 02:11:55 >>294 =269 か? メソッドオーバーロードはrubyではできない。こんな感じで自分で処理しなさい def meth(arg) if arg.kind_of?(String) puts '文字列' else case arg when Array then puts '配列' else puts 'その他' end end end それとrubyの配列(Array)に次元なんて無い。配列が入れ子になってるだけ。 python だと、どう処理を描けば良いですか?
912 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 18:56:45 ] Pythonでも同じだよ 引数の型とか数を調べて分岐するだけ というかrubyスレの話題を持ってこられると色々勘ぐりたくなるんだが
913 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 19:27:49 ] >>912 メソッドオーバーロード python www.google.co.jp/search?q=%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%AD%E3%83%BC%E3%83%89%E3%80%80python&hl=ja&lr=lang_ja&start=20&sa=N たまたまググッたら、それらしいコードが見つかったので 張ってみますた。深い意味はありませんです。。。 def mes(arg): if isinstance(arg, str): print '文字列' elif isinstance(arg, list): print '配列' else: print 'その他' とか。引数に文字列渡して if arg == '文字列': elif arg == 'リスト': else: みたいにするのとか。これくらいしか思い浮かばない罠。ご飯食べてくる
914 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 20:30:09 ] とりあえず思いついた適当なコード import sys class OverloadMethod(object): functions = [] def __call__(self, *args, **kwargs): for function in self.functions: if len(args) == function.func_code.co_argcount: return function(*args) raise NotImplementedError def overload(function): obj = sys._getframe(0).f_globals.get(function.__name__) if obj is None: obj = OverloadMethod() obj.functions.append(function) return obj if __name__ == '__main__': @overload def foo(a): print a @overload def foo(a, b): print a + b foo(1) foo(1, 2)
915 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 20:55:23 ] Guido謹製 www.artima.com/weblogs/viewpost.jsp?thread=101605
916 名前:914 mailto:sage [2008/03/27(木) 21:02:19 ] スゲーGuidoパパとほとんど一緒じゃん
917 名前:913 mailto:sage [2008/03/27(木) 21:16:33 ] >>914 def overload(function): obj = sys._getframe(0).f_globals.get(function.__name__) if obj is None: obj = OverloadMethod() # コンストラクタみたい obj.functions.append(function) # 関数をストックしてく return obj >>> foo(1) # ストックした関数をポップする >>> foo(1,2) >>> foo(1,2,3) <class exceptions.NotImplementedError at 0x000000000000002C> sys._getframe(0).f_globals のところを globals() にしたら ironpython でも動作確認取れますた。 dir()で表示されるけど, まだ実装されてないのね…_getframe ValueError: _getframe is not implemented annotation で潜らしてポップするか… 勉強になりますた。dくす♪
918 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 02:15:51 ] >>913 キーワード引数
919 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 03:54:18 ] www.linux-foundation.jp/modules/tinyd3/index.php?id=20 何か意図的に抜いてるような…
920 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 09:23:04 ] Pythonだけに見事にハブられてますね
921 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 09:34:12 ] うわぁ・・・^^;
922 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:41:32 ] エーとおもたがperlも入ってなくね? どういう基準かよくわからんな
923 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:43:15 ] Perl/PHP/Rubyは二重丸じゃないか
924 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:55:46 ] Pythonの擬似スレッドって、いずれちゃんとしたスレッドになる予定とかってないんですか?
925 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 13:03:26 ] GILのことなら多分とれないよ
926 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 14:53:41 ] 以前にここに貼ってあったpython チートシートのリンクがみつからない
927 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 16:04:50 ] www.google.co.jp/search?&q=python+cheat+sheet www.google.co.jp/search?&q=python+cheat+pdf
928 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 17:01:20 ] バイナリデータをファイルに書きたく思っています。 例えば4バイト整数10ならば、f.write('\x00\x00\x00\x0a') というように。 上記を、例えば f.write(hoge(10, 4)) で実現できるような 既存の関数hogeのようなものがあれば、ご教示頂けないでしょうか? IEEE浮動小数点についても同様なものがあれば教えて頂きたいです。
929 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 17:02:41 ] www.python.jp/doc/release/lib/module-struct.html
930 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 05:46:36 ] pythonのワンライナーは超絶美的
931 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 08:24:23 ] urllib2のmultipart/form-dataサポートマダー
932 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 10:05:49 ] >>931 ドキュメントにツカエネーヨって書いてあるし今更機能仕様を変える気もないんじゃね? これはもう自分でurllib3を作るしか
933 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 10:08:34 ] urllib2ってメモリリークするよね?
934 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 15:02:28 ] python で 宣言できる関数の上限値とかどれくらいなんだろうか? 1万-10万… 10万くらいなら動きそう? メモリ上に保持できる辞書としての 要素数の限界値? (よくわからん)
935 名前:928 mailto:sage [2008/03/29(土) 15:12:30 ] >>929 おー、これですこういうのです。超速レスありがとうございました!
936 名前:デフォルトの名無しさん [2008/03/29(土) 15:43:27 ] >>934 import sys def mksrc(n): print """ def %s(): return %d """ % ('func%d' % n, n) if len(sys.argv) < 2 or not sys.argv[1].isdigit(): print 'usage: hoge.py N' else: for i in range(int(sys.argv[1])): mksrc(i) for i in range(int(sys.argv[1])): print 'print func%d()' % i $ hoge.py 100001 > fuga.py $ fuga.py とりあえず10万は楽勝みたいだ あとは任せた
937 名前:デフォルトの名無しさん [2008/03/29(土) 16:00:39 ] 100万は死んだ ファイルサイズにワロス
938 名前:デフォルトの名無しさん [2008/03/29(土) 16:03:39 ] 100万通過 >>937 OSとかメモリ容量とかによるんで内科医
939 名前:デフォルトの名無しさん [2008/03/29(土) 16:18:24 ] おまいら阿呆だな まで読んだ