1 名前:デフォルトの名無しさん mailto:sageteoff [2017/02/04(土) 11:01:07.30 ID:koQjiQcQ.net] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その31 echo.2ch.net/test/read.cgi/tech/1476246889/ 関連スレ Pythonのお勉強 Part52 echo.2ch.net/test/read.cgi/tech/1483756857/ ◆関連リンク Python の Home Page ttp://www.python.org/ ◆長いコードはこういうところにはってください ttp://ideone.com/ ttp://codepad.org/ ttp://pastebin.com/ ttp://dpaste.com/ ttps://try.jupyter.org/ ◆まとめwiki ttp://python.rdy.jp/ ネットにはデマ情報がいっぱい残ってるので正しい情報をメモ cmd で UTF-8 使える方法 (chcp 65001 について) ttp://nazochu.blogspot.jp/2011/08/blog-post_26.html mintty ttp://dogmap.jp/2011/11/15/mintty/ mintty ttp://tanakh.jp/posts/2011-11-15-windows-terminal.html ↓ 色々紆余曲折あったけど Git インスコして GitBash 使うのが一番楽っぽい https://git-for-windows.github.io/
855 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 20:25:35.68 ID:is7goi9i.net] >>841 これくらいだったら分かりにくくならないかと思ったけどやっぱり分かりづらいか >>842 なるほど そっちの方がシンプルでいいな
856 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 20:42:07.88 ID:SRILy9AU.net] 無限ループでwhile Trueを書いていいのはゲームプログラミングぐらいです このように書くべきです def choiceInput(prompt, choices): print(prompt) choice = input('>') while choice not in choices: print('入力エラー') print(prompt) choice = input('>') whileの横に条件式を書くことで第三者が見てもわかりやすいリーダブルコードになります
857 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 20:45:06.83 ID:by7KsFNN.net] シンプルだけど一瞬え?ってなる
858 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 21:25:30.72 ID:4a5+BdOt.net] >>844 こっちはちょっと冗長な気がするけどdo-whileとかdo-untilがないから致し方ないね
859 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 21:54:06.09 ID:1b+nwuRS.net] >>844 >無限ループでwhile Trueを書いていいのはゲームプログラミングぐらいです どういう理由でそうなんですか?
860 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 21:56:06.37 ID:8d4DwhQ0.net] def choiceInput(prompt, choices): choice = -1 while choice not in choices: print(prompt) choice = input('>') if choice not in choices: print('入力エラー') こうじゃいかんの?
861 名前:デフォルトの名無しさん [2017/03/17(金) 23:04:53.49 ID:scRdPl5f.net] 書いてあるやん
862 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 23:05:23.72 ID:woddruPm.net] >>844 同じ内容を2回書くのは修正があったときに修正漏れしそうで嫌
863 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 23:19:30.39 ID:AOLqOhzC.net] def choiceInput(prompt, choices): choice = None while choice not in choices: if choice is not None: print('入力エラー') print(prompt) choice = input('>') return choice
864 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 10:25:09.78 ID:nckgi/Sy.net] >>850 同じ内容を関数にまとめるのは常識
865 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 10:27:37.34 ID:iWX2QE0o.net] >>851 これが一番しっくりきた
866 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 11:33:37.63 ID:1jN6Nl4i.net] >>852 それは >>844 に言って欲しいし あの程度の奴でいちいち関数化するのもどうかと思う
867 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 11:59:15.66 ID:njmdr4yw.net] >>846 横だけどご存知なら教えて下さい do〜系の処理系を持たないのはpythonのポリシーか何かですか?
868 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 12:55:48.59 ID:1jN6Nl4i.net] >>855 Do ... Loop って言うのが構文的に難しいからでしょ
869 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 14:20:38.66 ID:IfcuZKcb.net] >>855 https://mail.python.org/pipermail/python-ideas/2013-June/021610.html Guidoが「馬鹿にはあまりに高度すぎる機能だから拒否する」と述べたので入っていない プログラミング言語のデザインにポリシーなんて高度なものはなく、基本的に開発者の腹具合だけである 思想というほど成熟したものでもない 俺は嫌いだと言われたら入らない
870 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 14:31:30.97 ID:IfcuZKcb.net] そうじゃない言語はどれかというとC++とかJavaとか あれらは委員会による設計をしている (Javaは怪しいが)独裁者に振り回されることは減る 一方で自分の提案を通そうとするための馴れ合い 仕様の肥大化、策定の長期化を招く
871 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 18:40:35.06 ID:vEldA4mj.net] python3のクラスで import unittest class TestCap(unittest.TestCase): def test_one_word(self): text = 'Duck' self.assertEqual(text, 'Duck') の場合self.assertEqualはsuper()で呼び出しちゃダメなの? そもそもどうしてselfが出てくるの?
872 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 20:20:43.59 ID:IfcuZKcb.net] 宗教的な理由のため
873 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 21:48:13.72 ID:G3oyudm3.net] まあOO自体が一つの宗教 誰が書いても同じようになるというPythonの売りが OOで見事に消し潰されているのは罪深いことだ
874 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 22:02:42.41 ID:vEldA4mj.net] つまりどういうことだ
875 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 22:27:57.82 ID:NEZ4wluv.net] >>862 つまり、そんなこと気にすんなってこと test ができればオケ
876 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 09:28:19.12 ID:CiiadJVM.net] >>856 >>857 ありがとう、そうむずかしい構文とは思わなくも思惑は思惑だから仕方ない >>857 Ritchieにも聞かせたい言葉だな
877 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 10:28:59.82 ID:IinMJCLx.net] >>864 Python の構文は('_' は空白のつもりね) 1: aaaa 2: __bbbb 3: __cccc 4: dddd となっていたら 1〜3 をブロックと認識するからブロックの終端の記述がない なので Do〜While みたいに終端に条件を書かないといけない構文は難しいって話 他の言語は終端があるからそう言う問題は発生しない
878 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 12:32:09.54 ID:xRIvmzBZ.net] "2017/03/19"みたいな日付とその日の値段が記録されたcsvをパースしてmatplotlibでグラフにしたいんだけど 日付の部分をstrじゃなくて時間の軸として扱うにはどうすればいい?
879 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 12:42:04.00 ID:LWm6dPWw.net] >>866 strからdatetimeに
880 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 12:59:35.56 ID:xRIvmzBZ.net] >>867 datetimeのオブジェクトならそのままx軸につっこめる?
881 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 13:13:33.92 ID:LWm6dPWw.net] >>868 できる
882 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 13:27:30.74 ID:x
] [ここ壊れてます]
883 名前:RIvmzBZ.net mailto: >>869 ありがとう、strptimeメソッドを使えば文字列から変換できるのね [] [ここ壊れてます]
884 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 14:27:32.69 ID:zGHcaEct.net] tzに注意
885 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 22:28:25.85 ID:Lj5IhMr8.net] >>865 if-elseと同じじゃない?
886 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 23:52:17.84 ID:W8FwC9AB.net] print(' '.join(map(str, sorted(set(tmp))))) #tmp = [3, 4, 2, 1,...N] #重複削除、並び替え、文字列に変更、つなげて出力 上のようなコードがあるとして、 ()のネストはどの位までが許容範囲ですか?
887 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 00:02:48.06 ID:G9+XvfW+.net] 括弧2つまで toolz.functoolzのpipeとか使う
888 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 00:05:54.26 ID:sXp84j6l.net] >>873 人それぞれ、ただスタイルガイドには一行は79文字までというのはあるから長すぎるとアウト
889 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 00:14:08.40 ID:3ZZI/KAX.net] ()の数を減らしつつ変数も無いの良いですね! 標準ライブラリとかでも同じ事可能ですか?
890 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 00:26:32.61 ID:G9+XvfW+.net] >>876 pipeのこと? 自分でpipeメソッドとかpipeオペレータみたいの作ればできるよ toolz.functoolzのpipeのソース toolz.readthedocs.io/en/latest/_modules/toolz/functoolz.html#pipe >>873 のコードはこんな感じに pipe(tmp, set, sorted, partial(map, str), ' '.join, print)
891 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 08:41:28.66 ID:A6CX4sNJ.net] A= 1:a 2:b 3:c 1:d B= 1:e 2:f C= 1:a:e 2:b:f 3:c 1:d:e Aの数字部分をBの数字で検索して 該当する数字があったらBのアルファベットをAに追加して Cのような結果を得たいのですが Aの数字が重複していて辞書が使えなくて どうすればいいのかわかりません。 ご指導よろしくお願いします。 python2.7です。
892 名前:デフォルトの名無しさん [2017/03/20(月) 10:20:35.47 ID:Ia6BH4Hf.net] ideone.com/G8bzYg
893 名前:854 mailto:sage [2017/03/20(月) 10:42:07.11 ID:nRwuUvF6.net] >>865 そうか、インデントに意味ある言語でしたっけ ブロック構造の明示って結構悩ましいですね 重ねてありがとう
894 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 11:01:45.40 ID:6RAbChbA.net] >>872 else は else ブロックの開始だから終端ではないでしょ >>880 やってやれなくはないと思うけど見易さとの両立は簡単じゃないと思う
895 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 13:35:45.83 ID:4V6fNJEd.net] >>878 Aをいっこずつの辞書たちで作ってマージ
896 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 17:16:42.51 ID:l4MXbYf5.net] >>878 https://gist.github.com/anonymous/c6225d9299726b47ae4e03189ad8ad0f 一応動くものはできたけどけっこう面倒くさいな python2.7.13で動作確認
897 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 17:22:42.32 ID:c+tYojiZ.net] 素直に改行した方が見やすいと思う print(' '.join( map(str, sorted( set(tmp)))))
898 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 17:27:48.11 ID:G9+XvfW+.net] >>881 >else は else ブロックの開始だから終端ではないでしょ do-untilにしてuntilブロックの開始として認識しても同じことじゃない? untilはその後にインデントされたブロックを受け取らないっていうルールを課せばいいだけで インデント記法の言語だからってdo-while系の実装が他言語より難しいってのは理解できない
899 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 17:43:29.84 ID:XdgtrFwn.net] >>878 codepad.org/83uNtpXa
900 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 18:33:03.42 ID:LcNjV7jZ.net] >>885 いや、だからできないって話じゃなくて > untilはその後にインデントされたブロックを受け取らないっていうルールを課せばいいだけ と言うような特殊ルールが必要でしょって話 実際の見た目も... 1: do 2: __aaaa 3: __bbbb 4: until ... 5: while ... 6: __cccc 7: __dddd 8: if ... 9: __eeee 人によるんだろうけど俺には6行目が until ブロックの始まりのように見えてしまう
901 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 18:35:52.50 ID:sXp84j6l.net] まあGuidoは心の中で普通のwhileで十分やろとか思ってそうだな
902 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 18:58:19.86 ID:MXp+WHcu.net] 1: do 2: __aaaa 3: __bbbb 4: __until ... なら、そう不自然でもないでしょ。関数のdef~returnと似た感じで。 まあ必要だとは思わんが。
903 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 19:03:55.76 ID:sXp84j6l.net] untilがブロックの中にあるのはキモすぎるなと、主観だけど
904 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 19:10:07.12 ID:MXp+WHcu.net] じゃあキーワードを breakif にするとか。
905 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 19:57:03.67 ID:LcNjV7jZ.net] >>891 それなら while True: __aaaa __if condition: ____break で充分なような気がする
906 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 20:18:16.81 ID:A6CX4sNJ.net] >>882 >>883 >>886 みなさん ありがとうございます! 勉強しながらトライしてみます。
907 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 20:38:40.38 ID:MXp+WHcu.net] >>892 だから、それ必要ないってポリシーなんでしょ。構文的に難しいって理由じゃなくて。
908 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 20:42:18.91 ID:G9+XvfW+.net] >>887 インデントされたブロックを受け取らない文なんてPython書いてればいくらでも使うじゃん 特殊じゃないよ それにuntilの下に必ず空行入れるから6行目がuntilブロックの始まりに見えるなんてこともまずないでしょ 俺は>>889 のほうが不自然に感じるかな for-elseやif-elseを考えるとuntilだけブロック内ってなんか違う気がする
909 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 20:57:25.03 ID:kRRsPMR+.net] プログラムの先頭でimportしたモジュールを使うクラスをほかのプログラムから呼ぶ時って 呼び出す側のプログラムでもimportしなきゃならないの?
910 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 21:09:14.26 ID:6EO7QiL7.net] 試せよと言いたいが結論から言えばimportしなくていい
911 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 21:09:25.37 ID:LcNjV7jZ.net] >>895 > インデントされたブロックを受け取らない文なんてPython書いてればいくらでも使うじゃん 特殊じゃないよ 具体的によろしく
912 名前:854 mailto:sage [2017/03/20(月) 21:10:05.29 ID:nRwuUvF6.net] >>883 w(゚∀゚) 殿下は永遠だ
913 名前:854 mailto:sage [2017/03/20(月) 21:15:18.73 ID:nRwuUvF6.net] >>889-892 機能としての繰り返し構造で「一度は処理する」流れはある! あるにはあるが、コーディング上の特質まで拘る言語だと存在が難しいかもしれない アセンブラ時代では普通に処理・判断・分岐の流れで繰り返す事があったが pythonの見栄えを含めたルールに今ひとつしっくり来ないね 言語って難しいと別な意味で思う
914 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 21:28:14.72 ID:6EO7QiL7.net] どうでもいい 話してる暇があったら僕の考えた最強の言語でも作ってみろ 誰もお前の妄想なんか体現してやらねーよ
915 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 21:54:45.70 ID:G9+XvfW+.net] >>898 print(“foo”) __print(“bar”)
916 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 12:53:28.65 ID:l9q4915F.net] クラスに実装したメソッドが増えすぎて読みづらくなってきたので、C++のように別ファイルに分割しようとおもうのですが、Pythonだとどうやるのが一般的なのでしょうか?
917 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 13:00:44.91 ID:RBsv5qkl.net] >>902 そうか、 (制御フロー文で)インデントされたブロックを受け取らない文 って書いてないとダメな人もいるのね...
918 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 13:54:42.63 ID:Z6nDRQUG.net] >>903 できない Pythonにおいては一般的ではない
919 名前:デフォルトの名無しさん [2017/03/21(火) 14:09:34.83 ID:6WWBsw/3.net] >>900 while True: ..hoge ..fuga ..if until==False: break
920 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 14:11:41.64 ID:ymW1yDlu.net] >>903 ---file hoge.py--- class Hoge: ...method1 ---file fuga.py--- class Fuga(Hoge): ...method2 ---file hage.py-- class Hage(Fuga): ...method3
921 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 14:32:22.05 ID:l9q4915F.net] >>905 ,907 レスありがとうございます。 別のオブジェクトからコマンドを受けて、各コマンドに対応したメソッドで処理をするコマンドプロセッサのようなクラスを作っています。 同じ階層の機能を実装したメソッドが増えすぎた場合というのはどのような形で管理するのでしょうか?
922 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 14:37:22.69 ID:6WWBsw/3.net] 各コマンドに対応したメソッドを定義したオブジェクトを作って call かな そのオブジェクトはメソッドごとに違うクラスで 全て共通の抽象クラスから派生したものにするとかね
923 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 15:47:09.08 ID:U/W71QG6.net] あのすいません、hogeとは何ですか? 調べても意味が分かりませんでした。
924 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 15:50:43.25 ID:uzSvvu2S.net] >>910 メタ構文変数と言って特に意味はない、名前付けに困ったらとりあえずあてはめておくもの
925 名前:デフォルトの名無しさん [2017/03/21(火) 16:28:28.16 ID:F9uzFhK1.net] >>910 穴がほげる事
926 名前:デフォルトの名無しさん [2017/03/21(火) 16:28:49.49 ID:F9uzFhK1.net] 穴=セキュリティホールな つまり脆弱性が出来る事をhogeという
927 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 16:58:01.02 ID:jV0Y+t/Y.net] >>903 モジュールに分割 次点でMixin Single Inheritanceで継承構造を深くするのはオススメしない
928 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 17:32:09.44 ID:jV0Y+t/Y.net] >>904 インデントは字句解析のレベル インデントされたブロックを受け取らないかどうかは構文解析のレベル インデントされたブロックを受け取らないかどうかは 制御フロー文かどうかとは全く関係なく決められるルール 結局>>865 の主張には全く根拠がない
929 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 19:12:46.26 ID:72kEtT2Q.net] >>915 > 見易さとの両立は簡単じゃないと思う の意味が理解できてないのかなぁ まあ、感覚的なものだから俺はそうは思わないって言うんだろうな もう引っ込みつかなくなってるみたいだし
930 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 19:31:01.92 ID:l9q4915F.net] >>909 やはりそうなりますよね。 ちなみになんですが、私、オブジェクト指向を始めたばかりでそのようなオブジェクトやクラスを呼ぶ名称がとんと見当がつかないのですが、 抽象クラスやその具象クラス、オブジェクトにつける名前と言うのはどういった名前になるのでしょうか…… 少し例を教えていただけると有り難いです。 >>914 Mixinというのは初めて知りました。これは何故次点なのですか? またモジュールに分割というのは>>909 と同じような作り方でしょうか?
931 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 19:47:37.03 ID:2crVP7Yr.net] hogeって書くとジジィ扱いされるよな。。実際、ジジィなんだけど。
932 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 19:59:09.85 ID:3q/SWegZ.net] こんなのどうかな do: aaa bbb :until ccc == ddd while True: eee fff
933 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 20:02:36.48 ID:zOC6lCjq.net] hooとかfooはノリノリな感じがして好き
934 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 20:10:29.82 ID:Wm5e28fx.net] 私「フッ、こういうのはメタ構文変数と言って、ノリノリな感じが語源になったわけではないのだよ」 私「どれWikipediaで調べてからマウンティングするか」 https://ja.wikipedia.org/wiki/メタ構文変数 >プログラミング言語Pythonでは、メタ構文変数に spam, ham, eggs などを使う。 私「!?」
935 名前:デフォルトの名無しさん [2017/03/21(火) 20:11:48.49 ID:Abf9RIR5.net] Pythonを使う前に空飛ぶモンティパイソンを100回見よう!
936 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 20:12:00.13 ID:uzSvvu2S.net] hage
937 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 20:40:10.13 ID:wMSmjxpw.net] >>917 Rubyは多重継承できない単一継承モデルだから、親クラスは1つのみ。 継承関係にない、便利な関数・utilityなどは、横からmixinする。 mixinされたモジュールも、継承チェーンに入れられる Object ← 親 ← 子 Object ← utility ← 親 ← 子 Pythonでも、調べてくれ
938 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 20:51:30.07 ID:jV0Y+t/Y.net] >>916 もう恥ずかしいからやめてくれよ〜 >>889 の形式だって>>892 とパーサーの処理はそう変わらないんだから何も難しいことなんてないだろ? indentがブロックの開始でdedentがブロックの終端 そういうルールなだけで括弧やdo/end使ってる言語と基本同じだよ python使ってるやつはそんなことも知らないのかって思われる
939 名前:デフォルトの名無しさん [2017/03/21(火) 21:55:47.37 ID:kMyYv3zx.net] なんかKeyErrorってコンパイルしたら出てくるけど考えられる原因って何かある?
940 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 21:57:34.32 ID:uzSvvu2S.net] >>926 辞書型オブジェクトから存在しないキーを取ろうとすると出るエラー、解決策はググれ
941 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 22:02:37.33 ID:5glqzG46.net] while ループ中で最初にa=0という変数を作っての最後でa+=1しても 2周目で0に戻らないためにはどうすればいいですか?
942 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 22:03:59.43 ID:uzSvvu2S.net] >>928 aの宣言をループの外でやるかその目的ならforループに置き換えるのが分かりやすいかなと
943 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 22:11:03.98 ID:5glqzG46.net] >>929 外で宣言してもなぜか0に戻るんですよね
944 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 22:13:18.30 ID:uzSvvu2S.net] >>930 pastebin辺りかこのスレでもいいからソース貼ってみて?
945 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 22:18:12.79 ID:72kEtT2Q.net] >>925 誰もパーサーの処理なんて問題にしてないのに何を必死になってるんだい? マジで引っ込みつかなくなってるじゃん w
946 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 22:21:21.56 ID:5glqzG46.net] pastebin.com/bmD2DHrn これでいいです?まだ作りかけだけど
947 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 22:22:46.16 ID:jV0Y+t/Y.net] >>932 インデントがパーサー以外の何に関係してんの? 息吐くように嘘をつくなよホント
948 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 22:32:09.98 ID:uzSvvu2S.net] >>933 ループ内に既に存在するaと変数名が被ってるからどちらかの変数名を変えないと
949 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 22:48:38.55 ID:EOakUJK/.net] いつまでdo-whileの話してんだよ いい加減死ねよADHD野郎
950 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 23:02:57.79 ID:72kEtT2Q.net] >>934 嘘? 意味わからん 誰も実装の話なんてしてないのに w
951 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 23:07:50.55 ID:jV0Y+t/Y.net] >>917 Mixinが次点なのは一つのクラスにメソッドを定義する必然性を感じなかったから モジュール分割はこの場合は各コマンドの意味的カテゴリ別にクラスを分割するイメージで書いたけど >>909 の人が書いてるようなコマンドパターン的なやり方もいいと思う その場合でもある程度のまとまりでモジュールにすることになるんじゃないかと
952 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 23:18:48.13 ID:2crVP7Yr.net] >>921 ファーー!
953 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 23:31:39.75 ID:5glqzG46.net] >>935 動きました。ありがとう
954 名前:デフォルトの名無しさん mailto:sage [2017/03/22(水) 00:01:29.44 ID:hOsz3hmd.net] >>938 なるほど……。最早スレチかもしれませんが、 「コマンドの処理部を一つのオブジェクトにまとめて、コマンド受付用の公開インターフェイスを用意して内部で各コマンドに対応するメソッドに振り分ける」 みたいな感じで作っていたのですが、pythonというかオブジェクト指向っぽくするにはどうしたら良いのでしょうか? この辺はもうデザインパターンを学べという感じでしょうか?
955 名前:デフォルトの名無しさん mailto:sage [2017/03/22(水) 00:34:58.08 ID:vhfzvoEm.net] >>941 その作り方で別にいいと思うけど? 例えばこのサンプルでcat/dog/bearに対応するメソッドが各クラスになってるのが普通に分割するイメージ https://www.safaribooksonline.com/library/view/python-cookbook-2nd/0596007973/ch04s17.html こっちはコマンドパターンのイメージ python-3-patterns-idioms-test.readthedocs.io/en/latest/FunctionObjects.html Undo/Redoとかも必要ならこっちのほうがいいかもね