1 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 11:20:45 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、 お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>950 辺りで 前スレ くだすれPython(超初心者用) その4 pc12.2ch.net/test/read.cgi/tech/1243160751/ 関連スレ Pythonのお勉強 Part35 pc12.2ch.net/test/read.cgi/tech/1253535109/
577 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 17:19:29 ] print文の後ろに,が付くか付かないかで改行されるかどうかが決まるのでしょうか? 付けると改行されず、付けないと改行される、でよろしいですか?
578 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 17:21:19 ] >>577 はい。リファレンスマニュアルのprint文の箇所も参照してね。
579 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 17:27:25 ] >>578 ありがとうございます。 print 文がカンマで終了していない限り、末尾には文字 "\n" が書き出されます。この仕様は、文に予約語 print がある場合のみの動作です。
580 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 17:33:07 ] このようにprint文は特殊なので 3.0からは関数になります。
581 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 17:34:08 ] import math と from math import * とでは、 伝統や文化的な理由で どちらが推奨されるとかありますか?
582 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 17:55:00 ] >>581 一般的には前者推奨。 後者は小規模スクリプトかインタラクティブシェルで使うぐらい。
583 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 18:09:16 ] >>582 ありがとうございます。
584 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 21:26:49 ] Windowsで 〜.py(ttp://codepad.org/tXDoThvC)をダブルクリックした場合 これを実行すると、コマンドプロンプトが一瞬で閉じてしまいます。 (コマンドラインからpython 〜.pyとする文には大丈夫ですが。) 最後に何かキー入力を受けるまで画面を閉じないようにする 1文などありませんでしょうか?
585 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 21:28:32 ] import os os.system('pause')
586 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 21:44:31 ] >>585 ありがとうございます! まさにこれがしたかったです。
587 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 21:48:30 ] codepadでは通るこのコード ttp://codepad.org/6ggvcFhC が Python 2.6.4で、エラーになります。 エラーメッセージは ttp://codepad.org/3o9Vqzu4 です。 どうしてでしょうか。。。
588 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 22:20:43 ] >>587 同じディレクトリに random.py があるんじゃね?
589 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 22:48:06 ] >>588 それでした。 どうもありがとうございます。
590 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:21:37 ] a=[3,7] b=a a=a+[2] を実行すると b は [3,7] a は [3,7,2] となる。他方 a=[3,7] b=a a.append(2) を実行した場合には a も b も [3,7,2] である。 この違いにびっくりしました。 Pythonは基本的には参照を渡すのか、コピーを渡すのか、 どっちが多いですか?
591 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 23:34:32 ] >>590 まず、Pythonの変数は全部参照だから、「渡す」のは全部参照。 コピーを作ってそのコピーの参照を渡すのか、元の参照を渡すのかの違いでしかない。 a = [3,7] # [3,7] というリスト (A) を作って、その参照を a に入れる b = a # a に入っている (A) への参照を b に入れる a = a + [2] # a + [2] で、 (A) と [2] を連結した新しいリスト (B) を作る。そしてそれを a に代入する。 a.append(2) # a が参照しているリスト (A) に、 2 という値のオブジェクトへの参照を追加する。 + という演算子が「新しいオブジェクトを作る」という動作をしている。 # immutable な型なら、+ 演算子で新しいオブジェクトを作らずに既存のオブジェクトを使いまわすのもアリ
592 名前:>590 >505 mailto:sage [2009/12/27(日) 23:39:21 ] >>591 あー、なるほど! 非常に分かりやすい解説ありがとうございます。 どうにもC++で型宣言を意識していたため、よく分かっておりませんでした、 ありがとうございました。
593 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 08:08:06 ] ばっさばっさとさばいておりますな。初心者スレにふさわしい。
594 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 10:17:58 ] ttp://codepad.org/tdwJTVZ8 この挙動も > この不自然な結果は、Pythonが a=[[0]*3]*3 を処理するのに (内部で) > t=[0]*3 > a=[t]*3 > とやった為に発生したと考えられる。 > この問題は次のようにすれば回避できる。 > a=[0]*3 > a[0]=[0]*3 > a[1]=[0]*3 > a[2]=[0]*3 こう説明がありました。 うーん。 つまり[0]*3は新しく別のリストを作っており、一方 a=[t]*3は[t, t, t]だから その場に存在しているリストは a==[t, t, t]とt==[0, 0, 0]の2つだということですか?
595 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 10:22:35 ] [0] * 3 は [0, 0, 0] という新しいリストを作る [t] * 3 は [t, t, t] という新しいリストを作る 0 は immutable だから、同じオブジェクトの参照がたくさんあっても問題にならないけど、 リストは mutable だから、同じオブジェクトの参照がたくさんあると、一つを書き換えると他からの 参照にも影響を与える。
596 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 10:44:34 ] >>595 ありがとうございます。 ttp://codepad.org/KWHJEbWb これでxの値を7から-5に変更したら、 tは[x, x, x]で aは[t, t, t]なので t, aが共に変更されるのではないかと思うのですが、 実際は変更されません。 これは何故でしょうか。
597 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 11:15:04 ] >>596 これで納得してくれるかは怪しいけど a = 1 # 名前 a は 1 を指す a # 名前 a を評価する。評価して得られた値は 1 b = [a, a] # 名前 b は [a, a] を評価して得たリスト [1, 1] を指す a = 2 # 名前 a は 2 を指す b # 名前 b は相変わらず [1, 1] を指したまま あと a = 1 は「名前は a を指す」って代入文であって数学の等式じゃないから気をつけて a = 1; a = 2 なんてのも Python では成立する
598 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 11:29:24 ] >>596 リストはオブジェクトへの参照のリスト。 他の言語で参照というと変数への参照の場合があるけど、Pythonの場合は変数への参照は無い。 x = 7 # 7 という値のオブジェクト (A) を用意して、x が (A) を参照するようにする。 [x] # x が参照している (A) というオブジェクト一つを要素にしたリスト [ (A) ] を作る。このオブジェクトを(B) とする。 t = [x] * 3 # (B) を3回繰り返したリストのオブジェクトを作る。これを (C) とする。 (C) は [(A), (A), (A)] になる。 t に (C) への参照を代入する。 [t] # t が参照している (C) というオブジェクト一つを要素にしたリスト [ (C) ] つまり [ [ (A), (A), (A)] ] を作る。このオブジェクトを (D) とする。 a = [t] * 3 # (D) を3回繰り返したリストのオブジェクト [ (C), (C), (C) ] をつくる。このオブジェクトを (E) とする。 x = -5 # -5 という値のオブジェクト (F) を用意して、 x が (F) を参照するようにする。 (A) の値は変更されない。 結果として、 a が参照しているオブジェクト (E) の値は [(C), (C), (C)], t が参照しているオブジェクトは (C), (C) の値は [(A), (A), (A)]. (A) の値は 7 のまま。
599 名前:591=595=598 mailto:sage [2009/12/28(月) 11:46:52 ] ちなみに、>>590 はどの言語の経験があるの? ベースとなる言語があれば、その言語で言えばどういう意味か説明に使える。 >>596 を Javaで書き換えると、 Integer x = Integer.fromInt(7); // x = 7 ArrayList<Object> t = new ArrayList<Object>(); for (int i = 0; i < 3; i++) t.add(x); // t = [x] * 3 ArrayList<Object> a = new ArrayList<Object>() for (int i = 0; i < 3; ++i) a.add(t); // a = [t] * 3 x = Integer.fromInt(-5); // x = -5 Javaが判れば、xを書き換えてもaやtに影響ないのが判ると思う。
600 名前:599 mailto:sage [2009/12/28(月) 11:52:55 ] ごめん、 Integer.fromInt は Integer.valueOf の間違い。 JavaはPythonのオブジェクトを説明するのには向いているけど、 ここ5年以上マトモに使えてないので、文法エラーやメソッドのミスには目をつぶってくれ。 ちなみに、Pythonのオブジェクトを説明するのにJavaが向いている理由は、 整数と文字列がimmutableだから。 x = 7 y = 7 で x is y の結果が言語で規定されていない理由は、 Integer x = Integer.valueOf(7); Integer y = Integer.valueOf(7); x == y の結果が言語で規定されていない理由と同じ。
601 名前:590 mailto:sage [2009/12/28(月) 11:54:47 ] みなさまありがとうございます。 私はC++プログラマです。 そのため変数の型宣言がないPythonを学び、 ところどころで困惑してお世話になっております。 とても長くなったため私の現在の認識を自分でながめるために書き出してみました。 ttp://codepad.org/MJaNWykh Javaの経験はありませんが、ご教示いただいたJavaコードはC++な見方で 推測して拝見しました。 そことのアナロジーで解釈しても この1.〜3.の解釈は正しいと思うのですが、 そうだとしますと 4.でt, aが変更される理由がまた分からなくなります。 どうして4.だけ変更されるのでしょうか?
602 名前:600=methane mailto:sage [2009/12/28(月) 12:12:25 ] >>601 C++にはJavaのObject型みたいなのがないから、void*で代用するけど、こんな感じになる。 (キャストは省略) x = 7 t = [x]*3 a = [t]*3 は void *x = new int(7); vector<void*> *t = new vector<void*>; for (int i = 0; i < 3; ++i) t->push_back(x); vector<void*> *a = new vector<void*>; for (int i = 0; i < 3; ++i) a->push_back(t); ここまでで初期状態。 じゃぁ、初期状態から t = 3.14 を C++ でいうと、 t = new double(3.14); t が新しく別のオブジェクトをポイントするようになるだけで、 a[0]は、もともとtが指していた [7,7,7] を差し続ける。 つぎに、初期状態から a[0][0] = -5 を C++ でいうと、 (*((*a)[0]))[0] = -5; t というポインタが指している vector オブジェクトの先頭要素を -5 に書き換えている。 で、tもaもポイントしている先は変わらないまま、tがポイントしているvectorオブジェクトの先頭要素だけを書き換えているので、 t と a の両方が影響を受ける。
603 名前:methane mailto:sage [2009/12/28(月) 12:21:08 ] C++プログラマなら、Pythonの変数は全部C++でいうポインタ変数で、オブジェクトは全部 new やその他の手段でヒープ上に取られるという理解をすると良いと思う。 「参照」と呼んでいるのは全部ポインタのことで、 int a = 3; int &x = a; int *y = &a; でいうところの a のような、変数と値が完全に束縛された存在が無い。 あとは、 a[0][0] = -5 がリスト「オブジェクトに対する変更」なのにたいして、 t = -5 がオブジェクトは全く変更されず、「ポインタ変数が別のアドレスを指すようになる」 という違いを把握できれば、一気に壁を突破できるはず。
604 名前:590 mailto:sage [2009/12/28(月) 12:27:42 ] >>602-603 methane氏 C++に例えてくださりありがとうございました。 現在必死に読んでおります。
605 名前:590 [2009/12/28(月) 12:45:51 ] 値は全て無名であると考えてよろしいですか?
606 名前:methane mailto:sage [2009/12/28(月) 12:52:35 ] >>605 コード上に出てきた変数名と密結合しているオブジェクトが存在しないという意味であれば、すべて無名ですね。 def foo(): pass bar = foo del foo したら、foo()できなくてbar()できるし、 class もモジュールもパッケージも、名前とオブジェクトの関係は全部同じです。
607 名前:590 mailto:sage [2009/12/28(月) 13:10:02 ] おかげさまで理解できたと思います。 つまり ttp://uproda.2ch-library.com/lib200590.zip.shtml こんなことになっているんですね。 (Wordファイルをzipで圧縮したもので DLキーはpythonです。) この理解でよろしいでしょうか?
608 名前:methane mailto:sage [2009/12/28(月) 13:31:10 ] >>607 5番が書きかけなのかな・・・ 4番までは完全に正解。Good Job.
609 名前:590 mailto:sage [2009/12/28(月) 13:35:52 ] >>608 5.番は t[0]=−5 以外は4.と相違点ありません。 a[0][0]=-5とt[0]=−5が等価であるという事を言いたかった図です。 どうでしょうか。
610 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 13:37:57 ] >>571 はダウト
611 名前:methane mailto:sage [2009/12/28(月) 13:42:55 ] >>609 あぁ、4からコピーした後編集するの忘れてると勘違いしてました。 a[0][0] と t[0] は等価で図は完全一致で正解です。 図だと判りやすいですね。
612 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 13:44:10 ] >>590 a=[3,7] b=a a=a+[2,5] print b print a a=[3,7] b=a a.append([2,5]) print b print a
613 名前:590 mailto:sage [2009/12/28(月) 13:45:22 ] >>611 これでまた一つ壁を越えられた気がします。 methane氏、諸先輩方 どうもありがとうございました。
614 名前:590 mailto:sage [2009/12/28(月) 13:50:02 ] >>612 今となっては>>590 の挙動についても納得しました。 aとbが同一の値(リスト)を指しているので、 ttp://codepad.org/btaagIKq こんな挙動になるわけですね。
615 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 14:03:43 ] ぬるぽ
616 名前:デフォルトの名無しさん [2009/12/28(月) 18:57:49 ] ファイルのMD5ハッシュやSHA1ハッシュを表示するPythonスクリプト - MoreslowlyWiki ttp://www.moreslowly.jp/mw/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81 %AEMD5%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E3%82%84SHA1%E3%83%8F%E3%83%83%E3 %82%B7%E3%83%A5%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8BPython%E3%82%B9 %E3%82%AF%E3%83%AA%E3%83%97%E3%83%88 このプログラムで、末尾で if __name__ == '__main__': ここで処理 としているのは何故でしょうか? このif文は何を意味するのですか?
617 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 19:07:03 ] モジュールとして他のファイルからimportされたときと それ自身単独で実行されたときの動作を区別出来る テストケース書くなり実行コードにするなり
618 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 19:11:29 ] >>617 おお、 なるほど。 ありがとうございました。
619 名前:デフォルトの名無しさん mailto:sage [2009/12/28(月) 23:14:44 ] >>618 御礼言われたら照れるなあ
620 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 01:40:07 ] 他人へのお礼で照れるとは
621 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 11:06:55 ] おなあ
622 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 11:08:59 ] りい
623 名前:デフォルトの名無しさん mailto:sage [2009/12/29(火) 23:22:19 ] 殿かよ
624 名前:デフォルトの名無しさん mailto:sage [2009/12/30(水) 11:02:47 ] 師走ですから
625 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 15:48:43 ] 本年はまことにお世話になりました 来年は初心者スレから卒業したい。
626 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 00:27:24 ] あけましておめでとう 手元の習熟メモを見ると、学んでみようと思い立ったのは2006年らしいのに、 まだまださっぱりだぜ俺…
627 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 20:58:54 ] Python 2.6.4の(reモジュール等の)標準モジュールの中に、 ある文字列が正規表現として文法的に正しいかどうかを調べる 機能があれば教えていただけますでしょうか?
628 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 21:20:02 ] re.compile()を通せばre.errorが飛んでくるだろ
629 名前:デフォルトの名無しさん mailto:sage [2010/01/01(金) 21:44:39 ] >>628 なるほど。 ありがとうございます。
630 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 16:50:58 ] これから1から勉強をはじめたいと思ってます 2.6と3.0と3.1とバージョンがありますが、3.x系は不評であると聞いております 互換性を気にしないのであれば3.x系から始めても問題ないでしょうか?
631 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 16:59:15 ] 問題ないけど、まだ3.xに対応したライブラリ少ないよ
632 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 16:59:46 ] 問題ないでしょう
633 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 17:11:44 ] ありがとうございます PHP4みたいになると困るので3.1から始めたいと思います 英語のドキュメント読みながらやってみます
634 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 17:38:10 ] バカがバカを育てるわけだな
635 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 17:42:51 ] それでも2to3はPHPのバージョンアップよりは楽だと思う…
636 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 22:00:50 ] 初めてのPython 第3版でPython3対応出来ますかね?
637 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 23:15:51 ] これから勉強するのに3からだとダメなの?
638 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 23:30:47 ] だめじゃないよ
639 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 04:47:01 ] だめじゃなくもなくないよ
640 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 05:13:40 ] 外部ライブラリ使うとちと怖い 言語コアのみなら無問題
641 名前:デフォルトの名無しさん [2010/01/10(日) 13:57:23 ] python.exeを起動してprint "hello world"と入力したのですが 以下の線の中の4行が表示されてしまいました ------------------------ File "stdin>", line 1 print "hello world" ^ SyntaxError: invalid syntax ------------------------ どなたか解決方法をご教授お願い致します
642 名前:641 mailto:sage [2010/01/10(日) 13:58:45 ] 自己解決しました print ("hello world")って書かないとダメだったんですね
643 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 14:11:10 ] Python3の日本語マニュアルってありませんか?
644 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 14:14:03 ] 英語くらい読めよ 中学生か?
645 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 14:21:30 ] 小学生です
646 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 14:41:41 ] ならしょうがない 英語もろくに読めないおっさんにならないように 中学校ではちゃんと英語勉強しろよ
647 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 14:49:37 ] 釣りや騙りも見分けられるよう 空気も読めるようになった方がいいな
648 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 14:52:18 ] >>647 いやそれは自分に言えよww 足りない頭で良く読め。 >>646 の書き方はわざわざ嫌みをつけた 書き方をしているうだろ? つまり分かってやっていることだってのが何で分からないの?
649 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 14:55:31 ] >>648 いやそれは自分に言えよww 足りない頭で良く読め。 >>647 の書き方はわざわざ嫌みをつけた 書き方をしているうだろ? つまり分かってやっていることだってのが何で分からないの?
650 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 16:14:46 ] RuntimeError: maximum recursion depth exceeded
651 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 16:27:12 ] >>644 ここプログラム板 英語の板じゃないよ
652 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 16:38:29 ] >>651 だから何? python3の日本語ドキュメントはあるの? ないなら、英語で読むしかないじゃん 馬鹿か?
653 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 16:39:10 ] じゃあ翻訳してやればおk
654 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 16:42:39 ] >>652 >>650 に答えろ
655 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 16:45:19 ] みんなどんだけストレス溜めてんだよ
656 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 16:46:10 ] >>646 書き込む所間違えてるよ 君が書き込むべき板は厨房板だと思うよ
657 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 16:47:45 ] なにこの低能力者板。 所詮P言語ユーザーなんてこんなレベルかwww
658 名前:648 mailto:sage [2010/01/10(日) 16:49:34 ] >>649 悔しいからってオウム返しは自閉症のやることだよw
659 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 16:53:47 ] ここまで643への回答ゼロ
660 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 17:00:46 ] まぁあれだよ、需要が無いから供給が無いんじゃないか?
661 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 17:03:59 ] >>643 まだ翻訳されてません
662 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 17:13:20 ] >>656 嫌味なやつだけど正論だろ 英語が読めないといろいろ苦労をする 暇な学生時代にもっと勉強しとけばよかった・・・
663 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 17:15:23 ] >>662 板違い
664 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 17:21:56 ] 日本製Rubyは英語読めない馬鹿もウェルカムだよー^^ 無理してPythonなんてやってないでみんなRubyにおいで
665 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 17:24:16 ] pythonのPyPIあたるもは、 Rubyには有るんですか?
666 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 17:39:39 ] >>665 日本語で
667 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 17:58:39 ] Ruby Gemsとか?
668 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 18:16:43 ] 差別発言をするような奴にろくな奴はいない
669 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 18:20:39 ] 最近キチガイが1人住み着いてから荒れてるな
670 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 18:21:22 ] >>664 英語日本語以前に、空気読めない人間はPythonに向いてないと思う。 特定の誰かに対した嫌みではなく。
671 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 18:42:34 ] >>668 差別発言?どこに? >>669 のことか?
672 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 18:47:35 ] くだスレを荒らすのはやめれ
673 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 19:43:22 ] >>672 くだスレが本当にくだらないスレになってる。
674 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 19:55:20 ] くだすれは'くだらないスレ'であって、 '救いようのないスレ'ではない。
675 名前:> 673 mailto:sage [2010/01/10(日) 19:58:56 ] >>674 いやそもそも、本当は 'くだらないスレ'じゃなくて 'くだらない質問をするためのスレ' じゃないのか? まあいいか。
676 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:00:19 ] Windows XP + Python2.6です。 変数strに文字列が代入されている状態で、 Windows XPのコマンドラインを実行することはできませんか? C言語だと system(str); って言うやつが相当します。
677 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:08:24 ] Cのsystemと完全に一致するかは知らないけど os.system(s)
678 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:09:03 ] あとstrは組み込み関数名なので避けたほうがいいかも
679 名前:676 mailto:sage [2010/01/10(日) 20:35:33 ] >>677-678 strを避けるべきとは知りませんでした。 ありがとうございます。 もう一つ、Windows XP + Python2.6上で。 3つの文字列str1, str2, str3があるとき、 あるプログラムX上から os.system(str1) os.system(str2) os.system(str3) これらを同時に実行し、3つとも終わったら Xを終了する といったことは実現可能でしょうか? 実現するとしたら、どうすればできますでしょうか? よろしくお願いします。
680 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:41:28 ] subprocess を使えばよろしい
681 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:48:02 ] >>679 subprocessモジュールを使う ただしsubprocessモジュールは引数として文字列ではなく argv形式のリストを取るので、もし元が文字列ならshlexあたりで分割汁 こんな感じだ import shlex, subprocess cmds = [shlex.split(s) for s in [str1, str2, str3]] children = [subprocess.Popen(cmd) for cmd in cmds] for p in children: p.wait()
682 名前:679 mailto:sage [2010/01/10(日) 20:57:46 ] >681 ありがとうございます。 教えを頼りに頑張って見ます。
683 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 21:05:00 ] >>681 ちなみに教えていただいたそのコード のライセンスはどうすれば宜しいでしょうか?
684 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 21:06:18 ] >>683 ライセンスかw どうでもいいので好きに汁
685 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 21:07:54 ] どうでもよくないよ 2chに書き込んだら2chの物になる
686 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 21:50:06 ] >>685 プログラムのソースコードを2chに書き込んだ場合、 そのライセンスは厳密にはどうなるんだろう? ・・・ってのはどこで聞けばいいかな?
687 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 21:55:43 ] 初めて書き込む前に規約がでただろう。それを嫁
688 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 22:30:32 ] >>643 ttp://diveintopython3-ja.rdy.jp/ ただし未完成らしい。
689 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 22:33:04 ] >>688 ありがとうございます
690 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 22:43:41 ] >>687 > ・投稿者は、投稿に関して発生する責任が全て投稿者に帰すことを承諾します。 > ・投稿者は、話題と無関係な広告の投稿に関して、相応の費用を支払うことを承諾します > ・投稿者は、投稿された内容及びこれに含まれる知的財産権、(著作権法第21条ないし > 第28条に規定される権利も含む)その他の権利につき(第三者に対して再許諾する権利 > を含みます。)、掲示板運営者に対し、無償で譲渡することを承諾します。 > ただし、投稿が別に定める削除ガイドラインに該当する場合、投稿に関する知的財産権 > その他の権利、義務は一定期間投稿者に留保されます。 > ・掲示板運営者は、投稿者に対して日本国内外において無償で非独占的に複製、公衆送信 > 、頒布及び翻訳する権利を投稿者に許諾します。また、投稿者は掲示板運営者が指定する > 第三者に対して、一切の権利(第三者に対して再許諾する権利を含みます) > を許諾しないことを承諾します。 > ・投稿者は、掲示板運営者あるいはその指定する者に対して、著作者人格権を一切行使しないことを承諾します。 一方、2ちゃんねるのトップページには > 2ちゃんねるのデータの利用に関して、原則的に自由ですが、 > 2ちゃんねるのデータ自体を利用して対価を取る行為はご遠慮下さい。 > 要するに、2ちゃんねるをモニターして、お金をとってる > マーケティング会社の方はご相談頂けないと面倒なことになるかもしれません、、、ってことです。 ということで、例えば>>681 が書いたソースコードの著作権は >>681 ではなく2chにあることになる。 また利用者は対価を取らない限り>>681 の意志・意向を無視して勝手にそのソースコードを使っても良いことになる、
691 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 22:48:54 ] >>688 それマニュアルじゃないだろ(ww
692 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 22:52:06 ] >>690 てか>>681 に著作権は発生しているのかい
693 名前:690 mailto:sage [2010/01/10(日) 22:54:49 ] >>692 どんなに短いソースコードでも、 いやソースコードですらなくコメントでも 発生しているよ。 しかも日本では著作権が発生することを拒否できないし、 著作権を放棄できない。
694 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 22:56:18 ] >>692 ちなみに君のその短い1文にすら著作権は発生しているよ。 ただし書き込んだ瞬間からその著作権の大半が2chのものになっているけど。
695 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 22:59:10 ] >>693 デマ乙 naoシフトを思い出すわ
696 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 22:59:36 ] >>693 そんなDQNめいたことが法廷であったのか! 実際にあるのなら大問題になるから判例挙げてくれ もちろん根拠となる条文もね
697 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 23:00:46 ] どっちもウザい。いいかげんにしろ。
698 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 23:01:07 ] print ("Hello World") 690先生の言うとおりだとこれも著作権になるわなwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww ひーーーーーーーーーーハーーーーーーーーーーーーーーーwwwwwwwwwwwwwwwwwwwwwwwwwww
699 名前:696 mailto:sage [2010/01/10(日) 23:02:51 ] >>697 それもそうだな。吊ってくる 言うまでも無いがソースコードが著作物として認められるには創作性が必要 サンプル程度では認められない
700 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 23:05:08 ] 二度と戻ってくるなよ。 ママのオッパイ吸って寝ろ。
701 名前:693 mailto:sage [2010/01/10(日) 23:07:26 ] いやいかなる短さのいかなるものでも著作権は発生するんだよ。 ただ法廷でそれを盾にして戦えるかどうかといえばまあ無理だろうがね。
702 名前:デフォルトの名無しさん [2010/01/10(日) 23:10:30 ] 例えば以下。 >>698 wの数で低能力者の程度が知れると言うが、そのとおりだな。 > print ("Hello World") うん。発生するよ。 もう2chに書いちゃった後だからもうお前には著作権はないけど、 もし書く前だったとすると、 俺が print ("Hello World") というコードを別の所に書いたら お前が俺を訴えることも可能。 ただし俺は当然、そのコードは俺が作った!と言い張るから その短さなら俺が勝つことにはなるが。 要するに立証できないだけ。
703 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 23:11:19 ] そろそろ法律板でやったほうがいいかも
704 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 23:12:46 ] 著作権論議をこのスレでやって欲しいとは思わないけど 2chに書き込んだコードに著作権がないと言い張る奴には オープンソースから足を洗って欲しいとも思う。
705 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 23:15:34 ] すでに権利が他のところにあるものを書き込んだらどうなるの、っと
706 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 23:16:57 ] 法律版に行けよ、OSSから足を洗ってからな
707 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 23:19:06 ] 良かったな>>681 よ、 君のソースコード、とても人気があるぞ。
708 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 23:23:17 ] >>705 あらゆる情報伝達が阻害されるな 常識の無い奴は法律かじらないで欲しいわ
709 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 00:15:59 ] >>707 >>681 だがびっくりした 要するに皆暇なんだなw
710 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 00:16:42 ] なんでこんなに殺伐としてるんだ……
711 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 00:18:33 ] 総当たりで文字列を生成して2chに書き込むシステムを作れば著作権は崩壊する
712 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 00:36:07 ] >>711 低能乙w もしそれができるんなら 総当たりで文字列を生成して 自身のブログで公開すれば全て自分が著作権を握れてウマー 不可能だろ。バカじゃねぇの?お前。
713 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 00:40:24 ] 自動生成と著作権は非常に難解で高度な問題だよ
714 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 00:55:18 ] ニートは引きこもってないで仕事しろって。 たけしが言ってた。
715 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 01:29:52 ] >>714 連休明けたら言われたとおり仕事探すんだぞ
716 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 03:09:25 ] 連休明けとか思ってるからダメなんだよ。 すぐ行動しろや。
717 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 03:25:58 ] 仕事を探す前に法律版に行けよ(ww
718 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 10:02:19 ] >>702 発生しねえよwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww お前naoシフト開発した池沼だろwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
719 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 10:09:21 ] >>718 _, ._ 気持ちはわかるけど ( ・ω・) いくらなんでも生やしすぎだも ○={=}〇, |:::::::::\, ', ´ 、、、、し、、`(.@)wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
720 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 10:13:51 ] なにこの隔離病棟
721 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 10:37:24 ] いつからここは隔離病棟になっちまったんだ...
722 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 10:41:33 ] 質問が来ればまた正常営業に戻るよ
723 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 10:47:32 ] ニートはしょうがないな。
724 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 10:56:47 ] ニートは勉強会とか行ってる場合じゃないぞ。 すぐ逃げる癖をまず直さないと。
725 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 11:11:16 ] >>718 無能が草を生やした所で 誰一人の役にも 立たないんだよwww
726 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 11:19:13 ] てかprint ("Hello World")で著作権発生するとかネタ?それともマジで言ってる?
727 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 13:02:41 ] 普通に考えて日本では作ったら発生する。 >>726 むしろそれで発生しないという根拠をしめせ。
728 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 13:14:01 ] 草を刈る準備は万端だぞ
729 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 13:18:04 ] 根拠を求める以前に,脳内にある根拠を外に出す方法を教えてくれ
730 名前:デフォルトの名無しさん [2010/01/11(月) 18:06:24 ] print(1) これは誰の著作権か教えてください
731 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 18:11:15 ] チャールズ・フロイ
732 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 18:15:03 ] 著作権は草の数に比例する。
733 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 18:16:37 ] ふ〜ん・・・で?
734 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 18:39:46 ] 本スレが荒れるとこっちが平和になる。 逆も然り。
735 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 19:36:29 ] 730の著作権は俺にある。 文句がある奴は、730の著作権が俺にないという根拠を示せよ。
736 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 19:48:56 ] まだやんのかよ?w
737 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 20:29:48 ] print("こんにちは") print("Hello Kitty") print("こんにちは世界") 全部だれの著作権かよろ
738 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 20:31:35 ] イラストでもつけて公開しろよ
739 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 20:35:45 ] 著作権のことだけで終わる連休 なんて生産的で有意義なんだろう!!
740 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 20:36:28 ] >>737 ちょっとレッシグさんに聞いてくるわ
741 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 21:04:19 ] >>737 737
742 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 23:46:03 ] 独創性の無いものに著作権は発生しませんよ プログラム作ってる人なら常識だと思うんだけど まあネタで騒いでるんだろうな、つられちった
743 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 23:52:49 ] >>690 の盛大な釣り / ヽ >>690 ,/ ヽ . ∧_∧ ,/ ヽ ( ´∀`) ,/ ヽ ( つ@ ヽ .__ | | | ヽ |――| (__)_) ヽ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ヽ /⌒\/⌒\/⌒\/⌒\|彡~゚ ゜~ ~。゜ ~ ~ ~ ~~ ~ ~~ ~ ~~ ~~ ~~ ⌒\/⌒\/⌒\/⌒\/⌒\彡 〜 〜〜 〜〜 〜〜 〜 〜 │ │ │ 人人人人人人人 ∧J∧ < > ( / ⌒ヽ < 吊られちゃった > | | | >>○ < > ∪ / ノ ∨∨∨∨∨∨∨ | || ∪∪ >>698 達
744 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 00:02:33 ] >>693 みたいなのを中高生が信じちゃうといけないから >>698 達は覚悟のうえで釣られていったんだよ・・・
745 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 00:07:47 ] ∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵。∴∵ ∴∵∴∵:。∴∵∴∵∴: --─- ∴∵∴∵∴∵∴∵ ∴∵゜∴∵∴∵∴∵ (___ )(___ ) >>698 達 ∵。∴∵∵ ゜ ∴∵∴∵∴:∵∴∵_ i/ = =ヽi ∴∵∴∵。∴∵∴ ∴∵☆彡∴∵∵ //[|| 」 ||] ∴:∵∴∵∴∵:∴∵ ∴∵∴∵∴∵ / ヘ | | ____,ヽ | | ∴:∵∴∵∴∵:∴∵ ∴゚∴∵∴∵ /ヽ ノ ヽ__./ ∴∵∴∵:∴∵∴∵ ∴∵∴∵ く / 三三三∠⌒> ∴:∵∴∵:∴∵ ∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∵∴∵∴∵ ∧∧ ∧∧ ∧∧ ∧∧ ( )ゝ ( )ゝ( )ゝ( )ゝ 無茶しやがって・・・ i⌒ / i⌒ / i⌒ / i⌒ / 三 | 三 | 三 | 三 | ∪ ∪ ∪ ∪ ∪ ∪ ∪ ∪ 三三 三三 三三 三三
746 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 02:51:38 ] 着地点が見つけられなくて逆上したか? 独創性の定義次第では、print("Hello World")にも著作権が発生するわけだが。
747 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 02:58:55 ] >>746 が裁判官あたりで法律の解釈を自由に決められるんならそうなるかもしれんな。
748 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 03:03:56 ] >>746 なんだ、結局著作権発生するんじゃん アンチは完全否定しろよ くだらないAA張ってる場合じゃないぞ
749 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 03:06:11 ] 747は、746が裁判官でなくて法律の解釈を決められないことを証明する必要があるな。 頑張れ。応援しているぞ。
750 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 06:39:11 ] というかくだらない火種が いつの間にか複数人vs複数人の争いになってきているな。 いいぞ、もっとやれ
751 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 08:14:14 ] 定義次第ではって……そりゃ、殺人の定義次第では、道歩いただけで殺人になるよ。
752 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 08:43:32 ] 質問です 空白で区切った文字列の二番目を分割して、税をかけて文字列を書きだしたいのですが def add_tax(astring): ....item = astring.split() ....price = int(item[1]) * 1.1 ....item[1] = str(int(price)) ....return " ".join(item) >>>add_tax("Good 1000 2009/1/11) とやっても駄目だったので def add_tax(astring): ....item = astring() ....price = int(item[1]) ....item[1] = str(price) ....return item[1] とすると文字列をそのまま返してくるのですが price = int(item[1]) * 1.1 としても税をかけて文字列を返してくれません どうすればいいでしょうか あと、一番上の関数の最後の行 return " ".join(item)は スペースを区切り文字として、シーケンス(()の内容)連結下文字列が出来上がるとなるのですが、 エラーになってしまったのでjoin()メゾットが何をしてるのかも詳しくお願いします Python2.6.4です
753 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 09:01:28 ] 質問キター >>752 上のadd_taxがどう駄目だったのかわからない 入力と期待する戻り値と実際に返って来た戻り値を書いて 入力チェックとかをせず簡単に書くとすれば >>> def add_tax(s): ... item = s.split() ... return '%s %d %s' % (item[0], int(item[1]) * 1.1, item[2]) >>> add_tax('Good 1000 2009/1/11') 'Good 1100 2009/1/11' joinの説明はそれであってる エラーになるならなんてエラー表示されたのか貼って
754 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 09:07:17 ] >>748 もう釣りはいいですよ
755 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 09:08:50 ] print(item) で、 ['GOOD', 1100, '2009/01/11'] joinは失敗する、expected stringなのにintだから ['GOOD', '1100', '2009/01/11'] ならjoin出来る ていうか出来たけどなぁ どこが違うんだろ。 >>> def add_tax(astring): ....item = astring.split() ....print(item) ....price = (int(item[1])*1.1) ....print(price) ....item[1] = str(int(price)) ....print(item) ....return " ".join(item) >>> add_tax("GOOD 1000 2009/01/11") ['GOOD', '1000', '2009/01/11'] 1100.0 ['GOOD', '1100', '2009/01/11'] 'GOOD 1100 2009/01/11' >>>
756 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 09:11:54 ] >>746 中学生とか高校生かあんたは 大人がそんなこと言ってるなら終わってるな
757 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 09:12:31 ] >>756 質問北からもうやめれ
758 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 09:18:00 ] こんにちは おはようございます こんばんは おやすみなさい これらも著作権が発生するんですね、笑えます
759 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 09:46:56 ] >>756 人のことはいいから、自分の痛さに敏感な人生を送ろうぜ。
760 名前:デフォルトの名無しさん [2010/01/12(火) 10:01:12 ] 集合知プログラミングのp39あたりを打ち込んでp40の >>> clust=clusters.hcluster(data) を打つと Traceback (most recent call last): File "<stdin>", line 1, in <module> File "clusters.py", line 114, in hcluster closest=distance(clust[0].vec,clust[1].vec) TypeError: 'dict' object is not callable とエラーが返ります。拾い読みで全部のコードを打ち込んでないのが 悪いのかもしれませんが、 closest=distance(clust[0].vec,clust[1].vec) のclust clust=[bicluster(rows[i],id=i) for i in range(len(rows))] の biclusterは class bicluster: def __init__(self,vec,left=None,right=None,distance=0.0,id=None): self.left=left self.right=right self.vec=vec self.id=id self.distance=distance と打ち込んでいます。何が悪いんでしょうか教えてくだしあ。
761 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 10:18:55 ] >>760 > closest=distance(clust[0].vec,clust[1].vec) のdistanceが関数名やクラス名等のcallableであることを期待してるんだろう なのに辞書だから怒られてる あと手打ちしなくてもオライリーからソースコード落とせるはずだよ
762 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 10:21:58 ] >>758 すばらしいポエムだ、感動した!!! 著作権をください!!!
763 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 10:44:04 ] distance と distances が混ざっていたのが原因でした。 ところでソースコードは d.hatena.ne.jp/shohu33/20080811/1218456689 で書かれてるところから落とせたんでしょうか、404です… まぁ打ち込むのも勉強と思えばいいんですが。
764 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 10:54:50 ] >>763 英語版でよければ ttp://examples.oreilly.com/9780596529321/
765 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 11:15:28 ] >>764 おお、ありがとうやっぱり楽な方がいいやw
766 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 11:33:58 ] >>753 ありがとうございます 後で張ります 待っててください
767 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 12:40:47 ] >>759 ガキはスグ反応してくれるね、フイタ
768 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 13:33:53 ] Python 3が後方互換性を捨ててでも求めたもの ttp://www.atmarkit.co.jp/fcoding/articles/python3/01/python301a.html ↑これ読んだら、Python2が気持ち悪くてしょうがない。 Python2.6初めてまだ3日目、2.5のチュートリアル4章まで読んだんだけど、 >>688 読んで、3からやった方がいいかな? 「誰もが正しいと考える、たった1つの方法をできる限り採用する (There should be one―and preferably only one―obvious way to do it)」 が今や、2系と3系で2つの方法が存在してるじゃんwww アホの子なの?まじ、きめえええwwww
769 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 13:42:13 ] きめえならTIMTOWTDIでも驚き最小限でも好きな言語やったらいいよ んでネタとしては本スレ向きだからそっちに書き込んでくれ
770 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 14:44:24 ] 質問です。 他の言語で言うところの「構造体」をエミュレートする場合 辞書とクラスのどちらがいいのでしょうか? 静的言語ならクラスにしとけばコンパイル時エラーになりますが Pythonだとどちらも実行時エラーになりますし・・・
771 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 14:50:00 ] 僕はカッターナイフの形が気持ち悪くて仕方がありません。 だからいつも髪を切るときは包丁を使います。
772 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 14:54:19 ] 辞書で構造体… myunionA1['Key01'] = 33.05 みたいにするのかな。 myUnionA1.var01 = 12 みたいなほうがやっぱり構造体っぽいんじゃないかな。 作り方や使い方にしても、「変数持ってるだけのクラス」でいいと思うし。
773 名前:768 mailto:sage [2010/01/12(火) 15:01:00 ] >>769 本スレいくわ >>770 3日目の俺が答えてやろう。 構造体 → タプル でおk ja.wikipedia.org/wiki/%E3%82%BF%E3%83%97%E3%83%AB
774 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 15:05:12 ] >>770 単にデータの集合体に名前でアクセスできればいいのなら辞書かクラス そのうち使い捨てで構わないのなら辞書、そうでないのならクラス Cの構造体のように順序も保持したいのならnamed tuple それか配列かタプルをクラスでラップして名前でアクセス コンパイル時/実行時は例がないとちょっとわかんない
775 名前:752 mailto:sage [2010/01/12(火) 15:27:29 ] >>>add_tax("Good 1000 2009/1/11) とやっても駄目だったので の"が足りないところは気にしないでください これがエラーの原因ではありません もう一度自分で関数を定義したらできました あと>>753 さん そんな記述の仕方もあるんですね 文字列フォーマットを使って指定した文字列を挿入する処理はこれから学ぶつもりですが、大変参考になります コッチのほうが処理が解りやすいし短いですね join()が何をするのかはわかってはいたんですけど、スペースを埋め込んで連結した文字を作るというのが なかなかイメージが掴めなくて苦労してました エラーは多分タイプミスのシンタックスエラーです ありがとうございます
776 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 15:27:35 ] コンパイル時にできるだけ多くのエラーを拾いたいってことなら どう書いても大差ないと思う
777 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 15:34:52 ] >>775 " ".join(リスト) は、" ".glue(リスト) だったほうが分かりやすいと思うんだよな スペース文字のjoinメソッドというか、スペース文字が糊になって接着するメソッド
778 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 17:23:50 ] 自分にとって分かりやすいことが、万人にとって分かりやすいこととは限らない。
779 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 20:59:53 ] phpのarray_mapみたいなのってpythonでどの関数使えばいいのでしょうか?
780 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 21:13:04 ] >>779 すでに定義されている関数を使うなら map、 y = map(func, x) # リストxの各要素に func を適用した結果のリストをyに代入する 専用に関数を定義するくらいなら 内包表記、 y = [z * 2 for z in x] # xの各要素に対して x * 2 した結果のリストを y に代入する
781 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 22:56:38 ] >>780 ありがとうございます
782 名前:770 mailto:sage [2010/01/12(火) 23:52:40 ] >>772 クラスの方が見た目的に他言語と共通してますしね >>773 タプルはインデックスアクセスしか出来ないので・・・ >>774 >コンパイル時/実行時は例がないとちょっとわかんない >>776 さんの言ってることです。 >>776 やはりそうですか。 いろいろと意見ありがとうございました。 クラスを使えば構造体のメンバ一覧も明記できるので、辞書ではなくクラスを使うようにします。
783 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 00:41:54 ] >>782 既出だが、 Python 2.6 以上なら namedtuple がある。 namedtuple だと作成と同時に値が固定されてしまうけどね。
784 名前:760 [2010/01/13(水) 04:41:01 ] 同じく「集合知プログラミング」で今度は10章をやっていますが、 p259の weights,feat.nmf.factorize(v,pc=20,iter=50) でNaNが出ます。 その上の w,h= nmf.factorize(m1*m2,pc=3,iter=100) は、21.99999822 とか多少誤差が出ることはありますがぴったりの時もあり うまくいっています。 一応p247のfeedlistは吟味してp250の >>>wordvec[0:10]が空になるものは、URL変わったのかなと思ってコメントアウトしました。 またp251のdrawdendrogramでascii以外が混ざってるっぽいエラーがでてたので、 そのフィードもコメントアウトしてデンドログラムは描画できました。 他にどこを確認すればいいでしょうか?
785 名前:760 [2010/01/13(水) 08:33:26 ] 追記です。問題の非負値行列遠視分解ですが、変数で割り算をしてるのはここだけ↓です。 h=matrix(array(h)*array(hn)/array(hd)) … w=matrix(array(w)*array(wn)/array(wd)) hdとwdをprintするようにしてみましたが、 [[ 0.02011069 0.02977744 0.02906954 ..., 0.02407994 0.02889659 0.02915037] [ 0.01446606 0.02134596 0.02148551 ..., 0.01774882 0.02021706 0.02054283] [ 0.01723484 0.02917753 0.02718492 ..., 0.02231427 0.02644232 0.0300849 ] ..., [ 0.01144608 0.01790515 0.01683023 ..., 0.01426036 0.01676002 0.01819174] [ 0.00750103 0.01223539 0.01129087 ..., 0.00934213 0.01090586 0.01224102] [ 0.00230905 0.00371431 0.00355478 ..., 0.00290677 0.00371496 0.00378571]] [[ NaN NaN NaN ..., NaN NaN NaN] [ NaN NaN NaN ..., NaN NaN NaN] [ NaN NaN NaN ..., NaN NaN NaN] ..., [ NaN NaN NaN ..., NaN NaN NaN] [ NaN NaN NaN ..., NaN NaN NaN] [ NaN NaN NaN ..., NaN NaN NaN]] と言う感じです。もとの行列に0が多すぎるのがいけないのかもしれませんが、 解こうとしている問題の性格上変えようがありません。どうにかならないでしょうか?
786 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 09:31:01 ] その程度の数の割り算でNaNになるはずはない どっかでsqrtに負数を突っ込んでないか?
787 名前:デフォルトの名無しさん [2010/01/13(水) 18:24:53 ] >>786 レスありがとうございます。>>764 さんのURLから落とせる nmf.pyを使っているだけなのですが、sqrtは見た目にはありません。 NumPyというパッケージを使っているのですが、それが問題でしょうか? 「集合知プログラミング」以外pythonの本は持ってなくてデバッグの やり方とかも分かりません。Windows XP SP2 pythonのバージョンは2.6.4ですが、 なにかいい方法ありますでしょうか?
788 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 18:37:58 ] みんPyを読んだのだが… 簡単なツールでも作りたいな なにかお題を出してくれる人いないっすか? もち回答とだめだし希望
789 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 23:05:30 ] >>788 Editraの日本語入力を修正するパッチを作ってください
790 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 23:06:53 ] >>788 RDB(MS) SQL文で管理するコレクション型みたいなもの(SQLiteみたいな) 理由>俺が欲しい。わりとマジで
791 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 23:13:09 ] >>788 ttp://pc12.2ch.net/test/read.cgi/tech/1258320456 ここに行ってみれば? きっと喜ぶよ。
792 名前:デフォルトの名無しさん [2010/01/14(木) 00:34:45 ] >>787 にもレスくだしあ;;
793 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 00:58:35 ] >>788 ふ、ふりぃおのどらいばを・・・
794 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 01:05:24 ] 宿題スレ池ってレス以外みんなネタじゃないか
795 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 10:59:43 ] >>794 Editraはネタじゃないです
796 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 18:33:12 ] >>788 解答はしらないけど、 2つのディレクトリのパスを受け取って、 フォルダ構成やら中身のファイルやらが完全に一致しているかを 調べるPythonScript作ってください。
797 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 19:00:21 ] from filecmp import dircmp import sys d = dircmp(sys.argv[1], sys.argv[2]) d.report()
798 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 19:32:27 ] >>797 >〜.py aaa aaa diff aaa aaa って
799 名前:760 [2010/01/14(木) 19:35:22 ] >>787 もよろしくお願いします。
800 名前:797 mailto:sage [2010/01/14(木) 19:45:48 ] >>798 .report() じゃなくて、 .report_full_closure() ならどう?
801 名前:798 mailto:sage [2010/01/14(木) 19:59:10 ] 中身にファイルを入れないと >dircmp.py aaa bbb diff aaa bbb Only in aaa : 〜 Only in bbb : 〜 Identical files : 〜 Differing files : 〜 とかの詳細って表示されないってことを今 分かりました。 これで、全部が全く等しい時に ディレクトリとして等しいよ!って表示してくれる機能はありませんでしょうか。
802 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 20:05:01 ] >>797 そんなのあるんだ でもファイルの中身がちょっとだけ違ってて サイズと日時が同じだったりしたらどうなんだろ
803 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 20:08:19 ] >全部が全く等しい ディレクトリ(サブディレクトリ含)単位でhash値出すとか?
804 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 20:10:40 ] >>803 ファイルのhashは計算できるのですが、 ディレクトリのhashって計算できますか?
805 名前:801 mailto:sage [2010/01/14(木) 20:15:09 ] >>802 ファイル名が同じで日時はことなり、内容を1バイトだけ変えたファイルは 別のファイルだと検出されました。
806 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 20:45:05 ] >>805 それだと日時を見てるのか1バイトで引っかかったのか分からんがな
807 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 20:46:19 ] ディレクトリのhashはファイルのhashから求めればいいんじゃないかな
808 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:07:57 ] ['a', 'b'] と [10, 20]から {'a' : 10, 'b' : 20}を生成するみたいな方法ってありませんか?
809 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:11:30 ] dict(zip(['a', 'b'],[10, 20]))
810 名前:760 [2010/01/15(金) 05:55:20 ] くりかえしになりますが >>787 もホントによろしくお願いします。
811 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 06:23:26 ] 口あけて待ってるだけじゃ誰も助けてくれん罠
812 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 08:35:58 ] >>809 ありがとう
813 名前:デフォルトの名無しさん [2010/01/15(金) 12:48:24 ] Python3.1.1をWindows7 ultimate 64bitにインストールしたんだけど、 Fatal Python error: Py_Initialize: can't initialize sys standard streams ImportError: No module named encodings.utf_8 とかいわれて機動出来ない。 どうすればいいか教えて!
814 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 16:14:00 ] >>810 numpy使ってる人少ないんだよな。 matplotlibスレのやつなら知ってるかもしれない。
815 名前:760 mailto:sage [2010/01/15(金) 16:38:30 ] >>814 スレをのぞきましたがたしかにnumpy の話題が出てますね。 ありがとうございます。逝ってきまつ。
816 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 22:52:19 ] 文字列があって2文字列処理をしていくのですが、なにか素敵な書き方はありますか? for c in s: としてフラグを使い2文字たまったら処理していくようにする StringIOとread(2)を使う re.splitで2文字の文字列のリストにしてfor文に突っ込む がとりあえず思いつきました
817 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 23:04:27 ] for c1, c2 in zip(s[::2], s[1::2]) しか思いつかない
818 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 23:25:49 ] for c1, c2 in map(None, s[::2], s[1::2])
819 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 23:26:35 ] it = iter(s) for c1, c2 in zip(it, it)
820 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 00:29:02 ] for x in range(0, len(s), 2) とすると、s[x], s[x+1]で取り出せる。
821 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 00:32:36 ] for i in xrange(len(s) / 2): c1, c2 = s[i*2], s[i*2 + 1]
822 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 00:33:45 ] おまえらみんなsの文字長が奇数だったときのこと考えてるか?
823 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 00:35:56 ] >>822 質問の条件には何も言われてないから 未定義で医院ジャマイカ
824 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 00:44:16 ] >>822 たしかsが奇数のときは >>817 は最後の文字を無視 >>818 が最後の文字とNoneのペアを作る、だったかと。
825 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 00:48:04 ] >>819 は無視。 >>820 , >>821 は例外だな。
826 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 00:48:33 ] みなさんありがとうございます いろいろ方法があるんですね 参考になりました >>820 が私的に直感的なのでこれにしておこうと思います 文字列は偶数が保証されていたのでその点も問題無かったので
827 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 00:53:00 ] 忘れた頃に何故か奇数のデータが混ざってて 例外が出て嵌ると
828 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 00:53:59 ] スライス使えばみんな幸せ♪
829 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 02:14:39 ] >>819 これいいね >>> s = '0123456789' >>> list(zip(*[iter(s), ] * 2)) [('0', '1'), ('2', '3'), ('4', '5'), ('6', '7'), ('8', '9')] >>> s = '01234567890' >>> list(zip(*[iter(s), ] * 2)) [('0', '1'), ('2', '3'), ('4', '5'), ('6', '7'), ('8', '9')] しかし短くしようとするとどんどん直感的じゃなくなるんだよな
830 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 02:27:31 ] 直感性を切ってまで短くするのはPython的じゃないね。 遊びでやるのは別かもしれんが
831 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 11:53:08 ] >>830 > 直感性を切ってまで短くするのはPython的じゃないね。 それは同意。 短いor早いのが好きならC/C++を使えと。
832 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 13:33:21 ] perlerがこっちを見ている 仲間にしますか?[Y/N]
833 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 16:47:37 ] こっち見んな
834 名前:デフォルトの名無しさん [2010/01/19(火) 01:22:05 ] #!/usr/bin/env python # coding: utf-8 import threading import time class hoge(threading.Thread): def run(self): for i in range(0, 10) : print i time.sleep(0.1) for i in range(0, 10): fuga = hoge() fuga.start() 以前こんな感じにインスタンス生成しているのを見たことがあるんですが 同じ変数fugaを何度も使用してインスタンス生成しています 結果は予想を反して正常に動作をするんですが こういう使い方をして問題とかは無いのでしょうか?
835 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 01:26:45 ] ( ´ ▽ ` )問題ないよ。本当だよ。
836 名前:デフォルトの名無しさん [2010/01/19(火) 01:31:31 ] delete fuga はしないほうがいい?
837 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 01:33:02 ] >>835 そうなんですか? できればなぜ問題ないのか、 解説か説明しているサイトへ誘導してもらえないでしょうか? 調べ方が悪いのかググっても 見つからないのでおねがいします
838 名前:デフォルトの名無しさん [2010/01/19(火) 01:54:36 ] >>837 ヒント: gbkr
839 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 02:16:24 ] >>834 です あれからデストラクタを使って、インスタンスが廃棄されるタイミングを調べたらシックリすることができました。 同じ変数にインスタンス生成しても、重複したインスタンスはループを抜けると自動的に消滅して最後に生成した インスタンスだけが残ることがわかりました。 (ただしループ内で実効した処理がループを抜けた後も残っている場合は、処理が終了するまで廃棄しない) #!/usr/bin/env python # coding: utf-8 import threading import time class hoge(threading.Thread): def __del__(self): print 'destructor' def run(self): for i in range(0, 10) : print i time.sleep(0.1) for i in range(0, 10): fuga = hoge() fuga.start() time.sleep(4) print 'piyo' >>838 すみません。ヒントの意味が分かりません レスに答えてくれてどうもありがとうございました
840 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 02:26:56 ] >>834 です >(ただしループ内で実効した処理がループを抜けた後も残っている場合は、処理が終了するまで廃棄しない) これはスレッドを使用したときだけのようですね 失礼しました
841 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 03:50:23 ] ふとした疑問なのですが map型に対しkeys()とvalues()を実行した際、その並び順は同じと考えて大丈夫でしょうか (もちろん両者を実行する間に変更はありません) items()でとってzipするべきでしょうか?
842 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 04:21:14 ] def func(**keys): def func2(**keys): って二つあって funcが受け取った引数をそのままfunc2へと流したいんだがどう書いたらいい? def func(**keys): func(keys) みたいなこと
843 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 08:23:27 ] 関数を別の変数に流し込んで x = .... func(x) func2(x) じゃダメなのか?
844 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 09:27:31 ] >>842 それで何か問題が? 名前無し引数にも対応するなら、 def func(*args, **kwargs): func2(*args, **kwargs)
845 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 13:44:50 ] >>843 ,844 自分で試してだめだったので質問したつもりだったのですが、ご指摘の通りやり直したらきちんと動きました 前回自分で試したときなにか別の理由で動かなかったものを勘違いしていたようです どうもすいませんでした
846 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 13:56:02 ] class X(): def func(self, **keys): print keys def func2(self, **keys): self.func(keys) X().func2(x=10, y=20) 連投すいません 上の例だと上手くいかないのですが, どうやって渡したらいいのでしょうか?
847 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 13:58:02 ] self.func(**keys)
848 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 13:59:09 ] >>847 ありがとうございます
849 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 17:06:43 ] 最近みんなのPythonを購入して遊んでいるのですが、PyScripterで実行したプログラムのPython Trutle Graphics のウィンドウをマウスで動かそうとするとフリーズしてしまいます。かるくググってみてもWindows環境では昔からある症状と あり解決手段を見つけられませんでした。そこで質問なのですがフリーズ回避の方法はありますか?
850 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 17:12:34 ] コマンド・プロンプトから実行する
851 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 19:45:29 ] >>849 とりあえず外部実行でやってみろ Alt + F9 な
852 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 20:34:44 ] >>850 できれば軽量IDEのPyScripterを使いたかったものですから。 >>851 ありがとうございます。実行してみたところプログラムが終わるとウィンドウも閉じてしまうようで、期待した動作ではありませんでした。 設定項目も見つけられなかったので、素直にシェルを使おうと思います。
853 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 20:53:22 ] PyScripter は RPyC を利用したリモートデバッグができる。 セットアップが少々面倒だけど、一度セットアップしたら普通の デバッグと同じ感じに使えるはず。 ttp://plaza.rakuten.co.jp/kugutsushi/diary/200710290000/
854 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 13:16:46 ] >>851 ウィンドウが閉じてしまうのが嫌なら、最後に raw_input("") でも付けたら?
855 名前:849です mailto:sage [2010/01/20(水) 15:47:57 ] >>853 私宛てですか?正直よく分からなかったです。 >>854 標準の実行をするとTurtle Graphicsのウィンドウは消えないのですが、IDEと被って見にくいので横にずらしたい。 →マウスで動かそうとするとフリーズ。 外部実行だと図形を書きおわったらTurtle Graphicsのウィンドウが消える。 →orz raw_input("")は外部実行では効果がなかったです。 たんに from tutle import * で簡単なサンプル動かしてるだけなので、そこまで深刻な問題ではないのですが、 みなさんありがとうございます。
856 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 17:41:34 ] >>855 それフリーズしてるんじゃなくて WM_PAINTが呼ばれていない (あるいはメッセージループが回っていない) だけだと思う IDEのバグだろ
857 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 21:47:58 ] >>856 詳しくはわかりませんが、Win環境のPythonとPyScripterの相性のようです。 Python標準シェルとIPythonの挙動が違う意味がわからないので質問します。 Python IPython >>>str = u"あ" >>>str = u"あ" >>>type(str) >>>type(str) <type 'unicode'> <type 'unicode'> >>>str >>>str u'\u3042 u'\x82\xa0' >>>print str >>>print str あ UnicodeEncodeError:'cp932'〜〜 1.u"あ"を代入した時点で、strはUnicode文字列型になっている 2.IPythonはstr参照時にUnicode文字列型を文字列型にエンコードしなおしている と言う理解であってますか?そしてこれはバグですか? ttp://dsas.blog.klab.org/archives/51390187.htmlの方法で解決するみたいなんですが 正当なやりかたなのか気になります。
858 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 21:55:37 ] すみません、体裁が…。 Python >>>str = u"あ" >>>type(str) <type 'unicode'> >>>str u'\u3042 >>>print str あ IPython >>>str = u"あ" >>>type(str) <type 'unicode'> >>>str u'\x82\xa0' >>>print str UnicodeEncodeError:'cp932'〜〜
859 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 22:09:12 ] とりあえずstrという名前の変数に代入するセンスを疑う
860 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 22:12:30 ] >>857 IPythonのバグだと思う リンク先の解決方法は 間違っては居ないが場当たり的だと思う
861 名前:methane mailto:sage [2010/01/20(水) 23:37:58 ] >>857 のBlogの著者です。 Python本体のインタプリタはCで書かれていて、Python製のPythonインタプリタは compile() 関数を通しているのが根本的な違いです。 compile() 関数にエンコーディングを渡す良い方法が無いので、ハックで対策するしかありません。 Pythonに付属のIDLEも同じ問題を抱えています。 Blogに書いているよりも良い挙動になるハックが、 https://bugs.launchpad.net/ipython/+bug/339642/comments/8 にあります。 また、この問題は Python3 になるとcompile()の仕様を変えなくても自動消滅します。 実際、Python3 の IDLE も大丈夫です。早くPython3の時代になると良いですね。
862 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 00:16:23 ] >>861 すばらしい!! 次版のiPythonリリースには取り込まれていて欲しいですね
863 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 02:27:33 ] >>859 確かに予約語やそれに近しい略語は使うべきではありませんでした、すみません。 >>860 ,>>861 ありがとうございます。このコードはIPython/iplib.pyのcompile_command()以下 source=source.encode(self.stdin_encoding) if source[:1] in [' ', '\t']: source = 'if 1:\n%s' % source if source[:1] in [u' ', u'\t']: source = u'if 1:\n%s' % source source = '# coding: %s\n%s' % (self.stdin_encoding, source) であってますか?リンク先の + source = '# coding: %s\n%s' % (self.stdin_encoding, source) の+は追加の意味で、コードではないですよね?
864 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 02:40:33 ] diff の出力だから patch に喰わせるのが吉
865 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 02:42:34 ] compileに渡すユニコード文字列に 文字コード指定を追加してるんで それであってる
866 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 02:46:15 ] っつーか 「-」 の部分を追加するな www
867 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 07:31:15 ] そこはわかっていると信じたい
868 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 12:34:09 ] dS/dt=-βSI dI/dt=βSI-γI dR/dt=γI という連立微分方程式があってβとγ求めたいんですがPythonで書くとどうなりますか?
869 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 12:59:59 ] えっ βとγを変えて数値シミュレーションするとかじゃなくてか。
870 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 13:18:53 ] 記号微分?
871 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 14:58:55 ] ラプラス変換してから逆行列か
872 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 17:17:05 ] 空を飛べ〜
873 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 17:25:59 ] それはロプロス
874 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 17:44:59 ] 863です。 IPythonでもきちんとUnicodeが扱えるようになりました。 みなさま、ありがとうございました。
875 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 19:12:03 ] 失礼します。若干スレ違いかもしれませんが、質問よろしいでしょうか? Windows で Python2.6.4&Pygame1.9.1 を使用してプログラムを組もうとしています。 その際の参考サイトとして、 ttp://www.halb-katze.jp/pygt/ ttp://pygame.skr.jp/ などを利用させていただいているのですが、どちらのサイトのスクリプトをそのまま利用しても、うまくウィンドウを開くことができません。 正確にはウィンドウは開くのですが、前者のスクリプトだと一瞬、後者でも半秒も経たないうちにプログラムが終了してしまいます。 解説を読む限りだと、能動的に終了処理をしない限りはウィンドウは開いたままのような気がするのですが、 原因おわかりであればご教授いただけませんでしょうか。
876 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 22:20:30 ] 質問が不親切だな きっとダブルクリックでもしてるんだろ コマンドで実行してみろ
877 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 22:39:17 ] 加齢臭がする
878 名前:デフォルトの名無しさん mailto:sage [2010/01/21(木) 22:43:46 ] 晩飯はカレーだった
879 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 02:14:03 ] 今、カレーヌードル食ってる
880 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 03:22:26 ] ここは華麗にスルーだろ
881 名前:875 mailto:sage [2010/01/22(金) 05:04:26 ] >>876 言葉足らずでした、失礼。ウィンドウとはコマンドプロンプトの意ではなく、 pygame.display.set_mode で作成される、画像などを描画可能なウィンドウのことです。 具体的には以下のようなプログラムを走らせるのですが、 ttp://www.halb-katze.jp/pygt/pygt0100.html while文で無限ループを作り、たとえば終了ボタンが押されるまでウィンドウは閉じないようになっているはずなのですが、 実際には、上述の通り一瞬だけ開いて終了してしまいます。
882 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 07:06:28 ] うちは大丈夫
883 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 09:01:22 ] python.exe二パスが通ってないとか .pyに関連付けされてないとかではないの? コマンドプロンプトから実行してみたら?
884 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 11:13:48 ] >>883 長くてURLが貼れないので、お手数ですがこちらのWikiを見て貰えますか? ttp://pygame.skr.jp/ たとえばこれの「基礎>図形を描画する」をそのまま実行した場合、 pygame.display.set_caption(u"蝗ウ蠖「縺ョ謠冗判") UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128) とのエラーは出てきますが、当該部分を"DRAW"などに置き換えれば正常に実行されます。 (UTF-8で保存はしているんですが、これは何がいけないのかな?) 対して「基礎>ウィンドウを表示する」を(日本語部分だけ訂正し)実行した場合、 特にエラー表示もないまま、起動するなり終了してしまいます。ダブルクリックの場合も一緒です。 試しに終了条件をなくしてみるなどしましたが、ループにすら入っていないのか、何の変化もありません。 いろいろと弄くっているのですが、終了してしまう場合の規則性が見えない状況です。 図形を描画するサンプルを削っていっても、どうも突然にループに入らなくなる模様です。 Pygameをインストールしなおしたところ、ループに入らなくなる条件が変わったようですが、詳細はさっぱり……。 他サイトのサンプルスクリプトなども同様です。なんなんでしょうか。
885 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 11:19:58 ] コマンドプロンプトから実行してみたら?
886 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 11:39:58 ] 言葉足らず、重ね重ね申し訳ありません。 「ダブルクリックの場合も一緒です。」とあるように、コマンドプロンプトから実行しています。
887 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 11:41:16 ] 酸っぱいような、苦いような臭い
888 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 11:47:11 ] >>884 >たとえばこれの「基礎>図形を描画する」をそのまま実行した場合、 >pygame.display.set_caption(u"蝗ウ蠖「縺ョ謠冗判") >UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128) >とのエラーは出てきますが、当該部分を"DRAW"などに置き換えれば正常に実行されます。 >(UTF-8で保存はしているんですが、これは何がいけないのかな?) なんだ pygame が unicode 通さないのか? ソースを utf-8 で保存していて # -*- coding: utf-8 -*- も書いてるんなら 日本語文字列の前の u を取ってしまうか u'日本語文字列'.encode('utf-8') にすれば通る
889 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 11:58:27 ] >>888 uを取った場合は正常に動作、 明示的にUTF-8に変換した場合は同じエラーとなりました。
890 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 12:42:53 ] 追伸:確かにUTF-8で保存しています
891 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 12:43:24 ] >>888 OpenGLの方はcp932しか通さないなwwwwwwww
892 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 12:45:50 ] >>889-890 sitecustomize.py で sys.setdefaultencoding() を変なのにしてるとか
893 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 12:47:52 ] >>889-890 うちは大丈夫(日本語文字コードの問題はあるけどそこを直すだけで動く)
894 名前:デフォルトの名無しさん [2010/01/22(金) 12:50:19 ] 解決しました ありがとうございました
895 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 13:34:26 ] プログラマなら自力で勉強して解決しろよ。それが出来ない奴はいらん。
896 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 13:38:26 ] プロのプログラマが超初心者用スレに質問に来るんですか?w
897 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 13:44:35 ] よくあることです
898 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 13:58:24 ] 長いこと申し訳ありません…… >>892 デフォルトのまま何も弄くっていません。 特に弄くる必要はないとのことでしたが、何か設定した方がいいのでしょうか?
899 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 17:50:37 ] >>875 WindowsVista + Python 2.5.2 + pygame 1.9.1 utf-8 で保存 u が付いてるとエラー(コンソール上で文字化け) u'日本語'.encode('utf-8') ならサンプルすべて正常動作
900 名前:デフォルトの名無しさん mailto:sage [2010/01/22(金) 18:39:19 ] ttp://boxheadroom.com/2009/05/21/py_anime_gif2
901 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 00:38:47 ] >>898 884の "draw_figure.py" だったら "import sys"の後に以下の2行を追加して実行してみたらどうなる? reload(sys) sys.setdefaultencoding('shift_jis') これでうまくいくなら sitecustomize.py でググれ
902 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 00:40:27 ] あ、ごめん reload(sys) sys.setdefaultencoding('utf-8') の間違い
903 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 00:48:32 ] しかし、"UnicodeEncodeError" なんて Python2.xの定番中の定番FAQで、自分で貼ってるwikiサイトを サイト内検索しても解決方法が載ってるのに ここまでダラダラ引っ張るとは・・・ もしかしてpygameの宣伝?! ・・・アンインストールしよっと
904 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 00:52:50 ] (^ω^;)
905 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 01:30:50 ] (-_-;)
906 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 03:49:54 ] 上に出てた人と似たような質問なんですが、python2.6.4で # -*- coding: utf-8 -*- a = raw_input(u"何か書く : ") print a input() というファイルを実行すると、動くんだけども"何か書く"の部分が文字化けしてしまいます sys.getdefaultencoding()だと'utf-8'になってるし、対話モードで入力すると正常に表示されます 自分にはこれ以上分からないのですが、原因となることは何か考えられますか
907 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 03:51:33 ] はい
908 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 08:33:30 ] >>906 まず、Pythonを動かしている環境を明示して下さい。 Windowsですか?Linuxですか?Linuxであれば "$ locale" というコマンドの実行結果は どうなっていますか? あと、 defaultencoding は ascii が標準です。 utf-8 にすることで unicode の扱いの ミスによる UnicodeError を回避できますが、回避した部分はすべて utf-8 が 正しいという前提になってしまっているのでその前提が崩れると文字化けします。 文字化けの原因になるようなコードを書かないために、開発や勉強をする環境では defaultencoding は ascii のままにしておくことをおすすめします。
909 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 08:41:39 ] >>906 import sys import codecs sys.stdout = codecs.getwriter('utf-8')(sys.stdout) これでやってみそ。
910 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 15:11:34 ] 超初歩的な質問ですいません。 なんだか初めてのプログラミングで苦戦してます。 奥が深すぎて・・・ 関数やメソッドはたくさんありますが全てを熟知していないと 使えないってわけではないですよね? 参考書を読んでますが、どこから手をつけていいのか・・・ 参考書:(新しい)みんなのPythonです。 アドバイスをお願い致します。
911 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 15:54:53 ] 初めてで奥まで行くのはむりだと開き直れ やりたいこととか自分にとって必要なこととかあるだろ そこからやりゃいんだよ
912 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 17:16:21 ] >>910 プログラミングを始めた動機 その本を何章まで読み終わったか それが分かればアドバイスできるお
913 名前:910 mailto:sage [2010/01/23(土) 17:21:07 ] 動機はpythonを覚えたかったから? 8章ですかね
914 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 17:25:47 ] Pythonを覚えたいためにPythonプログラミングを始める 手段が目的となる… それもまた人の進歩の要因なのだ
915 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 17:49:20 ] >動機はpythonを覚えたかったから? 予想通りでワロス
916 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 18:33:08 ] ぶっちゃけプログラミング覚えるだけでも結構楽しいからそれでええんちゃう……? 試行錯誤するのが楽しい人はさ。 >>910 むしろ全部を知らなくて済むようにリファレンスとhelp関数がある。 使いたいものがあれば調べりゃいい。
917 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 20:43:15 ] >>908-909 環境はwindowsです(defaultencodingはasciiに戻しました) >>909 さんの方法を試しても相変わらず文字化けします そもそもprint u"何か書く"だと正常に表示されるのにinput(u"何か書く")だと化けます もうお手上げです(´〜`;)
918 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 21:05:07 ] >>917 うん、プログラミング初心者は日本語(というか非ASCII)を使うなって金言があるんだ 他のことを勉強するのに時間割いたほうがいいぞ というか化けたのならその化けた文字列を貼ってくれ
919 名前:909 mailto:sage [2010/01/23(土) 21:22:03 ] >>917 これは大変失礼した。 import sys import codecs sys.stdout = codecs.getwriter(ここに端末の文字コード(Windowsならshift-jis(cp932とした方がよいかも)))(sys.stdout) raw_input(u"くわー") print u"ぽいうぃ" としなければならないんだった。 こちらではこれで動いたのでこれで動かなかったら知らん。
920 名前:908 mailto:sage [2010/01/23(土) 21:43:45 ] print が特殊なんだよな−。sys.stdout.encoding を考慮してくれる。 sys.stdout を含め、ファイル(標準入出力を含む)に対する write() は、通常エンコードが 必要になる。raw_input も write を使っているから、出力するべきエンコーディングで エンコードされたバイト列を渡さないといけない。 ファイルにリダイレクトされたときのこととかいろいろ考えまくった場合の お手本コードはこんな感じ。 import locale # sys.stdout.encoding があればそれを、無ければその環境で一般的と思われる # エンコーディングを推測したものを使う enc = getattr(sys.stdout, 'encoding', locale.getpreferedencoding()) # unicode 文字列に enc で encode できない文字が入っていたら '?' みたいな # 置換文字に置換する。 a = raw_input(u"くわー".encode(enc, error='replace')) >>919 みたいに、 sys.stdout を unicode が出力できるようにしてしまうのも 1つの手。ただし、こんどはバイト文字列を出力できなくなる(ascii文字だけなら なんとかなるけど)から、プログラム全体に渡ってそのポリシーを貫く必要がある。
921 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 23:59:39 ] どうせPython3でデフォルトがユニコード文字列になるんだから 初心者は何も考えずにsitecustomize.py作って 『非asciiはu''』って覚えた方が手っ取り早いと思う 『日本語を表示したいだけなのに ロケールやらコーデックやらめんどくせ〜』 ってなっちゃわないか?
922 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 00:03:23 ] >>918-920 回答ありがとうございます # -*- coding: utf-8 -*- import sys import locale enc = getattr(sys.stdout, 'encoding', locale.getpreferredencoding()) a = raw_input(u"くわー".encode(enc, 'replace')) print a で文字化けなく表示出来ました!encの中身はcp932になってました 1日悩んだ問題がやっと解決・・・ありがとうございました
923 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 00:34:35 ] はじぱいはエンコードについてほとんど書いてないから糞だよね。
924 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 00:46:41 ] 事細かに書くと『うゎ、Pythonめんどくせっ』ってなっちゃうからな 必要最低限のことは書いてあって 外部とやり取りする際には、必ず、decode、encodeを使って 明示的に文字コードを指定あげて、内部ではユニコード文字列で扱う といった趣旨のことは書いてある ・・・うん、充分めんどいね
925 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 01:15:33 ] ASCII文字でしか書かれていないファイルhoge.txtがありまして、 改行コードはCR+LFです。 これを元にして 改行コードがCRでそれ以外の内容は同じファイルpiyo.txtと、 改行コードがLFでそれ以外の内容は同じファイルfuga.txt を作りたいのですが、Pythonではどうすれば良いでしょうか? 文字コード変換は調べて見つかるのですが、 肝心の改行コード変換が見つかりませんでした。 どうかよろしくお願い申し上げます。
926 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 01:30:46 ] バイナリモードで扱うのが移植性が高くて簡単かな contents = open("hoge.txt", "rb").read() open("piyo.txt", "wb").write(contents.replace("\r\n", "\r")) open("fuga.txt", "wb").write(contents.replace("\r\n", "\n"))
927 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 02:00:51 ] >>924 でも暗黙的な扱いになると、いざバグった場合に対処しづらかったり
928 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 02:42:22 ] >>924 >外部とやり取りする際には、必ず、decode、encodeを使って >明示的に文字コードを指定あげて、内部ではユニコード文字列で扱う >といった趣旨のことは書いてある > >・・・うん、充分めんどいね 言いたいことは判るがその発言はどうかと思う >>927 perl とか php って糞だよね
929 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 07:10:42 ] >>927 確かに でも、お手軽にやっつけたいからスクリプトを使うのに コンソールに日本語表示するのがダルすぎる shift-jisに含まれないユニコード文字を扱おうとすると 更に訳わからん >>927 う〜ん、煽るつもりはなかったんだけど。。。
930 名前:908 mailto:sage [2010/01/24(日) 09:27:21 ] >>929 >でも、お手軽にやっつけたいからスクリプトを使うのに Python はスクリプトとしても使えるというだけで、スクリプト用言語ではなく 本格的なアプリケーションやシステムにも適したプログラミング言語だから >コンソールに日本語表示するのがダルすぎる いや、ファイル入出力はたしかに下手に隠蔽するべきではないけど、 画面出力では print を使って簡単に unicode を表示できるようになってる。 (で、ファイルにリダイレクトするときちんと UnicodeEncodeError になる) だから、コンソール上で手軽に使う raw_input も、printと同じで sys.stdout.encoding を見て自動でエンコーディングするべきだと思うよ。 実際、Python3 でも raw_input はバイト列じゃなくて文字列を受け取るしね。 バグ報告してみるよ。
931 名前:925 mailto:sage [2010/01/24(日) 11:57:29 ] >>926 ありがとうございます。 助かりました。
932 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 12:48:12 ] '2010-01-01 01:01:01'という日付文字列から日付オブジェクトを作成するために from datetime import datetime date = datetime.strptime'2010-01-01 01:01:01'), '%Y-%m-%d %H:%:M:%S') のようにすると思いますが、 '2010-01-01 01:01:01.11111'のようなmicrosecondを含めた日付文字列から 生成するためには、文字列フォーマットをどのように指定すればいいでしょう??
933 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 13:11:46 ] >>932 date = datetime.strptime('2010-01-01 01:01:01', '%Y-%m-%d %H:%M:%S.%f')
934 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 13:19:21 ] >>930 >バグ報告してみるよ。 すばらすぃ!期待してる!! >>929 >shift-jisに含まれないユニコード文字を扱おうとすると どのみち、cmd.exeではPython経由じゃ素直に表示できないし ファイルに書き込んだり、作ったりならいけるんだけどねぇ >>932 , 933 ちょっと修正 dt = datetime.strptime('2010-01-01 01:01:01.123456', '%Y-%m-%d %H:%M:%S.%f') microsecondが書式指定文字列に入ったのはPython2.6以降なんで注意 docs.python.org/library/datetime.html#strftime-behavior
935 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 14:01:34 ] u"うにこど".sub(u"う", u"あ、う") こんな漢字でUnicode文字列を置換しようとすると 'unicode' object has no attribute 'sub' って言われてしまいます。 Unicode文字列を置換するにはどうすればよいでしょうか?
936 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 14:04:37 ] subじゃなくてreplace。たぶんre.subと間違えてるんじゃないかな
937 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 14:04:39 ] >>> print u'うにこど'.replace(u'う',u'あ、う') あ、うにこど
938 名前:937 mailto:sage [2010/01/24(日) 14:05:29 ] 吊ってきまつ
939 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 14:09:28 ] >>936 あー間違えてました。 すみません。 ありがとうございました。
940 名前:デフォルトの名無しさん [2010/01/24(日) 16:28:03 ] Pylons使ってるんですが、checkboxの複数の値が取れなくて困ってます。 たとえば、 <input type="checkbox" name="hoge_cd" value="1"/> <input type="checkbox" name="hoge_cd" value="2"/> <input type="checkbox" name="hoge_cd" value="4"/> こういうので、二番目と三番目をチェックした状態でsubmitしたら['2','4']と 受け取れることを期待してるんですが、 request.POST['hoge_id']すると最後にチェックされた4だけが取れるという状態です。 Validatorが邪魔してるのかと思い、Validator外しても結果は同じでした。 むろん、 <input type="checkbox" name="hoge_cd1" value="1"/> <input type="checkbox" name="hoge_cd2" value="2"/> <input type="checkbox" name="hoge_cd3" value="4"/> こうやれば楽なんですが個数が可変だった際のことを考えるとこの方法は使いたくありません。 どうやったらリストで取得できるのでしょうか。
941 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 16:28:52 ] ミス。request.POST['hoge_id']じゃなくてrequest.POST['hoge_cd']でした。
942 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 16:50:22 ] nameを共通にしてidを変えたら? つか、frameworkの問題じゃなくてhtmlの話では?
943 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 16:58:13 ] <input type="checkbox" name="hoge_cd[]" value="1"/> <input type="checkbox" name="hoge_cd[]" value="2"/> <input type="checkbox" name="hoge_cd[]" value="4"/>
944 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 17:11:42 ] >>942 ID変えても変化ないですね。 >>943 それでrequest.POST['hoge_cd']で受け取ろうとするとKeyErrorになるんですよ。 先に書くべきでした、すみません。 request.POST.keys()でPOSTを吐かせたら、 hoge_cd hoge_cd hoge_cd とでてきました。popさせて受け取ってみます。
945 名前:940 mailto:sage [2010/01/24(日) 17:19:54 ] 解決。 request.POST.iteritems()でキー探して取得できました。 お騒がせしました。なんか解決方法が泥臭い気はするんですが。
946 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 17:22:00 ] html は糞だからな
947 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 18:22:32 ] >>942 これはframeworkの問題 サーバ側でPOSTに格納された変数をどう解釈するかってだけ Pylonは触ったこと無いけど、フォームの生成からframeworkに則ってやるべきだと思う 手で書いてるから『個数が可変・・・』とか気にすることになる リストなりdictなりにまとめてPylon側で処理できる・・・んじゃない?
948 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 19:09:31 ] 処理できる・・・のか?
949 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 19:35:50 ] 処理できる・・・はず
950 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 19:36:36 ] 処理できる・・・かもしれない
951 名前:940 mailto:sage [2010/01/24(日) 19:40:32 ] 947の意見はもっともだと思う。 が、個人的には ・たかだかHTMLの部品作るのになんで余計なことを覚えなきゃいけないんだw ・テンプレートだけでデザイン側が成立しないと不便で仕方ない。 という2点を理由に避けたいところ。 それゆえに<li py:for="foo()">${bar}</li>みたいなのがあるわけですし。
952 名前:932 mailto:sage [2010/01/24(日) 20:49:22 ] >>934 ありがとうございます。2.6から%fがサポートされてるんですね。。 GoogleAppEngineが2.5だったんでなんとか自作してみました。 あんまり需要ないと思いますが晒しておきます。。 def str2datetime(datestr): ''' 日付文字列をdatetimeオブジェクトに変換する ''' date = datetime.strptime(datestr[0:14], '%Y%m%d%H%M%S') ms = timedelta(microseconds=int(datestr[15:])) return date + ms print str2datetime('20100124123045.001927') - 結果 - 2010-01-24 12:30:45.001927
953 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 20:49:29 ] ajax にして pylons + smartclient 使ったら幸せになれるお
954 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 21:15:41 ] Pythonモジュール用のaproposってないですか? キーワードを入れると、それに関連するモジュールやメソッドを一覧表示してくれる というような…
955 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 22:09:21 ] pydocはちょっと違うか
956 名前:947 mailto:sage [2010/01/24(日) 22:29:58 ] >>951 どっちがどれだけ歩み寄るかってのは 新規frramework導入時には、必ず、ついて回るからねぇ そこら辺は、お任せするしかないね >>952 ちょっとガチガチすぎないか? 俺だったら def str2datetime(datestr, datefmt): if datestr.find(".") == -1: return datetime.strptime(datestr, datefmt) else: datestr, us = datestr.split(".") return datetime.strptime(datestr, datefmt) + timedelta(microseconds=int(us)) ぐらいかなぁ・・・あんま変わらんかw
957 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 22:33:40 ] >>954 ,955 これよくね? ・anything-ipython.el www.emacswiki.org/emacs/anything-ipython.el 最近はなんでもanythingにしておけば幸せだよね
958 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 22:36:39 ] 改めて見るとreturnが無駄に2つ有って気持ち悪いな def str2datetime(datestr, datefmt): if datestr.find(".") == -1: us = '0' else: datestr, us = datestr.split(".") return datetime.strptime(datestr, datefmt) + timedelta(microseconds=int(us)) 微妙だwww
959 名前:デフォルトの名無しさん [2010/01/25(月) 15:21:38 ] m[a][i] = (m[a][i] == m[b][i]) ? 0:1 Cだとこれでいけるんだがpythonで書くとすればどうすればいいの? 真偽値のやりかたがよくわからん
960 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 15:34:08 ] >>959 Pythonには 条件 ? 真の時 : 偽の時 のような三項演算子は無い。 代わりに、 真の時 if 条件 else 偽の時 という形の文を使う。 この場合だと、 m[a][i] = 0 if m[a][i] == m[b][i] else 1 となる。真偽値を代入したいなら、 true,falseの代わりにTrue,Falseを用いて、 m[a][i] = False if m[a][i] == m[b][i] else True とする。
961 名前:デフォルトの名無しさん [2010/01/25(月) 15:56:38 ] m[a][i] = (m[a][i] == m[b][i]) ? 0:1 m[a] = map(lambda x, y: 0 if x == y else 1, zip(m[a], m[b]))
962 名前:デフォルトの名無しさん [2010/01/25(月) 15:59:44 ] m[a][i] = Not (m[a][i] == m[b][i])
963 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 16:14:48 ] test
964 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 16:36:00 ] ↓ここって管理人不在? ttp://python.rdy.jp/
965 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:42:03 ] a = [a0, a1, a2] f.__call__(a) # fは引数を3個とる関数 というように、引数をリストで指定して 関数を__call__したいのですが、どうすればいいでしょうか?
966 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:48:24 ] f.__call__(*a)
967 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:48:35 ] f(*a)
968 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:50:56 ] f.__call__(*a) つーか f(*a) でいいじゃん
969 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:59:11 ] >>966-968 ありがとうございます!
970 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 00:07:01 ] >>960 aruyo?
971 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 01:44:00 ] みんPyまだ半分くらい読んだだけだが…え?だから?って感じです。 全部読めば、それなりのコードなりが書けたりするんですかね(汗 文系の俺には無理な分野なのか(涙
972 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 02:58:03 ] 「みんpy」は既にpython知ってる人が眺めるための本 初心者は「はじpy」の方が良いと(一部の人に)言われている なお「恥py」という似非本があるので要注意
973 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 03:04:44 ] 初心者につまらない本を買わせるなよ
974 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 03:08:16 ] みんpyはかなり初心者向けじゃないの? はじpyとか意味あるの? マジレス、初心者にはみんpy以外は無駄な感じ。
975 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 03:19:08 ] web の tutorial で充分
976 名前:デフォルトの名無しさん [2010/01/27(水) 04:52:47 ] >>972-975 つまり、もう少し読み進めてみます。 簡単なコードとか見るのも勉強になりますよね いいサイトとかありますか?
977 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 05:58:38 ] ない
978 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 07:23:02 ] もしかして、読んだり見てるだけで 実際にスクリプト書いてないの?
979 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 10:44:40 ] >>971 つまり、たったこれだけしか内容なくてPythonちょろすぎじゃね? ではなくて、一体どうしたらいいのかすらわからないみたいなことですか
980 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 11:54:05 ] >文系の俺には無理な分野なのか(涙 文系かどうかは関係ない お前がアホなだけ
981 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 12:54:17 ] ttp://inventwithpython.com/ これでゲーム作って遊んでればそのうち覚えるよ 英語だけど10歳のガキにも読めるように書かれてるから多分大丈夫 無料だしね
982 名前:デフォルトの名無しさん [2010/01/27(水) 15:02:52 ] >>861 のハック入れると、 SyntaxError: unknown encoding: cp932 (<ipython console>, line 0) が出てしまうんじゃがなぜじゃろう・・・? cp932のコーデックがないわけじゃないんだが・・・ utf8にしようが何にしようがダメなんだ
983 名前:デフォルトの名無しさん [2010/01/27(水) 15:06:26 ] 自己解決した。すぐ上の source=source.encode(self.stdin_encoding) をコメントアウトしたままだったorz
984 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 23:00:19 ] 972と972が存在を主張する一部の人の将来が不安
985 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 02:25:32 ] >>983 謝罪しろw
986 名前:デフォルトの名無しさん [2010/01/28(木) 14:44:20 ] >>985 おわびにjython用のms932コーデックでもさらそうと思ったんだが、 ブログとか持ってないんだよな。 どっかいいサイトないかしらん
987 名前:デフォルトの名無しさん [2010/01/28(木) 14:45:46 ] jythonでIPython動かしたらIJythonになるんだろうか
988 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 19:04:49 ] >>986 コード貼りたいだけならPastebinとかあるよ。
989 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 21:37:51 ] 次スレを
990 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 21:46:48 ] じゃあ 次スレは >>992 を踏んだ人が。
991 名前:デフォルトの名無しさん [2010/01/28(木) 22:44:05 ] 立てた くだすれPython(超初心者用) その6 pc12.2ch.net/test/read.cgi/tech/1264686181/
992 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 02:12:57 ] これはいい早漏乙
993 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 02:18:51 ] print "うめ"
994 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 02:57:39 ] >>989 日本は義務教育で基礎法学を教えないからわかってない人が多いみたいだけど、権利と義務は表裏一体、つまりワンセットなんだよ 例えば「生きる」という権利には「働く」という義務が伴なう。これは習っていなくたって誰でも常識で分かると思うけど 社会の中のあらゆる権利にはそれと対になる義務が存在するということ 戦後の日本人はこの表裏一体を勘違いして、自分の権利は相手の側から見ると義務なんだ、などと言う訳の解らない屁理屈を唱えて 相手(多くの場合国家)に対して一方的に権利を主張、すなわち義務の履行を求める者が多い いわゆるプロ市民と呼ばれる者達だ 日本人が彼らのような人間(一方的に権利を主張するだけの個体がそもそも人間の定義を満たすのかどうかは疑問だが − 個人的見解を述べれば否と断言すべきであろう。 「ヒト」は社会を構成する生き物である。社会の成員となって初めて「人間」なのだ。そのために「教育」が必要なのである)に違和感を覚えないのは もちろんマスコミの罪でもあるけど元を糾せば教育にも決して原因が無い訳ではない
995 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 03:00:18 ] どこ誤爆w
996 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 03:08:13 ] そういえばこないだ本屋でみんPy改訂版見たら>>26 がマジで載ってた 他人のピクルスを笑ってる場合じゃないと思った
997 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 08:26:06 ] > 日本は義務教育で基礎法学を教えないからわかってない人が多いみたいだけど、権利と義務は表裏一体、つまりワンセットなんだよ デマ乙
998 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 09:16:28 ] ぼくはパイソンを使っているのですが、どうすれば彼女ができますか? ちなみにブサイクデブで、ちょっとしたことでイライラします。 あとヘンなメガネかけてます。
999 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 09:24:15 ] メガネ買い換えろよwwww
1000 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 09:54:11 ] 1000なら一生童貞
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。