1 名前:デフォルトの名無しさん mailto:sageteoff [2016/02/18(木) 12:33:22.06 ID:S96kZ0X7.net] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その28 peace.2ch.net/test/read.cgi/tech/1447568768/ 関連スレ Pythonのお勉強 Part51 peace.2ch.net/test/read.cgi/tech/1443700103/ ◆関連リンク Python の Home Page ttp://www.python.org/ ◆長いコードはこういうところにはってください ttp://ideone.com/ ttp://codepad.org/ ttp://pastebin.com/ ttp://dpaste.com/ ◆まとめwiki ttp://python.rdy.jp/
709 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 15:34:55.87 ID:Xgwcc4Sq.net] classの def __init__ (self)のこのselfは何者ですか? なんで消えるの?いんすうではないの?
710 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 15:39:59.71 ID:sTpf+U42.net] >>676 「よくわからん」と「理解できない」は違うぞ
711 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 15:41:07.77 ID:sTpf+U42.net] >>680 消えるとは?
712 名前:649 mailto:sage [2016/06/05(日) 15:43:57.55 ID:7j5k7Q75.net] >>658 できました! 参考URLもありがとうございました。
713 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 15:48:12.51 ID:VJ6TUrY4.net] >>680 いんすう?ああ、ひきすうね selfは自分自身の参照 javaとかはthisキーワードで明示しなくても勝手に作られるがpythonは何故か 指定しないと嫌だったらしい あと消えてない >>> class A: ... def __init__(self): ... self.a = 120 ... >>> a = A() >>> print a.a 120 >>>
714 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 16:04:21.50 ID:Xgwcc4Sq.net] >>682 消えるというかほかの引数と挙動が違うといいますか、 >>684 selfもメンバー変数として使えるということですか? この場合の参照する自身とは何を指すのでしょう?class?
715 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 16:17:02.02 ID:b0qHmmcL.net] クラスとインスタンスの対比を理解してないんじゃないかなー
716 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 17:33:23.51 ID:VJ6TUrY4.net] 頭の中だけで考えるんじゃなくてとにかく手を動かして 自分で確かめるのがいいよ バグでつまる度に他人はいちいち付き合ってはくれない class A: def __init__(self, a, b): self.a = a self.b = b def sum(self): return self.a + self.b instance_a = A(12, 3) instance_b = A(5, 16) print instance_a.sum() print instance_b.sum()
717 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 18:02:01.24 ID:zUwxY7yt.net] なぜPythonにはfinalやconstがないのか なぜタプルなんて中途半端なもんで諦めたのか 可読性(藁)
718 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 18:10:10.42 ID:Xgwcc4Sq.net] >>687 一語1語意味を考えるよりも まず形にすることが重要なんですかね この例文をそらで書けるように写経してみます。ありがとうございます
719 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 18:14:31.56 ID:b7IP4BCr.net] >>689 オブジェクト指向について少し勉強すると良いよ
720 名前:デフォルトの名無しさん mailto:sag [2016/06/05(日) 19:21:21.29 ID:odhU5/tC.net] >>688 Pythonは動的言語なので結局実行してみてコケるまではミスに気付けない だからそういうのはあまり意味がないの
721 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 19:30:41.98 ID:ZvqErOlJ.net] 座標x,yを扱うメソッドの宣言がself,x,yてなるのは違和感あるよねえ せっかくのデートにお邪魔虫が一人付いてくるような感じ 何でこんな仕様にしたのか設計者に小一時間問い詰めたい
722 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 19:39:19.34 ID:IN+Q8fDx.net] 座標x,yを与えるには平面が必要。selfは、平面のこと考えている。
723 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 21:04:41.72 ID:IuZ3TLQW.net] プログラムは写経が最高の教科書って誰か言ってたな
724 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 21:22:06.74 ID:VJ6TUrY4.net] それもいいが自分なりに何か変えてみるともっと理解は早くなるはず 書いてみて、結果を予想する 予想が違えば何が違ったのかを考える そうすればだんだんとパターンが見えてくるよ
725 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 22:57:33.42 ID:bEHxSIM9.net] >>658 Groovy なら、クロージャを渡して、フィルタリングできる (1..6).grep{ it % 2 == 0 } → [2, 4, 6] >>685 まずこの本で、オブジェクト指向を学ぶ スッキリわかる Java入門 第2版、2014 その後、この2冊を順に読む たのしいRuby 第5版、2016 みんなのPython 第3版 オブジェクト指向は難しいから、必ず、この順番で勉強するように言われている
726 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 01:30:22.89 ID:xte0zwCj.net] sexメソッドはmaleとfemaleを引数に取ればいいだけなのに なぜかselfとかいう謎の人が付いてくる これは言語設計に失敗してると言って過言ではないのでは??
727 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 02:01:00.51 ID:i3B2Q/oE.net] >>697 面倒といえば面倒だが、 関数ではなくメソッドであることを明確に示すことができるので、 アリだと思っている
728 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 02:14:17.67 ID:4oDFfzZn.net] デスクリプタHowToでも読んで 設計思想が理解できないのなら 失敗してる言語はやめれば良い
729 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 02:14:21.66 ID:xG6oh14B.net] selfのおかげでクラスとインスタンスの関係が簡単になるから良い設計だと思うけどな
730 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 02:19:56.88 ID:XLITscU6.net] >697 言語設計が悪いのではなく、あなたのsexメソッドや、male female オブジェクトの設計が変なだけだと思うよ。 たとえば、整数同士の二項演算子__add__ や__mul__は、引数にselfとotherをとる設計になっている。self, left_hand_side, right_hand_side の3つの引数をとるような設計にはなっていない。 sexメソッドも、humanオブジェクトの二項演算子のように定義すればいい。male female なんて無駄な区別も必要ない。LGBTにも対応可能だ。 二人が対等な関係で無いのが嫌というなら、couple オブジェクトを作って、couple オブジェクトのメソッドとしてsexメソッドを実装すればいい。__init__に登場するselfは他人ではなく、他ならない二人のカップルそのものを指している。 class Couple(): __def __init__(self, a, b): ____self.a=a ____self.b=b __def sex(self): ____pass tsukkomi=Human('Hanako') boke=Human('Daisuke') miyagawa_fusai=Couple(tsukkomi, boke) miyagawa_fusai.sex()
731 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 02:22:39.56 ID:C/umrOnE.net] >>697 def sex(self, male, female): self.female.say("No thanks.") self.male.say("oh... my god...") self.male.onani()
732 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 05:00:17.45 ID:QbKl1YZH.net] 超初心者ってか厨房スレみたい
733 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 10:07:50.49 ID:PqDnUBGZ.net] >>697 は明らかにオブジェクト指向のオの字も理解してないからどうでもいいけど selfは暗黙に定義して欲しかったわ 関数がどうかなんて定義位置とデコレータの有無で一目瞭然だし
734 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 11:37:26.92 ID:Eh/3Xe+J.net] self明示はOOPが後付であるのとOOPにどっぷり依存する気がないからだと思う アクセス制御機能は未実装だし、メソッドはインスタンス無関係に関数として呼び出せる
735 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 16:40:02.89 ID:/qKSCvxc.net] >>692 気に入らないなら def hogemethod(w, x, y): とか書いても良いんだぜ
736 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 16:42:44.32 ID:/qKSCvxc.net] >>703
737 名前: 同じ人間って書き方みたら判るもんなんだな http://hissi.org/read.php/tech/20160606/UWJLbDFZWkg.html [] [ここ壊れてます]
738 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 16:51:39.69 ID:B7qEBb4m.net] 680以降の半分以上は俺のレスだけどね 見て分かったかな
739 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 17:06:45.96 ID:/qKSCvxc.net] 680以降の半分以上は読んでなかったからちょうど良かった
740 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 17:16:22.11 ID:gOmKNf/3.net] ここまでチンパンジーアイちゃんの自… いやなんでもないです
741 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 22:56:40.40 ID:xte0zwCj.net] >>704 male extends human def sex (self, female) ↑誰だお前 すまんのか?
742 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 22:59:16.48 ID:xte0zwCj.net] >>701 miyagawa_fusai.sex()とか気持ち悪い喩え持ち出すなボケェ!
743 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 23:12:01.83 ID:1e9MzW/h.net] >712 ちゃんとCoupleのsexメソッドの定義を見て下さい。 pass としか書いてませんから、何も起きません!
744 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 01:13:46.40 ID:i5smxfKl.net] >>713 なんてこった・・・あんたさては未踏タイトル保持者だな? 俺の負けだよ、完敗さ、君の瞳に乾杯
745 名前:デフォルトの名無しさん [2016/06/07(火) 03:05:33.76 ID:41OqMrsx.net] Pythonは、Rubyよりもキーワードを少なくした。 thisをキーワードにしたくなかったんだろう selfを渡しておけば、キーワードにならないし、thisなど、self以外を使ってよい 逆に、Rubyから言えば、実装上の詳細が、プログラマーに見えるのは、おかしい
746 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 05:15:36.17 ID:No9ZP2EK.net] >>697 君は第三者の立場が好きなんだな
747 名前:デフォルトの名無しさん [2016/06/07(火) 07:06:02.26 ID:N3u46K1k.net] >>711 何この言語
748 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 09:28:21.23 ID:y1uFD4iG.net] ちくわ大明神
749 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 12:58:53.24 ID:iYzT2OEj.net] 誰かアンタッチャブル柴田をpythonで書いてください
750 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 13:00:05.91 ID:Ts73h3EG.net] 設計書はあるんですか?
751 名前:デフォルトの名無しさん [2016/06/07(火) 17:10:40.05 ID:0rvA4F4X.net] ●AI技術で起業したい方へ3000万円まで投資します● 経験と情熱のある方のみ、お願いします。 good-hill.xsrv.jp/?id=789122 『 グッドエンジェル 』 投資家と起業家のマッチングサービス
752 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 22:37:02.43 ID:i5smxfKl.net] >>720 設計もおまえの仕事やぞ
753 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 02:17:13.72 ID:x3ey/7l2.net] argp = argparse.ArgumentParser(description="さんぷる",formatter_class=argparse.RawDescriptionHelpFormatter) argp.add_argument("--file-path", help="file path.", dest="--file-path", metavar="FILE_PATH", type=str, required=True) 上記のように書いて実行すると下記のように、helpの表示で、 --file-path の説明部分が改行されます。 % ./sample.py -h usage: sample.py [-h] --file-path FILE_PATH --files FILE さんぷる optional arguments: -h, --help show this help message and exit --file-path FILE_PATH file path. 改行されると見づらいので、ここを参考に→ttp://d.hatena.ne.jp/yuheiomori0718/20120125/1327494051 試しに下記のように書いたのですが、同じく改行されました。 (実際には100カラム以下の設定にするとは思いますが、テストで大きくしています) os.environ['COLUMNS'] = "1000" help時に改行を防ぐにはどうすればよいでしょうか?
754 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 06:43:53.48 ID:UrL3khAu.net] >>723 オプションとヘルプの間に改行が入るか否かは HelpFormatterクラスのmax_help_positionキーワードで決まる max_help_positionを変更した自作HelpFormatterクラスを ArgumentParser()のformatter_classキーワードに指定する方法で 長い名前のオプションでもヘルプを続けて表示できる この方法ではヘルプ全体は80桁で折り返しになる 表示を調整するならos.environ['COLUMNS']を変えるか HelpFormatter()のwidthキーワードに折り返しの桁数を指定する
755 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 06:45:48.76 ID:UrL3khAu.net] >>723 自作HelpFormatterクラスの手抜き実装 max_help_positionでヘルプの表示位置、widthで全体の折り返しを指定する class MyHelpFormatter(argparse.HelpFormatter): def __init__(self, prog): indent_increment = 2 max_help_position = 50 width = 100 super().__init__(indent_increment, max_help_position, width)
756 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 06:51:59.28 ID:UrL3khAu.net] >>725 の最後を間違えた super().__init__(prog, indent_increment, max_help_position, width)が正しい HelpFormatterクラスのインターフェースがドキュメントになっていないのは困ったもんだ
757 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 07:13:37.13 ID:dpHglwEd.net] 人が楽をするために作られたはずのライブラリが 逆に人を振り回すようになってきたな・・・
758 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 07:26:15.84 ID:zEmhDMcI.net] プログラミングそのものがバグを注入する作業に違いないと言われて久しいのに今更だな
759 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 07:32:30.53 ID:3hYUw3qX.net] コンピュータに限らず 人間の文明そのものがそうだな
760 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 07:53:30.49 ID:V7RBddf9.net] 俺たちの存在そのものがバグだった・・・?
761 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 08:08:57.04 ID:zEmhDMcI.net] UTSLもたまにはいいけど 標準ライブラリからこの体たらくだとやる気が削がれるのは確か
762 名前:デフォルトの名無しさん mailto:sag [2016/06/08(水) 08:13:51.28 ID:yLejXJHl.net] この世界でAPIリファレンスがまともなのはMSくらいだろ Pythonはまだマシな方
763 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 13:46:40.83 ID:78Tk8wL/.net] 多重ループを抜ける方法を教えてください
764 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 14:34:13.74 ID:G2ArSS3q.net] def f(c): __c[0] = 0 __return c a = [1, 2, 3] b = f(a) print(a) print(b) なんでaも値が変わっちゃうんですか? どうしたらaの値をキープできますか?
765 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 14:46:42.43 ID:5Ujr+av3.net] listはミュータブルだから
766 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 14:59:27.47 ID:N9K6PozS.net] >>734 b = f(a[:]) >>733 python 多重ループ 抜ける でぐぐる
767 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 15:02:24.00 ID:vAuk/aLa.net] www.amazon.co.jp/dp/B01GF018UY python入門書(英語)タダ www.amazon.co.jp/dp/B01GK955A4 スレ違いだけどおまけ SQL入門書もタダ
768 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 15:59:39.11 ID:G5w4BYim.net] ちらみしたけど確かにただ同然の 内容だった
769 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 16:31:19.44 ID:c99ZJOB9.net] >>733 returnとかraiseとか色々楽出来る
770 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 21:02:27.73 ID:DyDwul9e.net] >>737 オライリーのパクリっぽい装丁だな、今見たら500円になってる
771 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 21:34:29.83 ID:G5w4BYim.net] >>740 みたけど0円の価値すらないほん
772 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 21:47:34.78 ID:DyDwul9e.net] >>741 英語読めないから?
773 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 22:26:52.19 ID:R7wKDA60.net] >>736 b = f(a[:]) >> [0, 2, 3] a >> [0, 2, 3]
774 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 22:54:39.05 ID:V7RBddf9.net] >>742 おまえと違ってビギナーじゃないからじゃボケなす
775 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 22:56:16.19 ID:G5w4BYim.net] >>742 小防かよ 義務教育で必修なんだから おまえみたく不登校児でもないかぎい
776 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 22:57:08.97 ID:G5w4BYim.net] >>744 ビギナーこそヨンジャだめだめ
777 名前:723 mailto:sage [2016/06/09(木) 00:08:40.81 ID:G0dYhsWN.net] >>724 ,725 具体的なコメントまでありがとうございます。 添付のHelpFormatterクラス使ったら改行なしでできました!
778 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 00:09:46.60 ID:G0dYhsWN.net] 改行のコントロールくらいデフォルトでついててもいいのになー。 改行のコントロールは少数派なんだろうか。
779 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 00:22:10.35 ID:dIu2vu4F.net] モジュールを書いた人の意識の差かね argparseは徹底的な抽象化、モジュール化、カスタマイズ性に理想の高さを感じる 途中で収拾がつかなくなって投げた感もある
780 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 00:53:51.91 ID:G0dYhsWN.net] シンプルな汎用性と、カスタマイズすればで何でもできるよの両方を突き詰めた感じですかね。
781 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 01:58:39.37 ID:iYl+3gJl.net] >>747 >>725 はHelpFormatter()のキーワードを変えてるだけなのでサブクラス必要なかった lambdaか関数でラップして実引数で指定すればいい クラスのドキュメントに気を取られて簡単な方法が思いつかなかったよ def my_help_format(prog): return argparse.HelpFormatter(prog, max_help_optision=50, width=100) parser = argparse.ArgumentParser(formatter_class=my_help_format)
782 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 09:02:06.80 ID:Bcqmo76nj] >>743 >>> def f(c): ... c[0] = 0 ... return c ... >>> a = [1, 2, 3] >>> b = f(a[:]) >>> print(a) [1, 2, 3] >>> print(b) [0, 2, 3]
783 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 09:03:10.80 ID:a9ttoeJ0.net] >>743 >>> def f(c): ... c[0] = 0 ... return c ... >>> a = [1, 2, 3] >>> b = f(a[:]) >>> print(a) [1, 2, 3] >>> print(b) [0, 2, 3]
784 名前:723 mailto:sage [2016/06/10(金) 01:24:23.76 ID:nGW8B2Ze.net] >>751 おお! マニュアルからそんなことを読み解けるようになるんですね。 max_help_optision とあって訳の分からないエラーが出てしばらく悩みました笑max_help_position
785 名前:723 mailto:sage [2016/06/10(金) 01:25:17.67 ID:nGW8B2Ze.net] max_help_optision → max_help_position ですね。 シンプルになり良かったです。 補足情報ありがとうございました。
786 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 02:25:16.04 ID:QVZq31aG.net] タイポすまなかった 愚痴だけどmax_help_positionはマニュアルには載ってなかった だからソース読んだけどその前にpydoc3 argparseでインターフェースを見るべきだったな
787 名前:デフォルトの名無しさん [2016/06/10(金) 21:36:58.19 ID:C3wbvOhp.net] 初学者ですが質問があります いまpyqtのいろいろなサンプルソースを見て回ってるところですがある疑問があります クラスには何を書けばいいのか、 またどういう時にsuper(ほげほげ, self).__init__() を使えばいいのかわかりません 浅はかな知識を振りかざしてる感を醸し出し出るかもしれませんが回答よろしくお願いします
788 名前:デフォルトの名無しさん [2016/06/10(金) 21:39:11.89 ID:C3wbvOhp.net] super(ほげほげ, self).__init__() は親クラスのコンストラクタを呼び出したいときですね 自己解決しました
789 名前:デフォルトの名無しさん [2016/06/10(金) 21:46:34.21 ID:C3wbvOhp.net] 親クラスのコンストラクタが何をするかは 各自調べる必要あったのですね
790 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 23:50:47.28 ID:/tU4zyGw.net] initはコンラトクタスじゃないぞ
791 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 00:00:29.48 ID:QMDbOLDD.net] どういうタイプミスするとそうなるの?
792 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 00:10:00.93 ID:Y6AcCgvN.net] def f(): __print(n) n = 1 f() どうして関数の中からnを参照できるんですか
793 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 00:36:06.66 ID:Ls4SHB7Y.net] LEGB
794 名前:723 mailto:sage [2016/06/11(土) 00:49:52.08 ID:pKKUOpIX.net] >>756 そうなんですね。 色々調べていただいてありがとうございました。
795 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 06:39:02.84 ID:nfdvatZN.net] >>762 Linuxくだ質スレで回答を貰っていたろう。
796 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 09:41:24.79 ID:GfH/yQPm.net] PyPyって何て読むのでしょうか? おっぱいぱい?
797 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 10:20:37.77 ID:tfXoOcFv.net] >>740 中国製のipodのぱくり200円プレーヤー おもいだした よんだというか見た感想 これ500円だしたひとはごし
798 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 14:23:05.25 ID:syjnKRGS.net] AnacondaとPycharmを併用している人に聞きたいんだけど、自分の環境だと標準Pythonの時には機能してた PycharmのCreate VirtualEnvが使えなくなったんですけど他の方は使えてます? 代わりにCreate Conda Envが使えるけど仮想環境の容量が200M以上あってちょっと使う気になれない
799 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 22:26:39.80 ID:GnM3NsPs.net] リスト内包表記で代用可能なmapやfilterが残されて 代用不可能なreduceだけが削除されたのはなぜなんです? というかreduceみたいなことがしたいときはimport functoolsとかいうダサいことをしないといけないんですか?
800 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 22:58:53.73 ID:8GFDeHqz.net] >769 Guido のブログに理由が書いてあるよ。 The fate of reduce() in Python 3000 で検索すると出てくる。 reduce() が何やってるか理解しにくく、明示的にループを書いた方が分かりやすいから、というのが理由。 加算とか乗算、and or などの、結合則が成り立つ場合は、まだ分かりやすいのだけど、結合則が成り立つ演算はそもそも少ない。 加算については既にsum() があるし、 乗算についてはproduct() をreduce() の代わりに追加してもいい(実際には、itertools.product は乗算じゃなくて、直積集合をかえすことになったが)、 and or には、all() や any() を提案する。。ってなことが書いてあった。
801 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 23:09:49.27 ID:GnM3NsPs.net] >>770 つまり・・・どういうことだってばよ? reduceを使いたい時、sumとかitertools.hogeが思い付かなかったらforで書けっていう認識でGoodGuido?
802 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 23:52:18.29 ID:8GFDeHqz.net] >771 要領を得ない回答でごめんね。 reduce を使いたいときの対応法 1) sum any all とかで代用出来るとき、これらを使う。 2) sum any all とかで代用出来ないとき、 2)-a 適用したい関数に結合則が成り立つとき(たとえば、最大公約数を求めるmath.gcdとか)、import functools して、functools.reduce を使う 2)-b 結合則が成り立たないとき、素直にループ書く。 っていうのが、可読性と記述のコンパクトさの点から、良いんじゃないかな。
803 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 03:53:30.49 ID:jIzmg/lR.net] >>769 ステートメント縛りするときはいつもlambda式で書いてるよ (lambda r, f, a, b: r(r, f, a, b))( (lambda r, f, a, b: r(r, f, a[1:], f(a[0], b)) if a else b), (lambda a, b: a * b), range(1, 11, 3), 1)
804 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 09:40:34.74 ID:GERzBoUX.net] 芸人か
805 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 11:32:57.90 ID:lOmoIVUi.net] 予定通りなら今月の26日に3.5.2リリース
806 名前:厚切りパイソン mailto:sage [2016/06/14(火) 19:45:44.49 ID:w/vbqBPi.net] WHYーーーーーーーーー
807 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 23:02:27.90 ID:M59B2msj.net] >>772 あなたがパイソニスタの神か 俺の聖典に丸々コピペさせていただきました サンキューゴッド >>773 わからん そのコードは何をしてるんです? あとPEP8によればlambdaは非推奨ですよね
808 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 23:20:02.00 ID:awjEpHAv.net] PEP8のどこに書いてあるのさ 引用してみ? lambdaを変数に代入するなって項目はあるけど
809 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 23:25:16.86 ID:awjEpHAv.net] >Always use a def statement instead of an assignment statement that binds a lambda expression directly to an identifier. lambda式を識別子を割り当てる代わりに、常にdefステートメントを使用します。