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/
2 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:32:46 ] ◆関連リンク Python の Home Page www.python.org/ Python 日本語ドキュメント - Pythonistaのお友達 www.python.jp/doc/release/ 最新版直リン - 2.Xが推奨。3.Xはライブラリやドキュメントが使えないことも www.python.org/download/ Python のコーディングガイド PEP8 www.python.org/dev/peps/pep-0008/ Python のコーディングガイド PEP8 - 日本語訳 www.oldriver.org/python/pep-0008j.html 日本語文字列コード問題まとめ python.matrix.jp/tips/string/encoding.html インタラクティブモードのエンコード python.matrix.jp/tips/compatibility/interact_encoding.html
3 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:34:48 ] 2get これはどう見てもおかしいだろ。 まず、主語が2。で動詞がget。 2が単数形だとしたら、getsにしないとおかしい上に、目的語がない。 直訳すると「2が得る」 何を得るんだよ!!!いいかげんにしろ。 それを言うなら I get 2. だろ。しかも現在形だし。 過去形、いや現在完了形ぐらいまともに使ってくれよ。 I've got 2. 少しはましになって来たが、まだ気に入らない。その2だ。 いったいお前は何を手に入れたんだ?2という数字か? 違うだろ、手に入れたのは2番目のレスだろ。 どうも日本人は数詞と序数詞の区別がよく分かっていない節がある。 これらを踏まえて、正しくは I've got the second responce of this thread. ここでtheにも注目してもらいたい。このスレの2ってのは 特定の、このレスだけなんだから。だからaでも無冠詞でも なく、the second responceなんだ。 もう一度おさらいしてやる。 I've got the second responce of this thread.
4 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:48:21 ] www.xrea.com/ ここで Python 使っているかたはいらっしゃいますか? 使いやすいですか?何か気をつけることとかありますか?
5 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:55:23 ] >>4 バージョン2.3とか2.4.3とかだけどそれでもよければ ttp://www.value-domain.com/xreaip.php
6 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:58:05 ] 確かビルド済みしてバイナリぶち込んだ猛者がいたような
7 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 20:01:31 ] >>5-6 ありがとうございます 2.5 以上を想定していたので とりあえず >>6 さんの方法で出来たひとのサイトとかがみつかるか調べてみます
8 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 20:10:29 ] ぐぐると virtual-python の例が多いみたいですが 好きなバージョン入れてやってるひとがいたのでこれをまねしてみます〜 ttp://inforno.net/articles/2008/07/29/using-any-version-of-python-on-xrea-servers ttp://inforno.net/articles/2009/01/25/using-any-version-of-python-on-xrea-servers-part2
9 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 20:57:00 ] なんでこう、python はレンタルサーバーでの地位が低いんだろう。
10 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 21:14:53 ] インストールしても誰も使わないから
11 名前:デフォルトの名無しさん [2009/05/24(日) 21:42:04 ] フィトン?ってパールより簡単ですか??
12 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 10:48:47 ] >>11 個人的にはフィトンのほうが簡単だった ウェブだったらぺへぺのほうがいいけどね
13 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 12:15:17 ] 個人的には(゚∀゚)ラヴィ!!のがおすすめだよ
14 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 12:17:04 ] sysライブラリの stdin.readlineなど利用して 標準入力からキーボード入力したいのですが バックスペースで日本語を消すと、半分(1byte)だけ消されて 文字化けします。 1文字は1文字としてバックスペースで消す方法を教えてください。
15 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 12:34:26 ] コンソールなに使ってんの?
16 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 19:47:41 ] 円コーディングは?
17 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 23:00:57 ] class A(Foo): def func(self, **kwargs): super(Foo, self).func(**kwargs) class B(Foo): def func(self, **kwargs): Foo.func(self, **kwargs) AとBの違いはなんでしょうか??
18 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 23:55:02 ] 今のやり方と、昔のやり方
19 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 00:54:33 ] super()を使うと実行時に依存関係から適切なメソッドが得られる Foo.func()は明示的な指定 type()で動的にクラスを生成したりするときしか考慮する必要はないと思う 何も考えずにsuper()を使うのが楽 詳しく知りたいならmroでググってみてくれ
20 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 01:03:58 ] メソッド付き関数とか作れるんだな かっこよすぎ def Counter(n=0): Counter.cout = n def increment(): nonlocal c c += 1 Counter.increment = increment return Counter c = Counter(2) c.increment() c.increment() c.increment() print(c.cout)
21 名前:20 mailto:sage [2009/05/26(火) 01:06:09 ] Counter.countだ nonlocal cも なんかに使えますかねこれ
22 名前:20 mailto:sage [2009/05/26(火) 01:11:34 ] インスタンスは1つじゃないとちゃんと動かないから無理か
23 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 01:12:36 ] 関数である意味が無い 素直にクラスにしとけ
24 名前:20 mailto:sage [2009/05/26(火) 01:19:36 ] ですよね・・・ ところで"\u2020"とかいう表記はusc2ですか?
25 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 01:40:17 ] みんなのPythonすごく読みやすい。超面白いんですけど、毎日ガンガン読んでます。
26 名前:デフォルトの名無しさん [2009/05/26(火) 03:18:29 ] class を関数の様に呼び出すのってどんなのでしたっけ class Hoge(object): def __init__(a): print a h = Hoge() これはただのコンストラクタなんだろうけど そうじゃなくて h = Hoge() h() が出来る香具師のことなんですが
27 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 04:02:55 ] >>> class Hoge(object): ... def __init__(self): ... print "init" ... def __call__(self): ... print "call" ... >>> h = Hoge() init >>> h() call
28 名前:14 mailto:sage [2009/05/26(火) 14:20:57 ] >>15 コンソールはlinuxのktermとかxtermとかgnome-terminalとか色々試したけど どれも同じでした >>16 エンコーディングはUTF-8です ぐぐっても解消策が出てこないなぁ
29 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 16:08:15 ] エンコーディングは?
30 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 16:11:36 ] おい!
31 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 16:26:20 ] >>28 環境をもっと詳しく。 Linuxのディストリは何? Python関係なく普通にシェル上で日本語を入力してバックスペース 押したらちゃんと日本語一文字消える?
32 名前:14 mailto:sage [2009/05/26(火) 16:30:10 ] >>31 ディストリはarchとubuntuで試しました pythonに関係なくシェル上だとBSで日本語一文字消せます ということは、皆さんは普通に消せてるんですね
33 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 16:39:57 ] シェルの普通の入力状態じゃなくて、 cat (とか)に何か入力しようとした状態のことを聞いている。
34 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 16:41:49 ] 以下の例で、print a がposixを返すようにすることは可能ですか? import os print os.name > posix a = 'os.%s' % name print a > os.name
35 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 16:42:27 ] あと、ターミナル(xterm とか kterm とか rxvt)が何か、というのが この場合環境として重要、かも。
36 名前:14 mailto:sage [2009/05/26(火) 16:43:45 ] >>33 あ、catとかでも同じ状態になります てことはどこを修正すればいいんですかねこれ
37 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 16:44:28 ] >>34 eval('os.name')
38 名前:34 mailto:sage [2009/05/26(火) 16:52:40 ] >>37 d
39 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 19:52:31 ] >>36 質問する場所
40 名前:14 mailto:sage [2009/05/26(火) 22:18:20 ] ありがとうございました もう少し調べてLinux板で質問してきます
41 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 20:34:35 ] シンプルなソフトウェアキーボードを 作りたいですがpythonだとwxpythonが 良いですかね? やはりtkinterからおさえておくべき?
42 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 20:43:32 ] すでにあったような
43 名前:41 mailto:sage [2009/05/30(土) 11:33:20 ] このスレの閑散具合からすると python自体を止めておいた方が 良いってことか
44 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 12:18:52 ] 君は何やっても同じ
45 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:05:06 ] 無駄なendを嫌うのと同じように 無駄な話を嫌う傾向にあると思ふ
46 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 11:02:50 ] filter(lambda x: x % 3 == 0 or '3' in str(x), range(1, 41))
47 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 20:21:04 ] filter(lambda x: x % 8 == 0 or x % 3 == 0 or '3' in str(x), range(1, 41))
48 名前:デフォルトの名無しさん [2009/05/31(日) 21:07:22 ] で、実際python使ってみんなはなにをしているの? なんかプログラムを作ってるのかな?
49 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 21:13:59 ] 他に用途ないないと思うが・・・
50 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 21:22:15 ] どっちかっていうと日々の作業で使うかな あと最近はウェブアプリに挑戦
51 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 21:25:07 ] 変顔の自動化かなぁ
52 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 22:08:44 ] あたいは3Dソフトウェアのスクリプトで使ってるよ!
53 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 23:12:22 ] >>52 blender?
54 名前:デフォルトの名無しさん [2009/05/31(日) 23:35:32 ] いまいちどんなことができるのかわからないんだけど。 例えば@ファイヤーウォールが反応したら携帯にメールで知らせるとかは? Aひとつのフォルダに複数のmp3のデータが入っている。名前はごちゃごちゃ。 それを01.mp3〜0n.mp3にファイル名を変換することは可能ですか?
55 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 23:51:00 ] コンピュータならできて当たり前だろ……
56 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 00:02:51 ] >>54 1はどんなファイアウォールを使ってるかによる ログをテキストで定期的に書き出してくれるFWなら頑張れば出来る そうでない場合は可能だけどちょっと難しいかな 2は余裕。osやos.path見てみるといいよ
57 名前:デフォルトの名無しさん [2009/06/01(月) 00:26:33 ] >>56 ご丁寧にありがとうございます。 見てみますね。 はじめてのpython みんなのpythonあたりを読破すればA位は簡単にできますか? 本屋で立ち読みした時に、複雑な電卓をいじってるようで… いつになったらA見たいなことができるのかな?って疑問を持ちましたので。 ド素人ですいません。
58 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 00:54:52 ] >>57 初めてのPythonなら読破しなくても1/3ほど読めば十分じゃないかな あとは使えそうなライブラリを探してマニュアルを読む 必要な時間については人それぞれ。数時間、数日、数週間・・・ まあ半年かかるなんてことはないから心配いらないよ
59 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 01:01:37 ] 「はじめての」と「初めての」にとても大きな違いがあります >>57 はきっと「はじめての」なんでしょうな・・・
60 名前:デフォルトの名無しさん [2009/06/01(月) 01:07:37 ] 皆さん親切に本当にありがとうございます。 個人的にちょっと読んだだけですが「みんなのpython改訂版」が読みやすかったのですが (ちょっとだけしか見てませんが…) これでもOKですか?これでも1/3くらい読めば、ショボイプログラムが作れますか? 明日買ってきます。
61 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 01:14:48 ] それは初心者向けで突っ込んだ解説はしていない本だからすぐに全部読めるよ しょぼいプログラムを作るのが目的でネットの検索と併用すれば十分かと
62 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 01:42:36 ] >>59 「はじめての」人柱になってもらおうとか思って 似たタイトルの本があるとはあえて言わなかった。反省している >>60 1/3じゃ足りないかも。でもたいして問題にはならないよ 2を書くとしたら骨組みはこんな感じ import os for i, filename in enumerate(os.listdir(u'.')): if filename.endswith('.mp3') os.rename(filename, '%03d.mp3' % i)
63 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 02:38:56 ] みんなのPythonの改訂版ってPython3.0対応版でしょ その辺に転がってるコードが多いのはPython2.x系 言語仕様が一部変わってるから気をつけな 新しいものをとるか古いのを選ぶかは趣味の問題ではあるが 標準以外のモジュールは3.0にはまだ対応してなかったりもするから気をつけなよ まあ、仕様の変更点を把握しとかないといけないのはどちらを学ぶにしても同じだがね 本はちょっとしたプログラムを書きたいってだけなら挫折しないように薄いのにしときなw あとはオンラインドキュメントとかで適当に調べつつ作りたいもの作ればいいさ
64 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 03:06:12 ] >>56 元々 03.mp3 02.mp3 01.mp3 というファイルがあったとき 01.mp3 02.mp3 03.mp3 に名前を付け替えるのって簡単?
65 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 03:34:23 ] 一体どこが難しいんだ?
66 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 03:36:00 ] >>64 条件が良く分からないけど、番号を昇順に変えるの? 何とでも出来ると思うよ。
67 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 04:03:07 ] いや、お前達64が何言ってるのか理解してないだろう。 64が言ってるのはファイル名の重複でリネームするのに失敗する問題。
68 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 04:04:55 ] 一度別の名前にリネームすればいいじゃん。
69 名前:デフォルトの名無しさん [2009/06/01(月) 06:48:48 ] 邪魔になってる方のファイルを別の名前にするんですね
70 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 07:12:58 ] rename前に既存調べて既存だったら飛ばせば医院で内科医?
71 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 07:22:31 ] >>70 それが >>64 >>67 の意図する動作になってるかどうかは微妙 >>54 の2ならそれで良さそう とりあえず >>64 は仕様を明確にすべき
72 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 07:59:17 ] さすがくだすれw
73 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 08:56:03 ] つーか、パイソンと全然関係ないしw 一般のアルゴリズムが分からないって、言語以前の問題だからw
74 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 15:17:18 ] swapなんぞ誰でも思いつくアルゴリズムだろ
75 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 15:51:51 ] えっと、 スレ違いですので こちらへどうぞ pc12.2ch.net/test/read.cgi/tech/1243159710
76 名前:デフォルトの名無しさん [2009/06/01(月) 21:12:23 ] >>62 さん 素晴らしいコードありがとうございます。 勉強中でとても参考になります。完全に理解できていないのが申し訳ありませんが(汗 具体的な例をお願いできますか? 例えば、C:\Documents and Settings\user\デスクトップ\新しいフォルダ の中に、 abc.mp3 def.mp3 ghi.mp3 jkl.mp3という4つのデータがあります。 これらをソートした順に01.mp3〜04.mp3にリネームする。 宜しくお願い致します。
77 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 21:36:39 ] >>76 その前に自分で書いたコードを貼ってみて 動かなくても全然構わないから いきなり答え見たら実力つかないよ
78 名前:デフォルトの名無しさん [2009/06/01(月) 21:47:43 ] 全然そんなレベルじゃないんですよ(汗 すいません。
79 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:16:23 ] >>76 指定ディレクトリ内のファイル一覧を取得する os.listdir、glob.glob等 ファイル一覧を並び替え list.sort() ファイル名を変更 os.rename その他 os.path.join、os.path.abspath このあたりを調べればいけるんじゃない? とりあえずosとos.pathモジュールは一通りリファレンスに目を通しましょう。
80 名前:デフォルトの名無しさん [2009/06/01(月) 22:19:21 ] >>79 さん 本当にご親切にありがとうございます。 今日さっそく「みんpy」買ってきました。 面白いですね。まだプログラムって感じではないんですが… とても参考になりました。 またわからない事がありましたら宜しくお願い致します。
81 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:36:13 ] >>62 のコードだと mp3以外のファイルがあったら番号とばない?
82 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:52:35 ] >>81 飛ぶね。失礼しました count = 1 for filename in os.listdir(u'.'): if filename.endswith('.mp3'): os.rename(filename, '%03d.mp3' % count) count += 1
83 名前:デフォルトの名無しさん [2009/06/01(月) 22:57:49 ] >>79 さん ちょっと片言の言語で作ってみましたがrenameでのアイデアが… なにかヒントをお願いします。 #coding: UTF-8 import os TargetPath = u'C:\Documents and Settings\user\デスクトップ\Mariah.Carey' a=FileList = os.listdir(TargetPath) print u"[曲名一覧]" for f in a: print f else: print u"以上" b=len(a) print u"全部で",b,u"曲" c=range(1,b+1) print c,u"までのリストを作成" ここまででギブ…曲数分の数値をリストで作ってみて対応できればと…その後は… そもそも間違った考え方なんですかね…ネットで調べながらなのですいません。
84 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:24:31 ] >>76 #-*- coding: utf-8 -*- import os, sys, time, shutil from math import ceil, log def rename_to_number(srcdir, ext): files = filter(lambda x: x[-len(ext):]==ext, os.listdir(srcdir)) tmpdir = os.path.join(srcdir, 'tmp%s_%s' % (os.getpid(), time.time())) while os.path.exists(tmpdir): tmpdir += '0' os.mkdir(tmpdir) for f in files: src = os.path.join(srcdir, f) shutil.move(src, tmpdir) fmt = '%%0%dd%s' % (ceil(log(len(files),10)), ext) for i, f in enumerate(sorted(files)): src = os.path.join(tmpdir, f) dst = os.path.join(srcdir, fmt % i) shutil.copy(src, dst) #shutil.rmtree(tmpdir) # この行を有効にすると作業後テンポラリを削除します。 if __name__ == '__main__': srcdir = sys.argv[1] ext = sys.argv[2] if ext[0] != '.': ext = '.' + ext rename_to_number(srcdir, ext) # 使い方。このスクリプトを hoge.py と保存(UTF-8)した場合。 # python hoge.py ターゲットディレクトリ 対象拡張子 # と入力
85 名前:デフォルトの名無しさん [2009/06/01(月) 23:35:15 ] >>84 さん すごい。。。 レベルが違いすぎました。 出直してきます。 恥ずかしいですわ
86 名前:84 mailto:sage [2009/06/01(月) 23:55:00 ] 要求にあってなかったところを訂正。 ファイル名の先頭が 0 になるようにする。(12行目) × fmt = '%%0%dd%s' % (ceil(log(len(files),10)), ext) ○ fmt = '%%0%dd%s' % (1+ceil(log(len(files),10)), ext) 番号を 0からスタートじゃなく、1からにする。(15行目) × dst = os.path.join(srcdir, fmt % i) ○ dst = os.path.join(srcdir, fmt % (i+1))
87 名前:デフォルトの名無しさん [2009/06/02(火) 00:01:08 ] ディレクトリの指定は必要ないんですか?
88 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 00:19:05 ] けーすばいけーす
89 名前:デフォルトの名無しさん [2009/06/02(火) 17:09:47 ] お勉強スレのほうに書いたのですが、ちょっと質問のレベルが低すぎたみたいなので、こちらで聞かせていただきます;; 初歩的な質問で申し訳ありません。 .pyのついたファイルをウィンドウズで実行したいのですが、どのように設定をしたらいいでしょうか? python-3.0.1をインストールしてみたのですが、どうしたらいいのかイマイチよくわかりません;;
90 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 17:16:18 ] Python2.6.2をインストールして*.pyをダブルクリックしてみるよろし
91 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 17:32:05 ] >>89 Python 3.0 はプログラミングの初学者には今のところ向いてないよ >>90 の言う通りにしてコマンドプロンプトの使い方も併せて調べておくといいと思う
92 名前:デフォルトの名無しさん [2009/06/02(火) 18:13:35 ] ありがとうございます! 2.6.2ですね。 試してみます。
93 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:50:54 ] >>84 素敵だが初心者にやさしくないなぁ 無駄に丁寧だから本質じゃない部分につい目がいってしまう
94 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 01:05:17 ] >>93 本当にそうだな。 ただ、あそこまでやるなら、テンポラリディレクトリ作るのに何故 tempfile.mkdtemp()を使わないのかが非常に謎。
95 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 07:09:58 ] /) ///) /,.=゙''"/ / i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!! / / _,.-‐'~/⌒ ⌒\ / ,i ,二ニ⊃( ●). (●)\ / ノ il゙フ::::::⌒(__人__)⌒::::: \ ,イ「ト、 ,!,!| |r┬-| | / iトヾヽ_/ィ"\ `ー'´ /
96 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 18:04:51 ] windows xp sp3 python2.5.3 try: getattr(obj, 'undefined_method') except AttributeError: pass だいぶ省略していますが、こんな感じのコードがあり、ここでmain内でエラーが発生すると UnboundLocalError: local variable 'AttributeError' referenced before assignment と出てしまいます AttributeErrorが見つからない理由と、そもそもUnboundLocalErrorがなんなのかよく理解出来ていないのですが、 原因をご存知の方いますでしょうか?
97 名前:96 mailto:sage [2009/06/03(水) 18:24:44 ] ごめんなさい解決しました その前に書いてあった except ImportError, AttributeError: の括弧忘れでした。
98 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 18:27:33 ] UnboundLocalError: ローカル変数名のリストにはあるけどまだ宣言されてないよ NameError: とにかくそんな名前知らんよ
99 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 19:14:50 ] >>97 エラーが出なくなっただけで 解決はしていないと思うよw
100 名前:デフォルトの名無しさん [2009/06/03(水) 19:19:47 ] 学生時代に資格試験取得でcは勉強したのですが、 社会人になってからは言語は一切触れてません。 インフラ側の人間だったのですが、 言語もかじっておきたくpythonをと考えています。 web上の入門サイトをいくつかやってる最中ですが、 いまいち手応えがありません。 そこで、勉強になるような課題?に適したものってなにかありますでしょうか。 また、Django、Ploneも気になっているのですが、 そうした勉強というのは市販されているテキストを一通りできれば 掴めるものでしょうか。 *正直、業務でも活かせることができるまでを 意識した勉強の仕方がわからないのが困っています、、、
101 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 19:48:45 ] >>100 まず要点をまとめてわかりやすく説明することを勉強しるw
102 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 19:59:08 ] オラ、宇宙一強くなりてえだ!
103 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 22:17:38 ] DjangoにしろPlone(Zope)にしろ癖が強いから初めての人には勧められないな >>100 に明確な目的があるなら別だけど 時間に迫られてないけど面倒な作業を自動化してみる辺りからやってみたら?
104 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 22:41:03 ] クックブックでも読めば? そして己の無知を自覚して初めてのPythonに取り組む まあ、業務で即生かせるようにはならないがな!
105 名前:デフォルトの名無しさん [2009/06/03(水) 23:23:42 ] みんなのPython改訂版のP.119の一番下のサンプルコードおかしくありませんか? お持ちの方がいましたら、見てみてください。 >>>for cnt in range((len(seq)): ... print seq[cnt] ... です
106 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:38:25 ] 端から見ると特におかしくないようだが・・・
107 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:52:39 ] ttp://mixi.jp/view_bbs.pl?id=43236791&comment_count=4&comm_id=1389875
108 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 00:36:51 ] カッコ。
109 名前:デフォルトの名無しさん [2009/06/04(木) 02:20:26 ] >>100 ここの課題でもやってみれば? pc12.2ch.net/test/read.cgi/tech/1153585095/ Django, Plone は 「Python 自体の勉強」 にはお奨めしない
110 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 03:36:56 ] とりあえずver2.5の日本語ドキュメントでいいから目を通せ。 チュートリアルをひととおりやって、それが終わったらライブラリリファレンスを読む。 用途や意味の分からないライブラリがあったら調べて、どういう時使うのか理解する。 目的ありきでもいいのかもしれないけど、道具を徹底的に理解するのも大事だと思う。 標準ライブラリだけでも、かなり実用的なものが揃ってるから分かってくると楽しいよ。
111 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 10:01:10 ] >>105 ひどい書籍ですね! ぜひとも買って確かめなければ!!!
112 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 12:55:57 ] >>100 > web上の入門サイトをいくつかやってる最中ですが、 > いまいち手応えがありません。 手応えがありませんって、 簡単すぎて全部わかっちゃったのか、 基本も理解出来ないのか、 どっちなんだ? 基本がわからないんだったら、何度も読み返して、 くだらない例題だと思っても、 自分で実際にコードを書きまくって理解しろよ。
113 名前:105 [2009/06/04(木) 23:00:47 ] >>>for cnt in range(len(seq)): ... print seq[cnt] ... でした。でもこれでもおかしいですよね? len()への引数で文字列を扱う際は""。 結果的にはどうしたいのか謎ですが、これが正解に近いですか? >>>a="seq" >>>b=range(len(a)) >>>b [0,1,2] >>>for cnt in b: ... print a[cnt] ... s e q >>> ではないですか? ってか単純に文字列に""が足りないだけで >>>for cnt in range(len("seq")): ... print "seq"[cnt] ... s e q でしょうか?上記の例は詳しくやってみました。
114 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:04:44 ] seqが変数なんだろ? 前で代入されてるんでしょ?
115 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:10:32 ] 105は友達がいないせいでmixi垢を持ってないんだな。 なによりそれが可哀想だ。
116 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:11:47 ] まあ、2ちゃんに貼ってあるmixiのリンクは普通踏まないがな・・・
117 名前:105 [2009/06/04(木) 23:14:00 ] >>114 かなり前までさかのぼっても代入された記述はないんですよ >>115 確かに友達は少ないかな?w mixi垢ってなに(汗
118 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 00:09:14 ] 書籍のサンプルコードなんだから一部抜粋なんて 普通にあるだろ。そうでなければタダの誤植。 だいたいseqっていう名前から 何らかのシーケンスを表す変数だって想像しろよ。 "seq"っていう文字列だなんて普通は思わないよ。
119 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 00:14:38 ] >>113 range(len(seq))はforで添え字アクセスをしたい場合に使う慣用句 こんな感じに使う >>> lines = [u'1行目', u'2行目', u'3行目'] >>> for linenum in range(len(lines)): ... print '%d: %s' % (linenum + 1, lines[linenum]) ... 1: 1行目 2: 2行目 3: 3行目 後々わかる日が来るから深く悩まず先に進むのが吉
120 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 00:18:22 ] >>119 あ、linenumになってないね。 linenum → i に訂正
121 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 00:29:17 ] おかしいのは105の脳みそでした
122 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 02:17:09 ] >>105 さんの脳みそ本当にだいじょうぶかなぁ ぜったい普通じゃないよね かわいそう
123 名前:デフォルトの名無しさん [2009/06/05(金) 03:11:03 ] クラスAのなかで[1,2,3]というリストを作ろうとしています。 で、次のようにコーディングしたらselfが定義されてない、って怒られました。 class A: def __init__(self): self.x = [] for i in range(1,4): self.x.append(i) Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> class A: File "<pyshell#5>", line 5, in A self.x.append(i) NameError: name 'self' is not defined なにがまずいのかわかりません。どなたかご指摘くださるとありがたいです。
124 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 03:23:15 ] >>123 インスタンスメソッドの第一引数(慣習としてselfを使う)は インスタンスオブジェクトを指す。 その for 文はインスタンスメソッドの外側にあるので、クラスを 生成するときに実行される。その時にselfは存在しない。 解決するにはインデントを修正する。 class A: def __init__(self): self.x = [] for i in range(1,4): self.x.append(i) ただし、こちらの方が綺麗 class A: def __init__(self): self.x = range(1,4)
125 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 10:02:50 ] インデントがずれてるんじゃねえの? スペースを全角に変換してもういちどコード張れや>123
126 名前:デフォルトの名無しさん [2009/06/05(金) 11:08:44 ] >>124 ありがとうございます。 インデントはつけています。投稿時につぶれてしまいました。すみません。 >>125 インデントは次のようにつけています。 class A: def __init__(self): self.x=[] for i in range(1,4): self.x.append(i)
127 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 11:13:27 ] >>126 バロス(wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
128 名前:126 [2009/06/05(金) 11:31:20 ] あ〜、 for i ... のインデントは def __init__ ... より内側に来なきゃいけないのかな? どうもselfがよくわからんorz
129 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 13:20:52 ] self.x = [] の次の行は 既に別の空間だ
130 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 15:50:40 ] コードは $ sed -e "s/ /\ /g" test.py みたいに正規表現でhtmlの空白に置換するといいよ
131 名前:デフォルトの名無しさん [2009/06/05(金) 19:49:02 ] すごい初歩のことですみません。 リストでスライスのことですが、 a=range(10) a[1:3] 1,2 となります。 なぜ、1,2,3にならないのでしょうか? 0からのインデックスという説明がされているのですが、 0,1,2,3,4,5,6,7,8,9 とするのならば、a[1,3]であれば、1,2,3ではないのですか? こんなところでつまづいてしまっているのですが、どのように理解すればよいのでしょうか?
132 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 19:56:23 ] 後ろから2行目に間違いがありました。 a[1:3]でした。
133 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 19:59:19 ] >>131 スライスにおけるインデックスは文字の隙間と考えるのが定番 www.python.jp/doc/release/tut/node5.html#SECTION005120000000000000000
134 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:03:08 ] >>131 開始点は含み、終了点を含まない範囲を指定している。 記号で書けば、 [begin, end) こうすると、長さ0の範囲を [n:n] で表せる。 もしくは、長さを end - begin で計算することができる。 C++でも同じ考え方をしているよ。
135 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:04:16 ] >>133 なるほど。文字と文字の隙間にインデックスが付けられているのですね。 文字自体についているわけではなかったのか。 疑問が解けました。ありがとうございました。
136 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:06:47 ] 何につけ作法は作法で「そういうもの」と覚えてしまう方が早く学習進んで良い 理由付けやルールなんかは言語作者のもんだしさ…
137 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:09:47 ] 134さんもありがとう。 133さんのリンク先の図解で理解できました。 また、計算する際にも利用できるのですね。 今のところ、図解が理解できたので良しとします。 m(_ _)m
138 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:27:42 ] >>136 確かにそうなのかも知れないですけど、モヤモヤしていて理解できないことって、気持ちが悪いです。 しかも難しくて理解できないことじゃなくて、誰でも疑問を持ちそうな初歩的なことでしたから。 インデックスが、文字自体に付いていないということに気付きませんでした。
139 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:34:20 ] 小学校の算数レベルだろ
140 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:40:24 ] うーん、そうなのですか? 今の算数は、インデックスが0から始まりそれは文字に割り当てられてのではなく、 隙間に割り当てられているって習うんですか? 私に時には習った覚えはないです。
141 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:42:15 ] 誤字になってしまったので、書き直します。 うーん、そうなのですか? 今の算数は、インデックスが0から始まりそれは文字に割り当てられるのではなく、 隙間に割り当てられているって習うんですか? 私の時には習った覚えはないです。
142 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:46:20 ] >>141 釣られなくていいから
143 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:58:16 ] >>142 そっくりそのままお前に返したいw
144 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 21:46:27 ] >>143 くりそつ
145 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 22:37:15 ] つーか、単に-1に合わせてるだけの希ガス。
146 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 01:15:51 ] end - beginで length が取れるのが一番の魅力だと思う
147 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 09:58:05 ] >>146 カウンタが1から始まったりendが含まれる系の言語では あちらこちらに +1 とか -1 が散らばってて、一旦バグると どの +1 が間違ってるのか判らないもんな。
148 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 11:47:27 ] C とかで書くときもやっぱり for (i = begin; i < end; i++) だな。 for (i = begin; i <= end; i++) とか書いてるのみるとイラッとする。
149 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 12:39:39 ] >>148 場合によるね。 タグの値を順番になめる場合とか、結構 <= で比較する場合もあると思う。 for (tid = ID_START; tid <= ID_FINAL; ++tid) とか。
150 名前:148 mailto:sage [2009/06/06(土) 12:42:56 ] >>149 うん 場合によるとおもう 必要なときもあるよね でも <= を使うときにちょっといやな気分になるのはおれだけかな
151 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 12:54:49 ] 俺もなる。基本的に序数の場合はそれでいいと思う。 ただ for (double alpha = 0.0; alpha <= alpha_max; alpha += step) みたいに実数値の範囲みたいなのは<=じゃないとキモいと思う
152 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 14:00:30 ] 普通はID_FINALってやつを最後の次の値として定義するけどな。 そうでないと斜め読みしてるときにいちいち目がとまって 本当にただしいか確認しないとといけない。 もちろん、>>151 みたいなalpha_maxとかINT_MAXみたいに どうしようもない場合もあるんだが。 郷にいれば郷に従えみたいな感じかなあ。
153 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 14:05:25 ] と思ったけどそうでもないかな。 今のなしで。
154 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 14:07:10 ] 0〜N-1なら、i<Nで、 A〜Bなら、i<=Bだな。
155 名前:デフォルトの名無しさん [2009/06/06(土) 14:14:25 ] 初心者には難しい話しているな(汗
156 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 15:42:24 ] >>151 なんで?
157 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 19:41:22 ] おまえら、JDBCでも1ベースなのはなぜなんだぜ?
158 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 22:25:54 ] Pythonの場合xDBCは不要
159 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 23:25:49 ] DBAPI 使う罠
160 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 10:48:32 ] >>158 マジすか? Mac から Microsoft Access データを読み書きする方法教えやがれです。
161 名前:デフォルトの名無しさん [2009/06/08(月) 12:04:12 ] 質問です! 最近、BlackJumboDogを使ってWindowsXPでWEBサーバを立てたのですが PerlとRubyは動くのにPythonが動きません。 cmdから「perl -v」「python -v」「ruby -v」をやるとエラーの雰囲気は無い応答が帰ってくるので 問題ないとおもうのですが、何か原因がわかるかたいますか? ちなみに「python -v」を打ち込むとperlやrubyではバージョンとかが出るのですが pythonだけ対話モードみたいなのに入ります。 cgiの中身は以下のようになってます。 #!/python # -*- coding: utf-8 -*- import cgi import cgitb cgitb.enable() print "Content-Type: text/html" print print "hello world." アクセスすると真っ白です。 どなたかお助け願います。お願いしますよろしくお願いします!
162 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:17:42 ] >>161 かなり特殊なサーバーみたいだね。 www.kamezoh.net/bjd-doc/bjd-doc/WebCgi.html これをみると、拡張子とインタプリタの関連付けを一個一個埋め込みで実装している ような気がする。で、Pythonには対応していないから実行できなさそう。
163 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:29:30 ] >>162 まま、マジですか! ありがとうございます。 原因がBlackJumboDogにあるとは考えてなかったので それを念頭にまたググってみます。
164 名前:デフォルトの名無しさん [2009/06/08(月) 13:15:30 ] >>161 python -V (大文字)
165 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 15:08:16 ] >>164 多分bingoだろうな。どうして--helpとか、-hをまずしないのだろうか。
166 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 15:23:13 ] ついでに晒しとく 6924.teacup.com/kamezoh/bbs かめぞ〜掲示板 雑談 兼 避難所 げ! 投稿者:かめぞ〜 投稿日:2008年 9月 4日(木)20時34分22秒 返信・引用 勝手に広告なんか入れやがって・・・SPAM業者と変わらんではないか。 掃除掃除。( ´〜`)y-~~ 空いた時間を有効活用 バイト探しはお任せ。高時給から短時間バイトまでおすすめ情報を比較。 リフォームしませんか リフォーム情報が満載。人気のリフォーム会社を徹底比較。 おしゃれ女性かつら情報 ファッションから医療用まで、女性用かつら・ウィッグ情報はコチラ。
167 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 17:22:26 ] >>161 特別な事情やこだわりがない限り WebサーバはApache使ったほうがいいんじゃまいか
168 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 19:40:31 ] >>161 俺はANHTTPDを使ってる これならPythonだろうがなんだろうが動くぞ
169 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 20:20:46 ] Winなら、Linuxの仮想環境作ってその中でWeb鯖立てるのが本当はおすすめ
170 名前:デフォルトの名無しさん [2009/06/08(月) 22:40:41 ] あの〜インタラクティブシェルでだらだらコードを書いた後にクリアしたい(今までのコードをを消したい) 時は再起動しかないですか?(プログラムを)
171 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 23:08:55 ] wsgiだろ常考
172 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 00:40:26 ] >>162 へえ、と思ってソース(TVWeb.cpp)を見たが、以下のようなロジックなので pythonインタープリターとパラメーターがちゃんと1行目に書いてあれば 大丈夫っぽい。 1行目が#!で始まっている →perlという文字があればperl、rubyという文字があればrubyと見なす どちらでもなければコマンドへのフルパスと見なす(/は\に置換) 1行目が<?で始まっている →phpと見なす 何がcgiモジュールなのかは、設定ダイアログで設定した拡張子で判断する。 ただし、拡張子と実行コマンドが紐付けされるわけではなく、上記のロジックで 判断される。
173 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 03:47:45 ] >どちらでもなければコマンドへのフルパスと見なす(/は\に置換) じゃあ #!c:/Python26/python.exe って書かないといけない訳?
174 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 07:54:25 ] だっさ
175 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:11:34 ] /cygdrive/c/IronPython/py2/ipy.exe
176 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 08:07:17 ] Python CGI pc11.2ch.net/test/read.cgi/php/1163513344/ いつまで板違いの話をしてんの
177 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 09:16:42 ] 海の日
178 名前:デフォルトの名無しさん [2009/06/10(水) 11:44:06 ] つゆ入り
179 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 22:56:31 ] >>176 他の板に適切なスレがあるからと言って、即スレ違いということにはならん。 誘導自体は否定しないけどね。
180 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 16:09:25 ] アフォ毛
181 名前:デフォルトの名無しさん [2009/06/11(木) 17:10:28 ] pythonもオブジェクト指向も初心者です。 次のようなことをしたいと思ってます。 クラスA、クラスB、クラスCがある。 1、クラスBからの出力を、クラスAが入力として受け、クラスAのなんらかのメソッドを実行する。 2、クラスAのメソッド実行終了後、クラスCのメソッド実行に移る。 どうやったらいいか、思考の材料さえ頭の中にない状態です。キーワードだけでも教えてください。
182 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 18:00:42 ] >>181 pc12.2ch.net/test/read.cgi/tech/1153585095/
183 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 19:56:01 ] >>181 まず、何でもいいから 「クラスを定義してインスタンスを作ってメソッドを実行する」 くらいは出来るの?
184 名前:181 [2009/06/11(木) 20:18:11 ] >>183 ようやくそれができるようになった段階です。
185 名前:デフォルトの名無しさん [2009/06/11(木) 21:57:35 ] 前にも出ましたが、「ファイル名の書き換え」 例えばディレクトリ指定はコード内に書く。 フォルダ内のごちゃごちゃ名前のmp3ファイルをa01.mp〜a0n.mp3まで順に書き換える。 参考にさせて頂きたいのですが、サクサク書ける方いましたら宜しくお願い致します。
186 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 22:15:48 ] Python何が得意なの? webサーバーのCIとか得意ですか?
187 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 00:21:57 ] >>186 Pythonは、汎用のプログラミング言語だから、大抵の事に適しているよ。 デスクトップアプリ: BitTorrent, DropBoxクライアントなど Webアプリ: Zope, Django, TurboGears 埋め込み: 各種ゲーム、CG サーバー: Webサーバー、FTPサーバー、メッセージングサーバー
188 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 03:17:45 ] なんか板違いが多いな web板逝けよ pc11.2ch.net/test/read.cgi/php/1163513344
189 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 07:28:25 ] それコピペ
190 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 08:55:15 ] それもコピペ
191 名前:デフォルトの名無しさん [2009/06/13(土) 22:57:07 ] 関数の戻り値ってのがちょっと理解できないんですが、 これってどういう目的で行うんですか?関数によって返されたオブジェクトを変数に代入すれば同じ 効果ですか? ちょっとわかり難いので、噛み砕いてご説明いただけると幸いです。 プログラミング自体初心者です。宜しくお願いします。
192 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 23:31:07 ] 一回スパゲッティを作ってみるといいよ
193 名前:デフォルトの名無しさん [2009/06/14(日) 00:20:46 ] スパゲッティと関係あるんでしょうか
194 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 01:04:35 ] 引数が入力なら戻り値は結果だよ 例えば足し算の関数 add を作ってみる def add(x, y): return x + y これを answer = add(2, 3) と使うと、 add さんに 2 と 3 を足してくれーと頼んで、add(2, 3) はその結果の 5 に置き換わると考えてかまわない つまり answer = 5 みたいになって、answer には 5 が代入される answer = add(2, 3) * 3 なら answer = 5 * 3 みたいになって 15 が代入される
195 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 09:46:43 ] reduceがようわからんのですが
196 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 10:38:01 ] >>195 おれもよくわからんのですが、forループで書くよりreduceで書いたほうがカッコいいというのは分かる。 つまり結果が一個になるforループはreduceで書いてる… おなじく結果の個数が変わらないforループは、mapで書いたほうがカッコいいのでそうしてる。
197 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:08:24 ] >結果が一個になるforループはreduce とは限らないんだよねぇ
198 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:30:03 ] >>197 えー 教えてくだしあ
199 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:35:10 ] reduce は x1 ⊕ x2 ⊕ ... ⊕ xn のこと。 リストx1, ..., xnと2項演算子⊕を与えられればこの計算は定義できるでしょ。
200 名前:デフォルトの名無しさん [2009/06/14(日) 12:39:17 ] >>194 ありがとうございます! returnを使わないと、戻り値を変数に代入できないのですが、 それを代入できるようにするのがreturnと考えてもOKですか?
201 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:49:58 ] >>200 Pythonに代入というものはない。 すべてbindingだ。
202 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:51:45 ] >>200 不思議な頭の構造してる人だなぁ。 returnを使わないと、戻り値がそもそも「ない」。 あなた「戻り値」って何だと理解しているわけ?
203 名前:デフォルトの名無しさん [2009/06/14(日) 12:55:10 ] 「戻り値」=「結果」? >>returnを使わないと、戻り値がそもそも「ない」。 っていうのがよくわからないんですよね 参考書などではreturnのところがprint文で結果を表示するようになってますよね。 その違いってなんですか
204 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:56:30 ] なんか着眼点がずれてる。
205 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:58:55 ] えー newlist = reduce(lambda x,y: x+y, inputlist) リストの内容を全部連結したリスト作る たとえばこんなreduceもあるかもしれんけど… 結局どういうとこで使うのが一番カッコいいのか良く分からんのですよ。 逆に正直に言うとですね、「コイツこういうとこではreduce使えよバカ」と思われないためには どうしたらよいでしょうかw
206 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:03:18 ] >>203 呼び出して任せて何かさせて終わり、なら、戻り値は要らない。 呼び出して結果を報告させるには、戻り値が必要。
207 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:05:49 ] 「関数の呼び出し側の都合」と、 「関数内部の都合」がごっちゃになってるんじゃね? 関数は作る人と使う人がいる。
208 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:06:01 ] >>205 速度面などで必要ないなら使わなくておk
209 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:06:39 ] >>205 使う意義がよく分からないものは無意味に使わないのが Python的にはカッコイイ。
210 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:09:48 ] 高階関数にreduce的な関数を渡す必要があるときは reduceを使う。 わざわざlambda でごちゃごちゃと車輪の再発明するのはカコワルイ。 もっともreduceをとる高階関数なんて、見たことないけど。
211 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:13:29 ] はっきり言うとreduceはいらない子。 使わなくてよろしい。
212 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:17:14 ] >>211 非常にすっきりしました。 map/reduceの兄弟、兄は本当に便利な子だけど弟は「はっきり言って要らない子なのよね」 とつぶやく母、それを聞いてしまい泣きながら家を飛び出すreduceくんということですね。
213 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:21:02 ] 関数型プログラミングやろうとするとreduceの出番も出てくるけど、 Pythonの場合、関数型にこだわる意味がないからな。
214 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:28:54 ] >>203 初心者が対話型プロンプトで標準出力への出力と 関数の戻り値が区別つかなくなるのは典型的な落とし穴 print 'hoge' # 'hoge'を標準出力に書き出す。戻り値もへったくれもない
215 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:29:51 ] map/reduce/filterは使い始めると際限ないから基本使わない
216 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:36:31 ] 小手先の技は、俺SUGEEだけのために存在する。 そういう奴に限って、アルゴリズムがさっぱりだったりするw
217 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:44:19 ] 抽象化を「小手先の技」とか思っちゃう奴はこの先真っ暗だぞ。
218 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:51:07 ] これは抽象化じゃないだろw
219 名前:デフォルトの名無しさん [2009/06/14(日) 13:56:24 ] >>標準出力への出力と 関数の戻り値 >>関数は作る人と使う人がいる。 難しいな
220 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 14:24:22 ] filterは普通に便利だし。 Cしか知らない人が「何なのこれ??」っていうから、 このmapってのがfor i = 0 to... のループで、filterってのがループの中のif文ですな、 展開してみるとこんな具合です。と説明したら「SUGEEEE」言ってた。
221 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 14:29:03 ] >>214 なるほど、式を評価してそのまま表示するから、 かえって分かりにくくなってるってことか。
222 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 14:38:50 ] >>212 reduceが兄で mapが弟ですよ
223 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 14:40:20 ] >>214 printの戻り値は無視ですかそうですか
224 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 14:50:58 ] printの戻り値?あれはステートメントだろ。
225 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 15:09:59 ] printはもう文じゃなくて関数になったよ^^
226 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 15:12:15 ] 変な煽りは本スレでどうぞ 少なくとも>>214 のprintは誰が見ても文
227 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 21:56:20 ] print関数も戻り値ないんだよ^^
228 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 21:58:27 ] reduceが抽象化じゃないとか、痛い人がいるな。 pythonは処理の構造を抽象化するオツムなんかプログラマに期待していなくて バカでもちょっとだけ賢い人も同じ処理を書くと同じようなコードになるよう 誘導する言語だから、ループ書けという方向になってる。 reduceとかは、初期に有能なプログラマを魅きつけるためのプログラマホイホイ みたいなもので、十分普及した今となってはいらん子扱い。
229 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 22:10:57 ] えっと ネタだよね
230 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 23:38:37 ] 228の要約 forを書くプログラマは馬鹿
231 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 23:47:00 ] 頭がreduce
232 名前:デフォルトの名無しさん [2009/06/15(月) 01:02:07 ] mapやreduceがなくても実際ほとんど困らないけど なくなっちゃったらなんか味気ないよねえ リスト内包表記がなかったら少し困るけどね
233 名前:デフォルトの名無しさん mailto: [2009/06/15(月) 02:44:24 ] うちの嫁はreuse
234 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 10:33:27 ] mapは複数のリストに演算を適用したいときに使うかな ベクトルの加算みたいな +をoperator.addとかタイプせなあかんのはウザいが
235 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 10:38:54 ] forよりmapの方が速いんじゃなかったっけか?
236 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 10:59:50 ] operator.add と lambda x,y:x+y だとどっちが速いですか
237 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 11:07:23 ] newworld.ddo.jp/doc/PerformanceTips/ の真ん中あたりに。 バージョン 時間(秒) 基本的なループ 3.47 ドットを取り除いたもの 2.45 ローカル変数&ドットなし 1.79 map関数をつかったもの 0.54
238 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:08:48 ] リストの項目を文字列に入れたいんだ。 A = [1,2,3] print "%d, %d, %d" % (A[0], A[1], A[2]) で出来るが、 print "%d, %d, %d" % A これだと TypeError: int argument required と言われる。 エラーになるのはわかるんだが、そこをなんとか、 Aのインデックスをいちいち指定しないで、 そのまま文字列の場所に入れる方法ってないですか?
239 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:16:36 ] tuple(a)
240 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:17:46 ] tuple(A) だろ もしくは A = (1, 2, 3)
241 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:34:11 ] ありがとうございます。 タプルの方は出来るのか・・
242 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:34:39 ] ディクショナリにして使うと、順番も気にしなくていいぞ。
243 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 18:09:23 ] print "%d, %d, %d" % *A
244 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 18:11:16 ] SyntaxError: invalid syntax
245 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 18:28:19 ] print "%d, %d, %d" % (*A)
246 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 18:53:55 ] SyntaxError: invalid syntax
247 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 18:57:05 ] print A
248 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 21:24:18 ] str(A)
249 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 21:25:06 ] str(A) .strip('[]')
250 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 01:51:59 ] reduce はいらないこだろ。 実際3.0からはreduceは無いわけで。 map、filterもなくなるの時間の問題でしょ。
251 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 02:03:17 ] >実際3.0からはreduceは無いわけで。 kwsk
252 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 02:10:36 ] >>251 3.0からはbuiltin関数ではなくなって、モジュールへと追いやられた。 Guido は、他のmapやfilterもbuiltinからは外すべしと主張してたが、これらは3.0ではなんとか残った。 4.0になったときには、builtinから外れてもなんら不思議ではない。
253 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 02:27:00 ] あと、上の方にあるベンチマークだが、 あれはかなり古いPythonのベンチ。 リスト内包表記はバージョンがあがるたびにスピードアップしてて、 現在では、lambdaなしのmapに準ずるほどのベンチスピード。 一方、mapでlambdaを使ったら、リスト内包表記どころか、 通常のforループと同じかそれより遅いぐらいになる。
254 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 03:58:35 ] ということは3.0以上ではreduceは 全部リスト内包に置き換えた方がよい ということですね
255 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 05:55:35 ] >>253 それって、リスト内包では評価対象がイテレータになるんで速い、ってことなの?
256 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 06:36:32 ] >リスト内包表記はバージョンがあがるたびにスピードアップしてて、 >現在では、lambdaなしのmapに準ずるほどのベンチスピード。 現在とは3.0ですか2.6ですか
257 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 07:09:21 ] >>254 reduceをいったいどういう内包表現に置き換える積もりなんだ?
258 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 12:42:01 ] >>4-8 おかげさまでうまくいきました 無料の50MBだとコンパイルに失敗(というかソースの展開ですでに失敗)するので quota3GBのお試し期間を申し込んだら2.5.4をまるごとコンパイルできました setuptool/mysqldb等も放り込んでMySQLにもアクセスできました お試し期間が終わるとquotaが50Mに戻るので放っとくとファイルが壊れるそうで それまでに必要最小限サイズになるように標準ライブラリを削る必要がありました 結局バイナリCGIのケースとやってることはあまり変わらないかもしれません
259 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 13:47:20 ] >>253 mapで使う関数は、defしたほうがいいってことですか? defしたリスト内包表記>defしたmap≒lambdaで書いたリスト内包表記>lambdaで書いたmap≒普通のfor てことなんすかね。リスト内包表記はCで実装した部分を実行するのが多いってことなんだろか
260 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 09:21:38 ] >>259 普通に自分で def した関数ならば変わらない。 でも、自分で定義しなくても使える関数はC言語で実装されている 事が多いので、同じ事をする lambda よりも高速な事が多い。 速い順に並べると、 1. C関数の内包表記/map map(str, l) [str(x) for x in l] 2. Python式による内包表記 [x*2+3 for x in l] 3. Python関数による内包表記/map def func(x): return x * 2 + 3 map(func, l) [func(x) for x in l] map(lambda x: x*2+3, l) なので、mapを使っても悪くは無い場合は、1か、3で既存のPython関数を 使う(map用に用意しなくてもいい)場面のみ。
261 名前:デフォルトの名無しさん [2009/06/18(木) 23:38:12 ] ユニコード文字列に関して質問させて下さい。 python2.6を使用しておりますが、このVerはユニコード文字列は気にしなくてもいいんですか? 例) #coding: utf-8 a={"abc":"123","bcd":"456"} b="コード:%(abc)s 局:%(bcd)s" print b%a #コード:123 局:456 ユニコードのu""は必要ないのでしょうか? むしろu""を使用するとエラーとなります。
262 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 00:23:39 ] >>261 >>1
263 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 01:00:51 ] >>261 ファイルはちゃんとutf-8で保存してる? どこに u を付けたの? なんてエラーがでたの? それはインタラクティブシェル上?それともファイルに保存したコードを実行したの? 環境はWindows?Linux?Mac?
264 名前:デフォルトの名無しさん [2009/06/19(金) 21:45:53 ] 261です。 utf-8の設定ミスでした。お騒がせ致しました。 違うPCでやったのが原因でした。
265 名前:デフォルトの名無しさん [2009/06/20(土) 21:17:00 ] くだらない質問で悪い 文字列フォーマットで >>>print "%+010.2f" % 100.123 +000100.12 となりますが、この10桁ってのは、符号と小数点(.)も含まれるってことでいいんだよね?
266 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 23:58:48 ] >>265 桁というか、文字数、と思ってたわ。 "前に符号付き0埋め10文字、小数点以下2桁の小数点表示" とおれは理解してた。
267 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 01:25:44 ] C とはちがうんだっけ?
268 名前:デフォルトの名無しさん [2009/06/21(日) 01:51:43 ] みんなのPython改訂版って誤字脱字多くね?
269 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 02:56:07 ] >>268 多い。かなりイラッときた。
270 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:05:18 ] みんパイ(笑)
271 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:27:22 ] はじめてのPython3も誤字脱字が多いですね 正誤表もいまだ出ていません
272 名前:デフォルトの名無しさん [2009/06/21(日) 16:53:32 ] やっぱりみんなも気づいてた? 電話してやろうかと思ってたw 日本語どころかコードも怪しい 変な太字のところとかあるしw
273 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:14:16 ] 定期的にウジ虫が沸くな。
274 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:24:03 ] よう、ウジ虫!
275 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:41:02 ] 馬鹿にすんな、今成長してハエになったところだぜ?
276 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 12:23:54 ] 迷惑度急上昇だな。
277 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 13:21:08 ] >>274 ウジ虫に失礼だ。ゴキブリと呼べ。
278 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 14:27:22 ] >>277 呼んだ? 、 /⌒ヽ, ,/⌒丶、 , `,ヾ / ,;;iiiiiiiiiii;、 \ _ノソ´ iカ / ,;;´ ;lllllllllllllii、 \ iカ iサ' ,;´ ,;;llllllllllllllllllllii、 fサ !カ、._ ,=ゞiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!! __fカヘ. / `ヾサ;三ミミミミミミ彡彡彡ミヾサ`´ 'i、 i' ,._Ξミミミミミミミ彡/////ii_ | | ;カ≡|ヾヾヾミミミミミミ、//巛iリ≡カi | | iサ |l lヾヾシヾミミミミミ|ii//三iリ `サi | | ,カ ,カll|l l lヾリリリリリ川川|爪ミミiリllカ、カi | | ;iサ,サ |l l l リリ川川川川|爪ミミiiリ サi サi | | iカ ;カ, |l l リリリリ川川川川l爪ミミilリ ,カi カi | | iサ ;サ, |リ リリ川川川川川l爪ミミiリ ,サi サi | | iサ ;iカ, | リ彡彡川川川川|爪ミミiリ ,カi :サ、 | ,i厂 iサ, |彡彡彡彡ノ|川川|爪ミミリ ,サi `ヘ、 ,√ ,:カ, |彡彡彡彡ノ川川|ゞミミミリ ,カi `ヾ ´ ;サ, |彡彡彡彡川川リゞミミリ ,サi ;カ, |彡彡彡彡リリリミミミシ ,カi ,;サ, |彡彡ノリリリリミミミシ ,サi ;メ'´ i彡ノリリリリリゞミミシ `ヘ、 ;メ ヾリリリリノ巛ゞシ `ヘ、 ;メ ``十≡=十´ `ヘ、 ノ ゞ
279 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 23:15:49 ] IDLEをコンソールから呼び出すにはどうすりゃいいの。 vimと連携させようと思っているんだけど、IDLEショートカットのプロパティを みても普通のショートカットと違うみたいで呼び出し方がわからないんだわ。 ちなみに、普通のpythonプロンプトなら nmap <silent>;py :!"C:\python30\python.exe"<CR> と_gvimrcに書いておけば;pyと書くだけで呼び出せて便利。
280 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 23:17:05 ] 『書く』じゃなかった、『コマンド』したら。
281 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 12:34:36 ] うじ虫のAA ↓
282 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 12:36:48 ] 0
283 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:36:18 ] ∞
284 名前:デフォルトの名無しさん [2009/06/24(水) 23:03:37 ] ファイル名の変換で困ってます。アドバイスをお願いします。 # -*- coding: utf-8 -*- import os TargetPath = r"C:\test" FileList = os.listdir(TargetPath) for i in FileList: print i for cnt in FileList: c=1 os.rename("%03d.mp3"%c,cnt) c+=1 ※インデントは消えてると思います。。。 WindowsError: [Error 2] 指定されたファイルが見つかりません。 というエラーが出てしまいます。どういうことでしょうか
285 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:10:41 ] よくわからんが、cをforの前に持ってこないとずっと1のままじゃね?
286 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:28:52 ] 俺だったらenumerate使うけど まぁいいか
287 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:28:37 ] >>284 なんかいろいろまちがっててよくわからんけど こうしたかったんじゃないか? # -*- coding: utf-8 -*- import os targetpath = r"C:\test" filelist = os.listdir(targetpath) for filename in filelist: print filename c = 1 for filename in filelist: oldpath = os.path.join(targetpath, filename) newpath = os.path.join(targetpath, '%03d.mp3' % c) os.rename(oldpath, newpath) c += 1
288 名前:デフォルトの名無しさん [2009/06/25(木) 18:43:09 ] >>287 スマートな正解をありがとうございます。 とても参考になりました。 renameへの引数はこのようにするんですね!
289 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:07:30 ] このプログラム添削してください。 animal = [dog,cat,pig,lion,deer] num = [1,2,3,4,5,6] print animal[0] "は"num[0]"番可愛いです。 print animal[2]"は"num[5]"番可愛いです。 あってますか? ちなみに dogは1番可愛いです pigは6番可愛いです と表示させたいです
290 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:32:36 ] >>289 1から勉強しなおせ animal = ["dog", "cat", "pig", "lion", "deer"] num = [1, 2, 3, 4, 5, 6] print "%sは%d番可愛いです。" % (animal[0], num[0]) print "%sは%d番可愛いです。" % (animal[2], num[5])
291 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:58:38 ] >>289 おまえセンス無いわ
292 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 02:27:36 ] センスとか関係ないし 釣りの可能性はあるが
293 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 02:36:29 ] でも具体的なコード貼って添削してくれってのはアリだね 初心者に説明してもらってもイミフなケース多いし
294 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 06:18:15 ] スレと関係ないんだけどさ、俺「釣り」とか「釣り師」っていうのは、 釣り師 ↓ . /| ←竿 ○ / | . (Vヽ/ | <> | ゙'゙":"''"''':'';;':,':;.:.,.,__|_________ | 餌(疑似餌)→.§ >゚++< 〜 の組み合わせだと思ってたんだけど、 最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか 言ってるの多いよね。 これは、どっちかというと、 ,〜〜〜〜〜〜 、 |\ ( 釣れたよ〜・・・) | \ `〜〜〜v〜〜〜´ し \ ゙'゙":"''"''':'';;':,':;.:.,., ヽ○ノ ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ト>゚++< ノ) かと思うんだけど、どうよ?
295 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 23:25:30 ] >>294 そんなコピペで
296 名前:デフォルトの名無しさん [2009/06/27(土) 00:15:10 ] 他にも添削希望いないのかな
297 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 14:04:04 ] Pythonは、あることを書くときに「なるべく誰でも書き方が同じになるようにしよう」 というのはいいです。 でもあることをしたい時に「ライブラリがすごいたくさんあっちゃって混乱してるけど すきなの選んで」って勘弁してほしいんですが
298 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 16:49:36 ] 勘弁します
299 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 22:27:43 ] >>297 それはPerlのCPANじゃね? Pythonは標準ライブラリが充実している分、たくさんのサードパーティー ライブラリの中からマトモなのを探す手間が省けることが多いよ。
300 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 02:25:50 ] つきなみだけど 同意
301 名前:デフォルトの名無しさん [2009/06/28(日) 09:18:41 ] FTPで対象のファイルがディレクトリかどうかはどう判断すればいいでしょうか? マニュアルを見ましたが、該当のコマンドが見つかりませんでした. www.python.jp/doc/2.4/lib/ftp-objects.html nlst() で片っ端から試して例外処理で取得する方法を思いつきましたが もっとスマートな方法はありませんか?
302 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 11:42:42 ] ls -lR
303 名前:デフォルトの名無しさん [2009/06/30(火) 22:07:59 ] すいません添削ってわけではないですが、質問させて下さい。 1から100までの数字で不定期に続くリストがあります。 cnt=[2,3,5,9,12,23,56,62,68,75,85,95] でどの数値が抜けているのかを調べる。 #coding:utf-8 cnt=[2,3,5,9,12,23,56,62,68,75,85,95] num=range(1,101) for i in cnt: #numから繰り返し変数iを引きたいんだけど、何が一番スマートだろ… print num
304 名前:デフォルトの名無しさん [2009/06/30(火) 22:13:41 ] 書き忘れました。 #coding:utf-8 cnt=[2,3,5,9,12,23,56,62,68,75,85,95] num=range(1,101) for i in cnt: num.remove(i) print cnt がベストかと思うんですが…間違ってますか?
305 名前:デフォルトの名無しさん [2009/06/30(火) 22:15:36 ] 最後はprint num でした。度々すいません
306 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 22:16:13 ] setでも使え
307 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 22:19:36 ] [ x for x in range(1,101) if x not in [2,3,5,9,12,23,56,62,68,75,85,95]]
308 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 22:22:16 ] set(num) - set(cnt)
309 名前:デフォルトの名無しさん [2009/06/30(火) 22:28:35 ] そういうのも可能なんですね ありがとうございます。 どーしょーもない質問ですいませんでした
310 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 18:25:23 ] ちんこ生えてきた
311 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:41:46 ] >>310 今度は大事にしろよ。
312 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 05:25:27 ] ┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい!
313 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:39:22 ] if文で一度に複数の変数、たとえば if a>0 and b>0 and c>0: みたいなのは無理ですか?
314 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:48:17 ] >>313 そんなの聞くよりやった方が早いだろ。 普通に対話型でもできるし。
315 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:48:33 ] 可能です
316 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:00:10 ] if 0 < a < 5: と書いてもエラーにならない処理系はありますか
317 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:02:38 ] ある
318 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:07:23 ] Pythonにはない。 あと、エラーにはならなくとも、おもいがけない意味になることもある (C言語とか)。
319 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:12:13 ] >>318 >>318 >>318
320 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:22:05 ] (回答者が)超初心者用
321 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:27:42 ] Rubyなら全部できるよ^^
322 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:32:12 ] >>318
323 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 14:47:17 ] >>318 0 < (a < 5) または (0 < a) < 5 ということですか?
324 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 14:53:34 ] #include <stdio.h> int main(int ac, char *av[]){ int a; for(a = 0; a <= 5; a++) if(0 < a < 5) printf("%d: true\n"); else printf("%d: false\n"); return 0; } # if(0 < a < 5) 0: true 1: true 2: true 3: true 4: true 5: true # if(0 < (a < 5)) 0: true 1: true 2: true 3: true 4: true 5: false
325 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 15:05:43 ] >>318
326 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:24:50 ] じゃあ、俺も一応 >>318
327 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:11:57 ] 0: false 1: true 2: true 3: true 4: true 5: false になるようにするにはどうすればいいですか
328 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:18:01 ] >>324 C/C++スレに帰れ 0 < a && a < 5
329 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:21:22 ] Cはa < b < cはどうやってもダメだけどPythonは意図通りに動くだろ、確か >>324 はきちんと動いてないし
330 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:24:13 ] きっちり正しく動いていて、書いたほうがアホと言う方が正しい
331 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:28:31 ] >>318
332 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:43:56 ] >>330
333 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:44:45 ] まいんまいん
334 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:47:34 ] >>318
335 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 22:17:47 ] lispで (< 0 a 5) 当然Rubyなんかには出来ません
336 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:07:38 ] (setq a 3) 3 (< 0 a 5) t >>> a = 3 >>> 0 < a < 5 True
337 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:22:22 ] a > b > c > dは t = b u = c a > t and t > u and u > d ってことか。これはきもいなー。 Python3でも変わってないのね。 まあ、気にしないことにしよう。
338 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:27:34 ] Cをはじめた初心者がうっかりやりがちなぐらい自然な記法なのに!
339 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:31:57 ] Pythonの三大ステキ機能のひとつにケチをつけるとはいい度胸だ
340 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:45:06 ] bが最大であることをテストするのに a < b > c #これはいただけないよね?だからと言って b == sorted((a, b, c))[2] #これは頭がおかしい
341 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:50:58 ] Python > Ruby > C
342 名前:デフォルトの名無しさん [2009/07/04(土) 00:05:09 ] (a and c) < b
343 名前:デフォルトの名無しさん [2009/07/04(土) 00:09:40 ] a, b, c, d のなかで bが最大であることをテストするのに a < b > c に d を加えられない sorted の方が正解
344 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:11:34 ] >>342 は何がしたいんだ
345 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:12:11 ] max(a, b, c, d) == b
346 名前:デフォルトの名無しさん [2009/07/04(土) 00:15:07 ] reduce(lambda x, y: y if x < y else x, [5, 2, 7, 3])
347 名前:デフォルトの名無しさん [2009/07/04(土) 00:16:53 ] reduce は 2.6 以上では使えないんだっけ
348 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:19:19 ] functools.reduce に移動しただけだから問題ないよ
349 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:20:23 ] any(x < b for x in (a, b, c))だろ、常識的に考えて……
350 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:24:28 ] つーか、もう比較アルゴリズムの話だろ。
351 名前:デフォルトの名無しさん [2009/07/04(土) 00:50:00 ] web から取ってきた HTML を食わせて、XPath でデータを取り出したい。 正書式でなくても適当によしなに計らってくれるとなお嬉しい。 Ruby だったら Nokogiri みたいだけど、Python では何?
352 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:55:37 ] >>351 - BeautifulSoup - lxml
353 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 01:44:26 ] >正書式でなくても適当によしなに計らってくれるとなお嬉しい。 lxml だと無理?
354 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 02:18:39 ] lxmlもがんばってくれるよ
355 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 06:15:05 ] any(x < b for x in (a, b, c))だろ、常識的に考えて……
356 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 10:06:22 ] any(b<=x for x in (a, b, c))
357 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 11:50:56 ] class Hogeがあったとして、 "Hoge"からはどうやってアクセスするんだっけ? あと、こういうのを一般的に言って、どんな専門用語でしたっけ?
358 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 11:53:48 ] >>357 globals()["Hoge"]
359 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:01:54 ] >>358 ありがとうございます。
360 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:11:41 ] イントロスペクションとかリフレクションとかそのへんの用語を求めてる?
361 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:43:47 ] >>360 イントロスペクションってのは初めて聞いたので、調べてみます。 単に、eval("Hoge")みたいなのと勘違いしていた模様。
362 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 13:21:52 ] Hoge.py 内に class Fuga があったとして、 "Hoge", "Fuga" からはどうやってアクセスするんだっけ?
363 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 13:23:23 ] Hoge.py 内に class Fuga, method Hage があったとして、 "Hoge", "Fuga", "Hage" からはどうやってアクセスするんだっけ?
364 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 13:31:07 ]
365 名前:デフォルトの名無しさん [2009/07/07(火) 13:34:51 ]
366 名前:デフォルトの名無しさん [2009/07/10(金) 09:36:03 ] age
367 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 09:49:45 ] おはようございます。 わたし16歳の女子高生ですけど Python始めるにあたって最初に読むべき本は ありますか?
368 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 10:08:35 ] ないよ
369 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 13:44:13 ] こんにちは。 わたし15歳の巨乳グラビアアイドルなんだけど みんなでPythonやろうよ。
370 名前:デフォルトの名無しさん [2009/07/10(金) 13:59:45 ] みんなでPython www
371 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 05:24:24 ] Good Morning, Everyone!!!! I am a thirteen years old girl. I will start learning Oppaithon Programming. Please teach me chome-chome.
372 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 05:35:52 ] chome-chomeとか団塊レベルじゃないと使わないだろう普通
373 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 06:18:10 ] コメコメ?アスタリスクのこと?
374 名前:デフォルトの名無しさん [2009/07/11(土) 09:33:34 ] いつもの英語下手なひとか
375 名前:デフォルトの名無しさん [2009/07/11(土) 12:39:50 ] OptionParserについて質問です #!/usr/bin/env python # coding: utf-8 from optparse import OptionParser parser = OptionParser() parser.add_option('-f', '--fuga', action='append', type='string', dest='fugaList', help='fugafugafuga') (options, args) = parser.parse_args() print options.fugaList ※上記のスクリプト名を仮にfugaとする 実行例1: $ ./fuga -f hoge piyo ['hoge'] 実行例2: $ ./fuga -f hoge -f piyo ['hoge', 'piyo'] 複雑なオプション指定による処理分岐を行いたくてOptionParserを使い始めました 実行例1のように一つのオプションに多数の引数を渡して、 実行例2の結果['hoge', 'piyo']のように"options.fugaList"に 引数を代入したいのですが、可能でしょうか? 可能ならアドバイスをお願いします
376 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 12:55:13 ] 一つのオプションに対して複数のオプション引数を許したら 後に続くであろう固定引数が存在するかしないか確認する術がない気がする なので素人考えだけど -f"hoge,piyo" でごまかすとか
377 名前:デフォルトの名無しさん [2009/07/11(土) 13:22:26 ] >>376 レスありがとうございます >>275 にこのスクリプトの使用目的を書いていなかったので 後出しになってしまいますが $ ./fuga hoge_* のようにコマンドラインからワイルドカードを使用して、 複数のファイル名をオプション引数に渡して利用するのがメインなので -f"hoge,piyo" ではちょっとごまかせないです。。。
378 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 17:38:38 ] そういう場合-fオプションがあったらどういう動作をする、という風に作るものであって -fオプションにパラメータをぞろぞろ渡すという風にはしないだろ、普通。
379 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 20:33:47 ] A/B/__ini__.py で変数を定義 hoge = 'hogehoge' A/B/module_x.py というモジュール内でhogeを使いたい場合、どうすればいいのかを教えてください。 import hoge ではダメなんですか?
380 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 21:02:00 ] >>379 コピーでよけりゃ from . import hoge
381 名前:375 mailto:sage [2009/07/12(日) 02:57:27 ] >>378 確かに普通はそうかもしれませんね。。。 という訳でOptionParserではワタシがしたいことが出来なさそうなので 自分でモジュールをつくることにしました どうもありがとうございました
382 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 03:26:51 ] どういたしまして
383 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 07:40:36 ] >>377 OptionParserなりgetoptで "hoge_*" を文字列として受け取ってから glob でワイルドカードを展開すればいいんじゃまいか。 ためしてないけど Linux/Unix 環境だとワイルドカードはシェルによって 展開されてからプログラムに渡されるので ./fuga -f "hoge_*" のようにコマンド引数をクオートして書く必要がある。
384 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 09:37:55 ] きたああああああああああああああ UnicodeDecodeError出なくなった!
385 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 10:08:02 ] >>384 どうやった? まさか setdefaultencoding() じゃないよな? from __future__ import unicode_literals して、テキストファイルのファイル入出力は import codecs codecs.open('foo', encoding='cp932') のようにエンコーディングを指定してファイルを開くのが正しい方法だぞ。
386 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 11:45:18 ] リスト型で日本語を扱う場合一個ずつ取り出さないと文字が化けちゃうんですが スライスで一度に複数の要素を扱えるようになる方法はないんでしょうか
387 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 11:54:03 ] >>386 実際に化ける場合のコードと、「一個ずつ取り出す」のコードを見せてみりゃれ
388 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:11:28 ] 辞書を hoge = {'fuga': 1} print hoge.fuga とJSの連想配列のようにキーをプロパティみたいにして アクセスしたいんですがどうにか実現できないですか?
389 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:38:09 ] >>385 フッ…txtをUTF-8で保存することを覚えただけさ ついでにだけどunicode_literalsって何? 2.5だとimportできなくていいのか?
390 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:48:52 ] >>389 うん、2.6からしか使えない。 たとえば、 #coding: utf-8 open("あいうえお") ってやると、"あいうえお"はutf-8のバイト列だから、Windowsとかでは "あいうえお" という名前のファイルを開けない。 open(u"あいうえお") と書くと普通にファイルが開ける。 で、 Python 3.0 以降では普通に "あいうえお" と書くと Python 2系の u"あいうえお" 相当になるんだけど、Python2系でもu無しにUnicode文字列を書けるようにするのが unicode_literals
391 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:51:59 ] >>388 例えば、 >>> class JSObject(dict): ... def __init__(self, o): ... self.__dict__ = o ... >>> o = JSObject({'foo': 1}) >>> o.foo 1 他にも __getattr__, __setattr__ を使った方法とかもある。
392 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:10:28 ] >>387 こんな感じです #ファイルの2行目からの文字列を3行ずつリストの1要素にまとめて扱いたい fhnd = open('spam.txt','r') lines = [] add_up = [] line_start = 2 line_end = 5 for temp in fhnd: lines.append(temp) for temp in lines: if (line_start > line_max) or (line_end > line_max): break add_up.append(lines[line_start] + lines[line_start+1] + lines[line_end-1]) #←化けない # add_up.append(lines[line_start:line_end]) #←上の代わりに実行すると化ける print str(add_up[0]) + str(add_up[1]) + str(add_up[2])#←上のfor文内のうち上の行を実行なら化けない print str(add_up[0:3])#←上のfor文内のいずれでも化ける
393 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:12:35 ] 抜けてたけど line_max = len(lines) です
394 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:13:17 ] >>391 おお!ありがとうございます! 勉強になりました!
395 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:58:36 ] >>392 > add_up.append(lines[line_start] + lines[line_start+1] + lines[line_end-1]) #←化けない > # add_up.append(lines[line_start:line_end]) #←上の代わりに実行すると化ける 上の場合、appendの引数は文字列だけど、下の場合はリスト なので下を上と同じくするならadd_up.append( ''.join( lines[line_start:line_end]))じゃまいか > print str(add_up[0:3])#←上のfor文内のいずれでも化ける リストをstrしたときに得られるのはprintできる文字列 >>> L = [1, 2, 3] >>> str(L) '[1, 2, 3]'
396 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 15:24:04 ] >>392 まずはstr()とrepr()の違いが判らないとな。 >>> astr = 'あいう' >>> alist = [astr] >>> print astr あいう >>> print alist ['\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86'] リストを文字列にしようとしたら、リストの要素にはstr()ではなくてrepr()が適用される。 repr()されると、文字列のうちASCII文字以外は\xでエスケープして表示される。 三行分の文字列を配列にして add_up を2重配列にしたい? それとも三行分の文字列を一つの文字列に連結したい? lines = open('spam.txt').readlines() add_up = [] for i in range(1, len(lines), 3): add_up.append(lines[i:i+3]) # 2重配列にしたい場合 add_up.append(''.join(lines[i:i+3])) # 連結したい場合
397 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 16:36:49 ] エンコーディング方面の問題かと思って 見当違いな方向に進むところでした ありがとうございました
398 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 05:48:35 ] >>390 ありがとう
399 名前:デフォルトの名無しさん [2009/07/13(月) 22:41:07 ] [1,2,3,1,4,5]のようなリストの重複した要素を削除して[1,2,3,4,5]のようなシーケンスを作る。 ※並び順は問わない。 set型を使わず、for文とif文を組み合わせるなどして作成する。 模範解答をお願い致します。
400 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:50:35 ] とりあえず、初歩的にはこんな感じだろう。 ListA = [1,2,3,1,4,5] ListB = [] for x in ListA: if not x in ListB: ListB.append(x) print ListB
401 名前:デフォルトの名無しさん [2009/07/13(月) 22:53:49 ] >>400 レスありがとうございます。 削除する方法ばかり考えてましたが、追加するって考え方もあるんですね すごく参考になりました。スマートな回答どうもです!
402 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:56:05 ] a = [1,2,3,1,4,5] print list(set(a))
403 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:56:27 ] 最初に空リスト作るってのはよくある
404 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 00:44:04 ] >>399 set型を使わない理由は?
405 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 00:52:50 ] 宿題だからでは・・・ あれ、だとすると宿題スレだなw
406 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:09:18 ] 2ちゃんに書き込みたいけどcookieがよく分からん どうやってResponseから取り出してrequestに追加するの?
407 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:42:01 ] firefox使えばok
408 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:45:22 ] というかwgetだけでできるじゃん
409 名前:デフォルトの名無しさん [2009/07/15(水) 06:59:12 ] インスタンスに勝手に属性をつけられないようにはできませんか? クラスの定義に書いてある属性だけで打ち止めにしたい・・・
410 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 08:56:43 ] def __setattr__(self, name, value): if hasattr(self, name): object.__setattr__(self, name, value) else: raise AttributeError(name)
411 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:10:10 ] そうか! __setattr__ をオーバーロードすればよかったんですね.
412 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:23:09 ] __slots__ とどこが違うの?
413 名前:410 mailto:sage [2009/07/15(水) 09:58:48 ] >>409 的なことはやらないから忘れてた
414 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 10:18:58 ] >>412 何か文句でも?
415 名前:406 mailto:sage [2009/07/15(水) 13:29:32 ] いやPythonから書き込みたいんだけど
416 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 13:32:20 ] >>415 spam業者乙!
417 名前:デフォルトの名無しさん [2009/07/15(水) 13:34:45 ] 過去スレに(r
418 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 13:51:46 ] from cookielib import CookieJar cj = CookieJar() cj.extract_cookies(res,req) cj.add_cookie_header(req)
419 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 15:44:39 ] これだな pc11.2ch.net/test/read.cgi/tech/1226830195/14
420 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 15:52:29 ] フォルダの中にあるtxtファイルを全て読み込むことってできますか?
421 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 15:54:12 ] >>420 import glob for i in glob.glob('*.txt'): d = open(i).read()
422 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 15:58:45 ] >>421 ありがとうございます os.walk使って無理矢理やってました
423 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 16:02:41 ] glob() はサブディレクトリ見に行かないぜ
424 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 16:54:45 ] paverいろいろおすすめ from paver.path import path for f in path('.').walkfiles('*.txt'): print f
425 名前:デフォルトの名無しさん [2009/07/16(木) 05:05:09 ] くそう・・・なんで俺のコードじゃpickleが使えないんだ・・・ もう寝る
426 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 15:49:26 ] gzip解凍できねえぞくそお
427 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 15:59:39 ] ttp://blog.kzfmix.com/entry/1187087731 これだ!
428 名前:デフォルトの名無しさん [2009/07/16(木) 16:49:39 ] 文章の中から単語の数かぞえんのどうやんの? countを使ってどうやんのさ
429 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 16:56:15 ] wc --words
430 名前:デフォルトの名無しさん [2009/07/16(木) 17:16:57 ] pythonって何のために使うの?
431 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 17:51:28 ] 汎用です
432 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 21:46:48 ] 夜のお供に使ってみるか・・・
433 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 02:41:08 ] perlをわすれるため
434 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 07:14:30 ] 雑用を処理させていますよ。 gMailを読んでDBに格納しておいて月末にExcelにまとめさせるとか
435 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 16:20:12 ] グラフ描くのに色々モジュールあるみたいだけど何がいいかな
436 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 18:56:36 ] 今os.systemを使ってUNIXコマンドを組み込んでるんですが bashとかでお馴染のリダイレクトやパイプを Pythonでも使いたいのですが可能ですか?
437 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 19:02:23 ] os.system は system(3) 経由 sh 経由でコマンドを起動するはずだからできると思うが、 subprocess モジュールを勉強したほうがいいと思う。
438 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 19:13:07 ] >>437 。。。すまんm(_ _;)m 勘違いして別のコマンド実行してたみたいです。。。 確認したらちゃんとできました。 回答ありがとうございましたm( __ __ )m
439 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 19:44:54 ] しかし乗り換えるにはsubprocessは面倒くさい罠
440 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 19:53:55 ] popen2.popen3()
441 名前:デフォルトの名無しさん [2009/07/18(土) 05:44:16 ] 4コアでガンガンまわしてるつもりになってても、 実は1コアしか動いていないのが悲しい スタックレスなんとかをかんとかすればアレなのかな?
442 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 06:57:04 ] つmultiprocessing スレッド回すよりは好きだわ
443 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 10:58:43 ] unko = [1, 3, 5, 7, 11, 13] for i in unko: if i < 10: unko.remove(i) for i in unko: print str(i) 3 <---? 7 <---? 11 13 なして?
444 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 11:19:11 ] ループ中に回してるリストをいじるのはやめましょうという話 どうしてもやりたければ for i in unko[:]: unko.remove(i)
445 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 11:21:12 ] リストについて舐める操作をしながら、そのリストに副作用が起きる操作をしてるから。 リストの1番めを見て、1を削除。その次はリストの2番めを見るので、1番めに入った 3は無視されちゃう。
446 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 17:05:09 ] unko.remove(i) ワロス
447 名前:デフォルトの名無しさん [2009/07/18(土) 21:28:25 ] ちんこ
448 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 22:13:35 ] フルーチャートを書けばすぐわかることだろうに
449 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 22:14:17 ] フローチャートを書けばすぐわかることだろうに
450 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 22:17:00 ] flo'u tʃɑ':(r)t
451 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 00:14:08 ] クラスの中で変数を宣言したいのですが、 self.unko = 0 で、いいんでしょうか?
452 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 00:15:18 ] はいそれで大丈夫です 外部アクセスを防ぎたい場合はself.__unkoとしてください
453 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 00:31:21 ] ありがとうございます! 外部アクセスを防ぐ、ということは宣言した後予期せぬ状況で中身が書き換わるのを防ぐ、ということでしょうか?
454 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 01:45:38 ] no
455 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 02:03:46 ] うーんどういうことなんでしょう。 内容を事ある毎に変化させていくパラメータとして使いたいので普通に宣言すれば良いと思っているのですが、それで問題ないでしょうか?
456 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 02:18:34 ] no
457 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 02:21:19 ] >>455 余計なことを言って混乱させてすいませんでした self.__unko のように先頭に__を付けると外部アクセスのできないいわゆるprivate変数の様な感じになります
458 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 02:36:23 ] C言語で言うとstaticをつけたりつけなかったりという話なのでしょうか?
459 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 04:27:42 ] no
460 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 20:34:26 ] python楽しいお
461 名前:デフォルトの名無しさん [2009/07/21(火) 22:20:03 ] python 面白いよね ショボイのしかまだ書けないけど、(きっと今後もw) 日々の作業が楽で、楽しくなるようなコードが書けるまで勉強するのだ インタラクティブシェルだけで勉強してたら、ショボーンだけど、ファイルに書き出しとかになると ちょっとプログラムって感じで楽しい
462 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 11:39:00 ] Python、神のごときライブラリが色々あって面白いすね。
463 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 12:51:38 ] python組み込みのhash関数って完全ハッシュ関数ですか? 衝突しませんか?
464 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 14:25:58 ] >>462 新参の俺にbeautifulsoup意外詳しく
465 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 15:00:29 ] _mssql、VisualBasic.netでADO.netとか何だったんだろうと。 pyExcelerator、Excelネイティブのファイルが簡単に出来たですよ。 reportlab、PDFが(ry Barcode for Python、bzr branch lp:barcodesforpython/beta、バーコードが(ry 最近、データベースからの書類生成は全部Pythonで書いてます。
466 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 16:45:56 ] searchとmatchの挙動の違いを詳しく解説してくれる方いませんか?
467 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 16:52:14 ] re.match("foo", s) == re.search("\Afoo", s)
468 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:29:48 ] match(r'foo',unko)のようにrオプション付けるとどういう効果があるのでしょうか?
469 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:34:06 ] www.python.jp/doc/release/lib/module-re.html
470 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:34:22 ] >>468 www.python.jp/doc/release/tut/node5.html#SECTION005120000000000000000
471 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:43:29 ] findを忘れないで
472 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 19:00:55 ] よくわかりました! ありがとうございます''
473 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 23:42:42 ] >>463 なわけないだろ。
474 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:00:30 ] >>473 明確に記載されている資料があればお願いします
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についての質問です。 何らかのイベントが起きたときにフレームの内容を 丸ごと入れ替えるようなプログラムはどの用にする ば書くことができますか?