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/
809 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 19:59:36.65 ID:EHnwNQwM.net] 大体あってる 俺と同じような低脳が沢山いるからできるなら使わない方が良いってなるんだが
810 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 20:13:15.76 ID:SxrvnFMh.net] 戻り値の概念がいまいち理解できずに困っています def gauss(n): sum = 0 for i in range(1, n+1): sum += i return sum print (gauss(100)) とするじゃないですか。そうすると1〜100の和の5050が返ってきますよね でもreturn使う理由がよく分からないんですよ。関数に引数入れたときの計算結果は一つに定まってるじゃないですか だからreturnなんか使わなくてもgauss(100)と入力すれば5050が出るんじゃないかと。でも出ないんですよね
811 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 20:37:27.43 ID:hCSBa/z+.net] 数学の関数とは違う。結果が一つに定まるとは限らない、例えばinput関数 input('何か適当に入力しろよ>')
812 名前:デフォルトの名無しさん [2017/03/14(火) 20:44:36.81 ID:JZnTb5HD.net] 関数ってファイル処理だけさせたりもするから 返り値なんてなくても・・・
813 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 20:47:50.22 ID:ZhDhc0/i.net] >>796-797 Pythonは高脳をターゲットに開発された言語だからな。 低脳にはfor elseの素晴らしさは理解不可能 >>798 あとdef gauss(n) もnつけなくて正しく動作する気がするよね def gaussでOKだよね
814 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 20:53:57.47 ID:gIyZXesU.net] >>801 guidoは今後のPython初学者のために複雑性を増やしたくないって言ってんだろがゲロカス 板橋まで走って逃げるな死ね https://www.python.org/dev/peps/pep-3136/
815 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 13:06:43.36 ID:kWoiZWut.net] パイソンは超ヌーブなんですけど アナコンダ入れるかパイソンそのまま入れるかどっちがオススメですか??
816 名前:デフォルトの名無しさん [2017/03/15(水) 13:18:54.12 ID:1B/djtP8.net] >>803 どういう環境を構築したいか書いてくれないと答えようがない
817 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 13:36:37.62 ID:7YWEdixI.net] 太いのが好き
818 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 13:42:28.24 ID:kWoiZWut.net] >>804 テンソルフローとかいうのを触ってみようと思います
819 名前:デフォルトの名無しさん [2017/03/15(水) 13:55:07.15 ID:1B/djtP8.net] >>806 公式のインストールに関するドキュメントは読みましたか? https://www.tensorflow.org/install/install_windows
820 名前:デフォルトの名無しさん [2017/03/15(水) 14:03:28.57 ID:mmE2Q0nO.net] >>803 アナコンダ入れた方がいいだろう。
821 名前:デフォルトの名無しさん [2017/03/15(水) 14:04:23.54 ID:1B/djtP8.net] 個人的には #Python3.5.3入れる https://www.python.org/downloads/release/python-353/ #仮想環境をつくり、アクティベートする python -m venv tf tf\Scripts\activate.bat #tensor flowを入れる pip3 install --upgrade tensorflow がいいっと思います
822 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 15:27:54.58 ID:kWoiZWut.net] >>808 なんか上の方で、アナコンダ入れるとなんかあった時に大変みたいなのを見たのですか大丈夫ですかね・・? >>809 ありがとうございます、 2ブロック目の仮想環境を作り、アクティベートのところですが、ここの役割は何でしょうか??これがないと動かないのでしょうか?
823 名前:デフォルトの名無しさん [2017/03/15(水) 16:22:40.13 ID:71YRh3pu.net] 超ヌーブならアナコンダ一択やろ
824 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 16:51:50.83 ID:D4lD2LgX.net] 逆でない? 判ってる人とかお試しで触る程度ならanacondaでいいだろうけど python自体が初めてでanacondaから入ると後々苦労するのが目に見えるが >>809 のやり方ならそんなに手間変わらんのだから そっちの方がいいと思う
825 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:02:57.88 ID:kWoiZWut.net] なるほど、 仮想環境のアクティベートはおまじないと思ってやっちゃった方がよかですか?
826 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:13:13.53 ID:nVuVQrDL.net] うん、イイヨー anacondaはちゃんと最新版のを煎れるようにね
827 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:15:06.68 ID:kWoiZWut.net] え、この流れやとアナコンダはダメなのでは・・・?どっちが正しいと?
828 名前:デフォルトの名無しさん [2017/03/15(水) 17:29:32.79 ID:rl+wZjWB.net] まずpythonを学ぶべきだ こんなクソクエスチョンするようなカスがいきなりtensorflowなんて使えるかよ
829 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:32:02.39 ID:D4lD2LgX.net] 混乱させてすまんね pythonで今後もやってく人 = >>809 機械学習メインでpythonメインでない人 = anaconda みたいなイメージ? python今後もやってくなら基本的な環境の作り方ぐらい知らないと苦労するから 俺はどうせやるならちゃんとやった方がいいよねーって思ってんだけど 機械学習をやるのが目的でpythonは手段でしかないならanacondaは お手軽だよねーって思う人もいる やれる事は変わらんからお好きな方で
830 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:33:21.58 ID:kWoiZWut.net] ごめんなさい。。超初心者って書いてるけん許されるかと思いました。。
831 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:35:58.71 ID:kWoiZWut.net] >>817 なるほど!分かりやすかったですー! ホントはテンソルフロー動かせたらいいのだけど、パイソン出来たらいろいろ便利そうなのでこの機会にちゃんとしてみようと思います!ありがとうございます!
832 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:38:18.14 ID:lNG1lg3A.net] いや初心者ほど環境を気にせず使えるanacondaにすべき 嘘教えるな
833 名前:デフォルトの名無しさん [2017/03/15(水) 17:44:17.93 ID:AGhEyNXo.net] とりあえず初心者は動かしてみて遊ぶべき 環境構築はその後で問題はない
834 名前:デフォルトの名無しさん [2017/03/15(水) 17:52:06.03 ID:3u79xgLU.net] 動かした所で使い道がない事に気づく
835 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:58:44.65 ID:1Y+2q/Q/.net] 今ってウェブ上でコード書いてそのまま実行できるサービスもある環境だからまず最初はそう言うサービスを利用するのをオススメするかな しばらく遊んでりゃ大体文法も把握できるからそこから環境整えてサイトやら参考書見てお勉強
836 名前:デフォルトの名無しさん [2017/03/15(水) 18:03:59.74 ID:3u79xgLU.net] 初心者の頃とかは公式ドキュメント見てたら4日過ぎてました とか、良くある事なので 1日4〜5時間は寝た方が良いよ (むしろ、眠れなくて草生える)
837 名前:デフォルトの名無しさん [2017/03/15(水) 18:08:01.29 ID:1B/djtP8.net] サードパーティ製のものを使うより、できる限り公式なもので環境構築できるようにしておいた方がいいよ ていうか、インストーラでPython入れて、pipでtensorflow入れるだけやん 手間かわらん 仮想環境を使う理由はグローバルな環境にゴチャゴチャ突っ込むのが好きじゃないから 別に構わないなら、Pythonインストールしてpipでtensorflow入れるだけでいいよ
838 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 18:17:10.79 ID:lNG1lg3A.net] >>824 すげえな 公式ドキュメント見てたら4〜5分で寝れるわ
839 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 18:30:32.51 ID:nVuVQrDL.net] >>820 初心者がいま普通にanaconda入れるとtensorflow動かない(もうfixされたのかな?
840 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 19:35:03.95 ID:mGKxIZbB.net] 初心者なんか罠踏んで爆発して死んだらええねん 生き残った奴こそ素質がある
841 名前:デフォルトの名無しさん [2017/03/15(水) 19:45:59.62 ID:1B/djtP8.net] >>828 草
842 名前:デフォルトの名無しさん [2017/03/15(水) 20:28:31.96 ID:IsHCJowS.net] >>828 死んだのにまだ未練残してるんですね 一刻も早く成仏出来ることをお祈りしています
843 名前:デフォルトの名無しさん [2017/03/15(水) 20:55:46.33 ID:KVS3OOCo.net] print([i * 10for i in range(2)]) これがエラーにならないって糞なパース処理だな
844 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 20:55:53.65 ID:dhTQXuE0.net] 機械学習やるんならいきなりライブラリ使うんじゃなくて 最低でも線形回帰,主成分分析,NNあたりはフルスクラッチできるようになってからの方がいいと思う
845 名前:デフォルトの名無しさん [2017/03/15(水) 20:56:59.45 ID:KVS3OOCo.net] こうかくとちゃんとエラー出してくれるのに print([i * 0xafor i in range(2)]) もちろんこうかけばエラーはでない print([i * 0xa for i in range(2)])
846 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 21:31:48.90 ID:XYUUle5Y.net] パイソンをインストールしたんだけど、VSみたいにデバッグできると便利だなと思うんだけど、どしたらええかな? 今はコマンドプロンプトから実行してるんだけど、どこでなぜエラーしてるかとかさっぱり分からない
847 名前:デフォルトの名無しさん [2017/03/15(水) 21:52:20.25 ID:1B/djtP8.net] >>834 VS+PTVSで開発する 仮想環境の構築もpipからのインストールもVSでできる
848 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 22:41:22.15 ID:HXSORuM9.net] 標準で付いてくるIDLEでいいんじゃない
849 名前:デフォルトの名無しさん [2017/03/17(金) 00:45:53.48 ID:cvnYh8La.net] import curses def f(screen): pad = curses.newpad(2, 2) pad.addstr(0, 0, 'a') pad.addstr(1, 0, 'b') for i in range(2): pad.refresh(0, 0, 0, 0, 1, 2) pad.getkey() pad.refresh(1, 0, 0, 0, 1, 2) pad.getkey() curses.wrapper(f) キーを押した時にリフレッシュして a b ↓ b と繰り返して表示されるようにしたいのに a b ↓ b b ってなってしまいます。 リフレッシュしてbだけ表示したいときに2行目に表示されるbが消えません これは何でですか?
850 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 11:12:56.54 ID:is7goi9i.net] >>709 https://gist.github.com/anonymous/0e784ef30407afdba925627e4a459e75 流石にもうちょいマシな書き方があるだろうと思って書いてみた ただ仕様がもうちょい複雑になるとコードが煩雑になりそうだけど
851 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 13:11:57.91 ID:W1rhDyUi.net] これ以上に複雑なときは、もう変数ジャンプ組み込む方がまだマシと思う
852 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 13:36:34.43 ID:YJtvdDES.net] set_jmp
853 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 18:19:46.14 ID:4a5+BdOt.net] >>838 これってよく使われるパターンなの? def order(): …return order() このくらいの長さのメソッドになるともう分かりにくいなって感じるんだが
854 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 19:41:57.57 ID:dpI1G6OF.net] >>838 俺ならこうかな foods = ['和食', '洋食', '中華'] def choiceInput(prompt, choices): while True: print(prompt) choice = input('>') if choice in choices: return choice print('入力エラー') def order(): while True: print('和食, 洋食, 中華') choice = choiceInput('どれを食べますか (0/1/2)', ['0','1','2']) yesNo = choiceInput(f'{foods[choice]}で本当にいいですか(Y/N)', ['Y', 'y', 'N','n']) if yesNo in ['Y', 'y']: return choice
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しなきゃならないの?