1 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 06:33:45 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、 お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>980 辺りで 前スレ くだすれPython(超初心者用) その2 pc11.2ch.net/test/read.cgi/tech/1218155094/ 関連スレ Pythonのお勉強 Part31 pc11.2ch.net/test/read.cgi/tech/1230821097/
266 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 09:31:50 ] Lisp って基本構造は (A B C) しかなくて (A B (a b c)) になってたり (A (a b c) C) になってたり (A (i j k) (a b (x y z))) になってたりするだけだと思う それが分かってやっと読めるようになったかもって感じ 書けないけど
267 名前:265 [2009/02/04(水) 10:55:42 ] すんません,話しの流れをぶったぎって. p1/__init__.py p1/m1.py のようにパッケージ p1 とモジュール m1 を作ってます. import p1 で p1/__init__.py が呼び出されます. import p1.m1 でモジュール m1 が使えます. m1 の中で単に一行 v1 = "abc" と書くと, v1 は m1 というモジュールの中でのグローバルスコープになりますよね? そして名前空間としては p1.m1 にあって, p1.m1.v1 という名前で参照することができます. 普通は __init__.py では変数の定義など書かないのかもしれませんが, p1/__init__.py で v2 = "def" と書いたとすると,それは 度のスコープになるんでしょうか? 実際にやってみると名前空間としては p1 の下にあるので p1.v2 として参照できます. このとき p1.v2 のスコープは パッケージをインポートしたモジュールから見て どうなるのでしょうか? C++メインだったので,名前空間はファイルシステムとは関係なく 明示的に指定するということに慣れているのと,パッケージという システムが理解できていません.
268 名前:265 [2009/02/04(水) 11:13:04 ] やはりPythonにおけるパッケージシステムの概念が 分かっていなかったようです.パッケージシステムと import において何が内部で行われているのかについて 勉強し直してきます・・・ www.python.org/doc/essays/packages.html
269 名前:デフォルトの名無しさん [2009/02/04(水) 11:30:45 ] みんなのpythonを読んだ後って初めてのpythonを読む必要ってありますか?
270 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 11:32:18 ] ないです。クックブックがいいよ
271 名前:デフォルトの名無しさん [2009/02/04(水) 12:05:41 ] 同じ要素の繰り返しからなるリストを生成する シンプルな記述方法はあるでしょうか? 123,5 という入力から [123,123,123,123,123] というリストを得たいと思っています。 ジェネレータで5回生成するようにもしてみたのですが ワンライナーでほんもの?のリストを得たいです。
272 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 12:10:05 ] [123] * 5
273 名前:デフォルトの名無しさん [2009/02/04(水) 12:10:19 ] も、もしかして 5 * [123] で終わりっすか? もしそうなら死にたい。 そんなことに気付かなかった自分に絶望した。
274 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 12:10:42 ] 鬱だ
275 名前:デフォルトの名無しさん [2009/02/04(水) 12:30:50 ] MySQLdbで辞書のキーと値に基づいて自動的に SELECTクエリを発行してくれる関数ってあります? たとえば {"col1":"111", "col2":"222"} から "SELECT myid FROM mytable WHERE col1="111" AND col2="222" を生成してくれれば便利だなと思うのですが。
276 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:48:14 ] >>266 Lispの基本要素はS式だろ
277 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:51:24 ] [1,2,3,4] * 4 がどうして[1,2,3,4,1,2,3,4,1,2,3,4]になるんだろうね ベクトルの定数倍になってほしい
278 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:08:45 ] ベクトルじゃなくてシーケンスだからしょうがない
279 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:09:58 ] a * 4 = a + a + a + a こういう事だと思う。 文字列とか連結リストオブジェクト同士を足すとそうなる。
280 名前:デフォルトの名無しさん [2009/02/04(水) 17:23:59 ] 'SELECT myid FROM mytable WHERE col1=%(col1) AND col2=%(col2)' % vars()
281 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:29:34 ] >>277 >>> map(operator.mul, [1,2,3,4], [4]*4) [4, 8, 12, 16]
282 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:50:48 ] 和とかスカラーの積の場合は単純だけど、 リスト*リストだと内積をとるべきなのか外積をとるべきなのか迷うなあ いやベクトルの要素同士を掛けてベクトルを返すというのもありなのか 行列を考えるとさらに面倒だな やはり現状のが自然か
283 名前:デフォルトの名無しさん [2009/02/04(水) 18:30:01 ] ttp://www.iba.t.u-tokyo.ac.jp/~iba/C/lisp.html ttp://www.atmarkit.co.jp/fcoding/articles/gauche/01/gauche01a.html ttp://www.atmarkit.co.jp/fcoding/articles/gauche/01/gauche01b.html ttp://www.atmarkit.co.jp/fcoding/articles/gauche/01/gauche01c.html ttp://www.atmarkit.co.jp/fcoding/articles/gauche/01/gauche01d.html ttp://www.atmarkit.co.jp/fcoding/articles/gauche/01/gauche01e.html
284 名前:デフォルトの名無しさん [2009/02/04(水) 20:50:22 ] プログラムでいう「受ける」とはどういう意味ですか?
285 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 20:58:45 ] 典型的には関数やメソッドなどの戻り値(返り値)を変数に代入することです >>> 'a,b,c'.split(',') # メソッドの返り値を受けずに捨てている ['a', 'b', 'c'] >>> result = 'a,b,c'.split(',') # 返り値を受ける >>> result ['a', 'b', 'c']
286 名前:デフォルトの名無しさん [2009/02/04(水) 21:47:19 ] _/ ̄ ̄~\-、 rイ/ ̄ ̄ ̄\ 丶丶 {ミ/// // 丶 丶| | Y LLハLLハLL丶 || | | V● ィ●丶 6)| |f⌒ (_ ⌒i イ | || トェェェイ | | し /||\  ̄ ノ| し彡 `ノノ//`ー―-′丶ヾ\ /| // (/ ヽ___/ \ノ
287 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:35:54 ] 内積の求め方ってこれであってますか? reduce(lambda x,y: x+y, map(operator.mul,[1,2,3],[4,5,6]))
288 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:59:26 ] それで合ってるけど sum(map(operator.mul, [1,2,3], [4,5,6])) でもいいよ
289 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 02:04:52 ] numpy.dot
290 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 03:16:32 ] ttp://www.python.org/dev/peps/pep-0008/の定数の項で Constants Constants are usually declared on a module level and written in all capital letters with underscores separating words. Examples include MAX_OVERFLOW and TOTAL. とあるけど、module levelって何のこと?
291 名前:デフォルトの名無しさん [2009/02/05(木) 11:47:54 ] >>285 「例外クラスを受ける」の「受ける」も同じことが言えますか?
292 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 12:09:47 ] >>291 それは多分「try節で送出された例外をexcept節で捕捉する」の意。
293 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:50:21 ] >>287 reduce(operator.add,map(operator.mul,[1,2,3],[4,5,6]))
294 名前:デフォルトの名無しさん [2009/02/05(木) 17:16:38 ] >>292 ありがとうございます。 では、「例外を受けるクラス」はどういう意味ですか?
295 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 17:33:25 ] tryが書いてあるメソッドを持つクラスのことです
296 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 17:45:21 ] 英語講座だか日本語講座になってきたな
297 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 18:12:46 ] ttp://ana.20ch.net/s/ana20ch16582.jpg
298 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:49:13 ] ある科学計算をさせるpackage(以降pyhoge)を作成しようと思っているんですが、 その計算で使用する数値テーブルも同梱しようと思っています。 .pyの中にべた書きするのは大変なので、 table.datのようなASCIIファイルを同梱する予定です。 このような場合、setup.pyにはtable.datをどのように処理させればいいのでしょうか。 www.python.org/doc/2.5.1/dist/node13.html を読むと.py以外の配布物も含められるようなのですが、 site-packages/pyhoge/以下を指定する方法はあるのでしょうか。 またできたとして、site-packages/pyhoge以下のファイルを、 .pyの中から指定させるようにするには、.pyをどのように書いておけばいいでしょうか。
299 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:05:49 ] 過去ログ読まずに質問して申し訳ないがRubyのpとかppみたいなオブジェクトの中身を表示してくれる関数ってPythonにはあるの?
300 名前:デフォルトの名無しさん [2009/02/05(木) 23:11:35 ] www.python.org/doc/2.5.1/dist/node12.html
301 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:12:31 ] >>299 ありますよ
302 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:14:48 ] >>301 すんません、関数名を教えてください。後はぐぐります。
303 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:37:17 ] >>302 p? docs.python.org/library/functions.html?highlight=repr#repr docs.python.org/library/repr.html#module-repr pp? docs.python.org/library/pprint.html#module-pprint
304 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:41:36 ] >>303 dクスです。
305 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 12:13:21 ] class Hoge(object): def __init__(self, arr): self.arr = arr みたいなclassを作るときに、arrがlistだったりすると、 >>> arr = [1, 2, 3] >>> h = Hoge(arr) >>> h.arr [1, 2, 3] >>> arr[0] = 10 >>> h.arr [10, 2, 3] のように中身が変わることがありますよね。 C++のように値渡しにしておきたい場合は、 copy.copyを多用すればいいんでしょうか。
306 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 12:29:31 ] 一般的に、型チェックはどの程度真面目にやるものなのでしょうか。 もちろん用途によるのですが、Python使いの人の流儀としての一般論です。 正しい型を引数に渡すかはユーザ次第と考えるのか、 ユーザが間違った引数を渡したときは丁寧に教えてあげるのか。
307 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:15:12 ] >>305 self.arr = list(arr) >>306 的な意味も兼ねる。
308 名前: ◆UNKOVIP9RM [2009/02/06(金) 15:50:54 ] ttp://itpro.nikkeibp.co.jp/article/COLUMN/20090203/324115/ ruby厨・・・
309 名前: ◆UNKOVIP9RM [2009/02/06(金) 15:55:21 ] なんでpythonの勉強会で円陣を組まないのかが全く分かりません。 勉強会はエンジンを組むべきだし。
310 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 19:12:40 ] s = "1 2 3" f = float(s.split()) みたいにやって、fが[1, 2, 3]となるようにしたいのですが、 どのような方法があるでしょうか。
311 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 19:53:46 ] ここにあるソースをパクって、データベースにはMySQLで作ったDBにはアクセスできるようになったんだけど www.etemonkey.com/chibilog/archives/2009/01/pythonmysql.php これをもう一歩進化(?)させて、何かのブラウザでやりたいんだけど、どーやってやるの? MySQLに動物のDBがあったとして、ブラウザのテキストボックスに「象」って入れて実行ボタンおすと その下に、象のデータがピコーンって表示される感じにしたい
312 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:16:23 ] >>> s = "1 2 3" >>> [float(i) for i in s.split()] [1.0, 2.0, 3.0] >>> map(float, s.split()) [1.0, 2.0, 3.0] >>> [int(i) for i in s.split()] [1, 2, 3] >>> map(int, s.split()) [1, 2, 3]
313 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:13:04 ] ちぃ map もう覚えた
314 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 00:18:04 ] Pythonって、for文の中でreturnしても大丈夫なんだっけ?
315 名前:デフォルトの名無しさん [2009/02/07(土) 00:20:26 ] ok yieldもok
316 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 00:22:32 ] thanks!
317 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 01:10:09 ] jk
318 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 01:19:08 ] なるほど ありがとうございました
319 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 01:26:21 ] IDLEからF5で実行して右上の×で終了させると ウィンドウだけじゃなくIDLEも終了しちゃうんだけどどうすればいいんですか?
320 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 03:42:52 ] 再起動
321 名前:デフォルトの名無しさん [2009/02/07(土) 09:07:54 ] Python使いの諸君! 速く2chでタブが表示されるように左翼活動を開始せよ!
322 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 11:40:32 ] >>321 言ってる意味が分からない
323 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 11:43:12 ] 2ちゃんでタブのインデントが崩れないようにしようぜ、と言ってるのかと
324 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 11:47:49 ] それはHTMLの仕様上どうしようもないような pre使うとAAに影響出るし 2chの規模を考えると埋め込みコードとかの重そうな機能追加は望み薄
325 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 12:15:16 ] Python使いの諸君! 速く2chでタブが表示されるように左翼活動を開始せよ!
326 名前:デフォルトの名無しさん [2009/02/07(土) 12:39:22 ] thread.start_new_thread(func,()) で生成したスレッドの中でさらにスレッドを作ろうとするとエラーになります。 これは仕様なのでしょうか
327 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 12:52:28 ] 投稿の行の先頭に #! があったらそれ以降はそのレスだけ pre適用してもいいんじゃね?
328 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 12:53:54 ] いらん機能追加して脆弱性が生じても困るので勘弁。
329 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 12:57:35 ] すみません。仕様なのでしょうか。
330 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 13:14:14 ] >>326 >エラーを解決したいときはエラー表示や環境を略さずに書き込んで下さい。
331 名前:319 mailto:sage [2009/02/07(土) 13:55:08 ] 説明不足でした 実行してるファイルだけ終了したいんだけどどうすればいいんですか?
332 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 14:20:39 ] 複雑だと思うならつかわなきゃいいんじゃねーの? なんでアホはあるもの全部使わなきゃ気がすまねーの?
333 名前:デフォルトの名無しさん [2009/02/07(土) 14:30:29 ] Windows 版の Python で pydoc どうやって起動すんの? python.exe -m pydoc なの?
334 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 14:58:16 ] try-exception以外に変数が存在するかどうかをテストする方法はありますか?
335 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:03:45 ] こんなん? >>> a = 1 >>> 'a' in vars() True >>> 'b' in vars() False
336 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:15:10 ] in locals()
337 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:17:14 ] おおそんな手が! でもインスタンス変数に対してはどうやったら・・ blenderが必ずしもすべてのインスタンス変数を生成しているわけではないので アクセスするとトラップばっかりなんですよね。 嫌らしい事に条件によって生成されたりされなかったりなので これを回避しようとするとtry-exceptだらけになってすごいことになる。 とりあえずvars()を調べてみます。 任意のインスタンスのインスタンス変数にも適用できるスマートな方法があったら教えて頂きたく・・
338 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:27:59 ] >>> 'sort' in dir([1,2,3]) True >>> 'read' in dir([1,2,3]) False 間違ってるかもしれないからエロい人のレスも待ってね
339 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:34:31 ] ああボケてた。>>338 はスルーで
340 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:59:56 ] >>337 ありますよ
341 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:06:08 ] >>337 getattr
342 名前:341 mailto:sage [2009/02/07(土) 16:06:43 ] hasattrだった
343 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:07:49 ] getattr(インスタンス,メソッド,無かった場合に返す値) 無かった場合に返す値が定義されてないとエラー返す。
344 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:17:29 ] >>342 ばっちりですた。 これでいってみようと思います。ありがとうございました! if hasattr(aMesh , 'dgre'): print aMesh.dgre else: print '普通セットされないよ'
345 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 18:52:59 ] print getattr(aMesh , 'dgre', '普通セットされないよ')
346 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:48:33 ] >>319 Tkinterのアプリを作っている? もしそうなら IDLE からではなく別途実行するのがいいかと。 IDLE も Tkinter で作られていて 自作アプリが異常終了したりすると IDLE も巻き込まれて死ぬことが多い。 予め開いたコマンドプロンプト(DOS 窓)から実行するのがオヌヌメ。 (例えば Windows だと .py のダブルクリックでも実行できるけど 異常終了したときエラーメッセージを読む前に DOS 窓が閉じてしまうから。)
347 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:56:46 ] なるほど ありがとうございました
348 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 21:56:00 ] universal feed parser使ってる人いる? パースした結果を普通のpythonオブジェクトに変換できないかな? パース結果が<class 'feedparser.FeedParserDict'>で戻ってくるのでjsonにうまく変換できない。。。
349 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:16:11 ] >>348 そのFeedParserDictとやらは新しいpythonならdictを継承してるから 「普通のpythonオブジェクト」として振舞うはず。 しかし、アイテムとして持ってるものの中でjsonでシリアライズできないものは 全て自前で変換コードを書く必要がある。 docs.python.org/library/json.html?highlight=JSONEncoder
350 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:43:33 ] >>349 うん。dictを継承してるから普通にシリアライズできると思ったんだが出来なかったので 何かやり方があるんじゃないかと思って聞いてみた。 まあ現実に出来てないんだから変換コードを書くしかないんだろうな。 踏ん切りついた。ありがとう。 ちなみにPython2.5でjsonライブラリは pypi.python.org/pypi/python-json/3.4 のを使った。
351 名前:350 mailto:sage [2009/02/08(日) 14:22:17 ] 解決したので自己レス。 どうやらjsonライブラリがよくなかったみたい。 deron.meranda.us/python/demjson/ をつかったら 特に変換コードを書かなくてもシリアライズできた。
352 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:22:19 ] そういうことがあるだな。
353 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:40:58 ] なるほど ありがとうございました
354 名前:デフォルトの名無しさん [2009/02/08(日) 16:38:35 ] a = {"123":"abc"} str(a) で出力される文字列が普通にjsonだったらいいのに・・・
355 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:01:22 ] JSONって"でないとだめなの? 'でもいける?
356 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:02:52 ] だめですよ
357 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:40:14 ] SocketServerを使ってサーバーを作ったのですが今接続しているクライアント全てに同じメッセージを送る方法が分かりません。 ご教示のほどよろしくお願いします。
358 名前:デフォルトの名無しさん [2009/02/08(日) 22:30:20 ] >>355-356 だよな。 読む方は下手にevalすると危ない気もするけど、 書く方はてがるに str() でJSONになればべんりなのにな。
359 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:42:36 ] a = [{"123":"abc"}, 4, 5, {"hage":"fuga",'suka':'pontan',"piyo":[123,456]}] str(a).replace("'",'"') ↓ [{"123": "abc"}, 4, 5, {"suka": "pontan", "hage": "fuga", "piyo": [123, 456]}]
360 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:44:03 ] >>> a = {"12'3":"ab'c"} >>> str(a).replace("'",'"') '{"12"3": "ab"c"}'
361 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:46:19 ] >>> a = {"12'3":"ab'c"} >>> str(a) '{"12\'3": "ab\'c"}'
362 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:12:31 ] おもしろいやつらだなお前らは
363 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:19:38 ] でもこれだとTrue -> true, False - > false, None-> 'none' ができてねえぞ
364 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:22:43 ] 俺のやることにいちいち口を出さないでほしい。 ここは初心者スレなのだから間違えたとしても許される。
365 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:23:44 ] json.dumpsが標準になったんだから使えよ
366 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:32:55 ] なぜ昔からあるstrを使わない?