1 名前:デフォルトの名無しさん [2019/02/04(月) 21:22:10.08 ID:9MrdxUVg.net] ★当スレにRubyのソースコード類を書くことを禁ず ☆Ruby等、Pythonではないプログラミング言語での回答類を書くことも禁ず このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDEまたはcommand line/OS)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その40 mevius.5ch.net/test/read.cgi/tech/1542874174/ ◆PythonのHome Page www.python.org/ ◆まとめwiki ttp://python.rdy.jp/ ◆Pythonのソースコードをそのまま5ちゃんにコピペすると インデントが崩れるので こういうところ↓にはってきてください ttp://ideone.com/ Pythonするにはぷち手間あるのがめんどうかなぁ ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste
136 名前:デフォルトの名無しさん [2019/02/14(木) 13:23:14.58 ID:b/dX4O0G.net] >>121 pandasとかnumpyの[:;:]使うともっと混乱する
137 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 18:52:34.90 ID:/0O1t9cs.net] >>126 いや、昔の言語はそれが普通 C言語辺りから代入文が値を持つような言語が増えた
138 名前:デフォルトの名無しさん [2019/02/14(木) 23:06:52.19 ID:Qyh3gh4h.net] 初めて見た時は驚いた
139 名前:デフォルトの名無しさん [2019/02/15(金) 04:14:44.86 ID:aMcTHSTs.net] A=B=C=0 みたいな
140 名前:デフォルトの名無しさん [2019/02/15(金) 11:55:58.42 ID:Lyn3hfe5.net] pipってPythonのidleからうごかせないからいらいらしてたんだけども teratailっていうサイトでpipはコマンドプロンプトでうごかすような仕様ですって説明あったからあたまのなかがすっきりした
141 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 12:13:07.08 ID:vj4wf1O1.net] Python はとっつきやすいが、奥が深いな。 一通りの文法をある程度使いこなせるようになるまでどのくらいの時間がかかるんだろう。 2〜3か月と書いてるサイトが多い様だが 例えば、 Python チュートリアル (原文の電子書籍版は120ページだった) https://docs.python.jp/3/tutorial/ の全て Python 標準ライブラリ https://docs.python.jp/3/library/index.html#library-index の1〜16 を読み込むだけだとどのくらいの時間? Python 言語リファレンス https://docs.python.jp/3/library/index.html#library-index は必要に応じて参照。 と思ったが、言語リファレンスを見るとset だけでもかなり奥が深いな。 チュートリアルではほんのさわりしか触れていない。 このチュートリアルだけでは本当の入り口入門だな。 でもこのレベルをまず理解しないと挫折してしまうだろうな。 言語リファレンスに書かれたすべてについて書かれたチュートリアルは
142 名前:Lるのだろうか? 膨大なページになるだろうが。 オライリーの Pythonチュートリアル 第3版 も入門用みたいだな。 (260ページ) 無料で読めるデータ分析に役立つ Python の電子書籍まとめ https://qiita.com/ynakayama/items/8ed2854bcc3c3633345b Dive Into Python 3 日本語版 http://diveintopython3-ja.rdy.jp/index.html これは少し踏み込んでいるね。 プログラミング経験者向けのPythonの入門書 495ページ >>24 の Python3 入門 は 241ページ https://qiita.com/KatsunoriNakamura/items/b465b0cf05b1b7fd4975 [] [ここ壊れてます]
143 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 12:56:54.47 ID:vj4wf1O1.net] >>121 >>123 https://docs.python.jp/3/tutorial/introduction.html#strings ここでは test[1] はインデックス test[1:4] はスライスと書いてるね。 :はデリミッタ(区切り符号)の中の一種 下記の文法書では、 : がある場合をスライスとしている。 class slice(start, stop[, step]) 要は range(start, stop[, step]) と同じ だから、test=[1,2,3,4,5] の時 test[1:6:2] は [2, 4] と2つおきのステップもとれる test[0:6:2] は [1, 3, 5] https://docs.python.org/ja/3/reference/expressions.html?highlight=%E3%82%B9%E3%83%A9%E3%82%A4%E3%82%B9 文法書 こちらだと、3.7.2も選べるね。 6.3.3. スライス表記 (slicing) スライス表記はシーケンスオブジェクト (文字列、タプルまたはリスト) におけるある範囲の要素を選択します。 スライス表記は式として用いたり、代入や del 文の対象として用いたりできます。 スライス表記の構文は以下のようになります proper_slice ::= [lower_bound] ":" [upper_bound] [ ":" [stride] ] lower_bound ::= expression upper_bound ::= expression stride ::= expression とあるから数値には式も許されている。 [] は省略可を示す <略> 適切なスライスは、スライスオブジェクト (標準型の階層 参照) に変換され、その start, stop および step 属性は、それぞれ指定した下境界、上境界、およびとび幅 (stride) になります。 式がない場所は None で置き換えられます。
144 名前:デフォルトの名無しさん [2019/02/15(金) 13:07:54.03 ID:TNDmXWGM.net] >>136 文法だけなら3日で済ませろ
145 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 14:14:26.18 ID:BPLAFoWk.net] ifが閉じないのが違和感ありすぎるんだよな endをpass扱いで使えればいいのに tab非推奨とか、mainがインデントできないとか
146 名前:デフォルトの名無しさん [2019/02/15(金) 14:28:19.26 ID:TNDmXWGM.net] endってRuby信者かよ うざいだけです
147 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 15:29:10.41 ID:6n1ig9NM.net] >>113 1からcに勉強しなくても基本的なスクリプト分かればパッケージで何かできるようになるから教育の手間が省けるし使い物になるまでの時間が短い。ポインタみたいな話は逐一調べれば何とかなるし
148 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 16:08:39.95 ID:PR4djPv7.net] >>113 逆 米国では特に理由がない限りはスクリプト言語といえばPythonなの もちろん機器を大規模に展開する段階ではCで書き直すこともありうるけど、その前のPoC段階では手っ取り早く動かすことを重視してスクリプト言語を選択することが多い そして世の中のほとんどのIoT(笑)プロジェクトはPoC止まりである
149 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 17:40:54.87 ID:fQG3bb7R.net] >>142 最後の行メッチャ同意w
150 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 19
] [ここ壊れてます]
151 名前::12:24.12 ID:FTe5u0N/.net mailto: >>136 2〜3ヶ月では無理だろ オライリーの「Fluent Python」読んだら程々で止めといた方がよいと分かる 特にデコレータとかスライスオブジェクトとか完全な理解までは時間も手間も掛かる それにライブラリ有ってなんぼの言語だからその辺を当たるのも手間が掛かる [] [ここ壊れてます]
152 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 21:40:16.03 ID:phBQxiAY.net] >>137 そんだけ説明するなら Cpy = OreObj[:]でコピーの話してくれれば良いんだが これもsliceがやってくれているのか?
153 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 22:13:07.97 ID:nnYj1Xkq.net] >>145 シーケンスオブジェクトに対して有効なんだから、文法エラーが起きなければ、OreObjはシーケンスオブジェクトで有り!スライス表記が有効なんだろ。
154 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 01:03:35.23 ID:3MiMTZ5E.net] >>145 print(type(OreObj)) とやってみれば良いよ。 というかわからずに作ってる方もどうかと思うが。
155 名前:デフォルトの名無しさん [2019/02/16(土) 01:22:05.09 ID:pkeahHEi.net] Python3エンジニア認定基礎試験を受験しようと思ってるんだけど認定教材がオライリーのpython3 チュートリアル第3版だよね? ドキュメントがあるんだけど https://docs.python.org/ja/3/tutorial/index.html 本よりURL先の方が新しいからこっちで勉強すべきなんか本買った方がいいのやら
156 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 02:04:33.57 ID:3MiMTZ5E.net] >>148 自分もまだ、どれをもとに勉強しようか悩んでるんだけど、試験を受けるんだったら、オライリーので勉強した方が良いんじゃないのかな。 出題範囲がそれからと決まってるみたいだし。 そのpython.org のチュートリアルは本当に基本的なことしか書いてないみたいだし。 それを見る場合は他の標準ライブラリーにも目を通す必要があるけど、そちらについてのチュートリアルはないからね。
157 名前:デフォルトの名無しさん [2019/02/16(土) 02:15:08.35 ID:cp9NCj1N.net] >>111 BDFLの有り難いお言葉 python-history.blogspot.com/2013/10/why-python-uses-0-based-indexing.html コメント欄含めて細かく1-/0-ベース、閉区間/半開区間のメリットデメリットが議論されてる 要素の間を指す、という記憶術の落とし穴も
158 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 02:27:49.37 ID:Vy31NZNk.net] >>148 そのURLで良いんじゃないのか。 金出してオライリー買って勉強したって通らない奴は通らないだろうし。 で、URLでやっても通る奴は通るだろ
159 名前:デフォルトの名無しさん [2019/02/16(土) 05:33:47.13 ID:ytOkList.net] >>136 奥の深いのはまるで量子力学みたい。
160 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 10:08:53.50 ID:13Z91cw1.net] >>> "あ\\\"あ" 'あ\\"あ' >>> print("あ\\\"あ") あ\"あ \の数が変わるのはなぜですか?
161 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 10:34:05.43 ID:3MiMTZ5E.net] >>148 pdf があった方が良いと思うよ。 検索や見出しの頭出しなどが楽だから。 英文のpdf はあるけど、日本語はない。 https://docs.python.org/3/download.html コピペ、書き込みはできる。 オライリーのにはpdfがあるから便利ではある。 ただし、コピペできないから注意。 amazon のレビューも参考にしてみたら。 【python入門者向け】おすすめPDF教材3選 https://web-camp.io/magazine/archives/16214 自分は、この中の2番目の大学の先生が書いてるやつで始めた。 コピペは勿論書き込みとかできる。
162 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 10:46:44.65 ID:3MiMTZ5E.net] >>153 \ は、エスケープ文字と言って、次の1文字をそのまま使うことを指示する。 だから、\そのものを使うことはできない。しかし \\ で\ をそのまま使う指示をすれば、\ 1文字として扱われる。 同じく \” \’ は、” ‘ そのものを扱うこもができる。 文字列
163 名前:フ中にこう言う特殊文字を入れたい時に使う。 或いは、文字の中で改行したい場合には、\n を使う。 予め決められた文字をエスケープシーケンスと言う print(‘abc\ndef’) abc def エスケープシーケンスには他にタブ \n とか色々ある。 print(‘abc\n\tdef’) abc def エスケープシーケンス https://www.javadrive.jp/python/string/index2.html [] [ここ壊れてます]
164 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 12:21:40.15 ID:LDsTH0lF.net] bs4のスクレイピングで 〈dd class='a'〉bbb〈span class='c'〉ddd〈/span〉〈/dd〉 のときにbbbだけ取り出すにはどうすればいいですか?
165 名前:デフォルトの名無しさん [2019/02/16(土) 13:46:48.84 ID:lF7O1vpr.net] linux流行る→linuxの試験立ち上げ ruby流行る→rubyの試験立ち上げ python流行る→pythonの試験立ち上げ 常に後手後手だな経産省は
166 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 13:49:19.24 ID:ZA7pE0Rj.net] 役所にitの世界でリードしろと言う方が無理がないか(´・ω・`)
167 名前:デフォルトの名無しさん [2019/02/16(土) 14:13:56.53 ID:0EgtbNFo.net] 二次元のエロ画像って、どうやって分類するの? 教えて!エロい人!?
168 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 14:25:52.61 ID:LemtF0up.net] >>159 まず自力で集める えろくない画像も集めておく それを教師データにしてエロい・エロくないを学習させる
169 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 15:05:30.24 ID:HHnqLgqK.net] >>157 そりゃニーズがないものを試験するのは無駄。
170 名前:デフォルトの名無しさん [2019/02/16(土) 17:34:44.82 ID:mSqP7pCT.net] フォルダを分ける ●永久保存 ●たまに観たい ●あとで観る ●即消し フォルダ毎にランク数値化してベイズ学習して 新しい画像が来るたびにまたフォルダ分け (自動化するが人間によるチェックも必要なのでいきなりフォルダに入れず それぞれのフォルダ毎に保留バッファを用意して人間が承認して正式にフォルダ移動とともに再学習) これで問題になるのは「即消し」フォルダにある画像も消したくても再学習のために消せないんじゃないかということ
171 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 21:35:51.99 ID:cOF81sF3.net] pythonで開いたファイルを完全に閉じるにはどうしたら良いんでしょうか? closeしたあとにshutil.moveで移動しようとしても、ファイルが使用中とエラーがでてしまいます。
172 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 22:09:05.36 ID:/KIqi5pj.net] 本当にPythonがハンドルを掴んでるのかまず確認しろ 「さっきまで開いてたから」は根拠にならない
173 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 00:00:34.97 ID:Hg63DdMm.net] >>153-155 Ruby では、 str = "あ\\\"あ" p str #=> "あ\\\"あ" print str #=> あ\"あ p では全体を、" " で囲んでいるように、文字列の内部表現を見ている。 一方、print では、文字列を外部に表示したもの
174 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 00:30:33.10 ID:Hg63DdMm.net] >>156 jQuery 子要素を含まない text() が欲しい時 https://qiita.com/Urushibara01/items/7b44a3de5cc40d8a10be elem.children().empty(); で一旦、すべての子要素を削除してから、 elem.text(); で、テキスト部分を取得している つまり一旦、<span> の部分を削除してから、テキスト部分を取得する。 でも実際に、DOM が削除されてしまうのは、都合が悪いかも知れない 他にも「jquery text 直下」で検索して、探してみれば?
175 名前:166 mailto:sage [2019/02/17(日) 00:46:15.18 ID:Hg63DdMm.net] scrapyでよく使うxpath, cssのセレクタ https://python.civic-apps.com/scrapy-xpath-css/ 直下の子要素指定でフィルタの所に、xpath, css で、 <div>aaa<div>bbb</div></div> で、aaa だけを取得する方法が書いてある
176 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 01:19:40.29 ID:p7gH0RbB.net] >>165 >文字列の内部表現、文字列を外部に表示 なんか良い表現だな 自分の言葉でこんな表現出来るルビ基地は頭は悪くないんだろうから、 基地外精神を直せばいい奴になるのにな。 俺らが気にするのは文字列を外部に表示のほうだからな >>> "あ\\\"あ" 'あ\\"あ' なら >>> len( "あ\\\"あ" ) は4なのか5なのか
177 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 08:16:33.30 ID:WySC1FKQ.net] >>168 試したら4だったよ
178 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 09:55:44.57 ID:yxjz1BDw.net] >>164 確認しました。 掴んでるのはpython.exeだけでした。
179 名前:デフォルトの名無しさん [2019/02/17(日) 13:41:35.73 ID:7mUUrd8D.net] >>170 違うものを閉じようとしてるんじゃね
180 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 14:08:27.77 ID:+S0MQzvf.net] >>165 なんで python スレに Ruby の解説を持ち込まないといけないんだよ。 python をさわれないなら黙って見てろ。 python で説明するなら、 str = "あ\\\"あ" rstr = r"あ\\\"あ" # raw string print(str,rstr) #あ\"あ あ\\\"あ l
181 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 14:23:35.65 ID:+S0MQzvf.net] raw string は、正規表現関係の検索文字列で使われる。
182 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 14:32:37.51 ID:+S0MQzvf.net] >>172 普通は解釈(代入)段階でエスケープされるけど、raw 指定された場合は、エスケープしないだけで、結果としてできた文字列はどちらも str 属性のまま。
183 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:01:00.41 ID:+S0MQzvf.net] >>139 tab 非推奨って本当? サンプルコードを拾ってくると確かにタブは使われていない。 でもそれを修正して使おうとするとタブが入るから、エラーとされる。 合わせるのが大変なんだけど、みんなどうしてんの?
184 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:09:57.38 ID:2Zsn/By5.net] yesタブ非推奨 正規表現できるエディタ(秀丸エディタとか、sakuraエディタ)で \tを「 」(半角スペース4つ)に一斉置換でおk
185 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:13:46.38 ID:naWxhgEk.net] >>172 ルビ厨に構うなよ…
186 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:27:26.15 ID:yxjz1BDw.net] >>171 すいません、解決しました、 文法がRubyとごっちゃになってcloseに()が付いてませんでしたorz エラーにならないから全然気づかなかった…
187 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:39:19.93 ID:yfMLX38R.net] >>176 一括変換はどのようにしてもできるんだけど、コピペして動かそうとして修正するときに面倒。 利口なIDEなら両方を調整してくれても良さそうなものだけどな。 まだ、IDEをどうするのか決めてないし、とりあえずEclipseに入れるつもりだけど、なんか途中でつまづいてる。
188 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:49:18.49 ID:naWxhgEk.net] >>179 大抵のIDEでTabキーでスペース挿入とかできるはずだが?
189 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:18:58.04 ID:OPCV5npO.net] >>178 with open構文使えばそんなことで悩むことなかったのに
190 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:29:14.69 ID:+S0MQzvf.net] >>180 IDEはまだ使っていないって、pythonista やjupyter で練習中 ただ、IDEでスペース挿入できたって、コピペしたやつとスペースの数が違えばダメだろ? 大抵は一括変化できるだろうけど。 それでもjupyter などで使おうとするとやはり苦労するよね?
191 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:50:07.52 ID:+S0MQzvf.net] 質問(1) ‘__main__’ in globals() や、 2 in [1,2,3] がTrueになるのはなんで? 定数 in 集合は、定数を取り出せと言う意味なのかな? i in [1,2,3] が許されないの
192 名前:ヘ何を取り出すのわからないからかな? 質問(2) print( [i for i in [1,2,3] ] ) が許されて print( (i for i in [1,2,3] ) ) が許されないのがわからない。 [] [ここ壊れてます]
193 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:56:47.88 ID:T3+WXnTJ.net] >>183 質問(1)は自己解決 まともな文法書を読み始めて2日目で、ようやくたどり着いた。 《in演算子によるメンバシップ検査》 書き方: 要素 in リスト リストの中に要素があればTrue,なければFalseを返す.要素が含まれないことを検査するにはnot inと記述する
194 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 18:15:18.83 ID:naWxhgEk.net] >>182 グダグダ言う暇あったらテキトーなIDE使ってみなよ スペースの数とかも指定できる そもそも他の開発者がいちいち一括変換とかして苦労してるわけ無いだろ
195 名前:デフォルトの名無しさん [2019/02/17(日) 19:09:07.40 ID:9eEjpIke.net] >>183 質問(2)について 二つ目が「許されない」と言う意味が分からないが、少なくとも文法的には間違いではない (i for i in [1,2,3] ) はジェネレータ内包表記といいgeneratorオブジェクトになる ジェネレータはnext関数に渡すと次々に値を返す。最後まで到達するとStopIteration例外を出す >>> gen = (i for i in [1,2,3]) >>> gen <generator object <genexpr> at 0x7fb1b1a86ba0> >>> next(gen) 1 >>> next(gen) 2 >>> next(gen) 3 >>> next(gen) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration
196 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 19:20:42.25 ID:glILnxtO.net] ビートセイバーの通常プレイってなんだかんだで斬る方向も指定されるから いまいち魅せプレイには向いてないんよな めめめにダースモールプレイでくるくるしてほしいンゴ https://www.youtube.com/watch?v=e-m09N_HtRk
197 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 19:20:57.80 ID:glILnxtO.net] 誤爆
198 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 19:31:52.09 ID:+S0MQzvf.net] >>186 有り難う。 同じような形なのになんでprint ができないのかと言う疑問だった。 print( (i for i in [1,2,3] ) ) は、ジェネレータから取り出してしないからと言う理解で良いの?
199 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 19:51:22.25 ID:OPCV5npO.net] >>189 Pythonの分かりにくいところだよね 同じ記号を別の意味で使っている [1,2,3] リスト。集合は可変 (1,2,3) タプル。集合は不変 if 2 in [1,2,3] リストの中に2が含まれるか判別 for i in [1,2,3] リストの要素で繰り返し [i for i in [1,2,3]] リストの要素で繰り返した結果を演算しリストとする (i for i in [1,2,3]) リストの要素で繰り返した結果を演算するgeneratorを返す 普通に考えたらgeneratorではなく演算結果をタプルで返すように思うよね
200 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:07:17.70 ID:U9IIuCB3.net] 内包表記でタプルは作れない(ジェネレータになる)だけで一貫してるだろ それに for i in イテラブル じゃなくて i for i in イテラブル だし
201 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:25:38.62 ID:WySC1FKQ.net] >>184 「まともな文法書」が何かを記していただければ、このスレの住民には助かると思います
202 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:31:16.29 ID:tKx1WgvG.net] in単体なら演算子だけど、forではそれ含めて文だからねぇ 文脈によって解釈が変わるのはC/C++でも英語でも同じ そしてタプルを作るのは丸括弧ではなく「,」である
203 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:33:32.71 ID:U9IIuCB3.net] というか「(1,2)はカッコがあるからタプル」は偽だから (x for x in [1,2,3])がタプル返す義理はないな まぁその辺のサイトみたら軒並み「タプルはカッコでくくってつくる」って書いてあるのはそうだけど ドキュメントにはそうは書いてない
204 名前:デフォルトの名無しさん [2019/02/17(日) 20:39:37.47 ID:9eEjpIke.net] 確かにカッコ使わずに a =1,2,3 でもタプルになるしな
205 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:42:19.07 ID:OPCV5npO.net] >>194 カンマで区切ればタプルにるけどさ、タプルの出力は必ずカッコで括られるんだから、直感と違うわけだよ
206 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:44:17.06 ID:GfPZMs79.net] カッコつけてるだけだよ
207 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:46:20.17 ID:4CukteGI.net] リストはイテラブルなオブジェクトでイテレータではないらしいけど、なんで最初からリストをイテレータとして使えるようにnextメソッドを実装しておかないんや
208 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:47:29.51 ID:glILnxtO.net] >>196 practicality beat purity(実用性は純粋さに勝る)だぜ ジェネレーターにすれば途方もない数も扱えるわけだし デフォでジェネレーターになるのはしょうがない range()がリストではなくイテレーターを返すようになったようにな
209 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:47:49.01 ID:p7gH0RbB.net] >>193 だよな (1)は整数の1、でも、(1,)は整数の1を持つタプル ()だけではタプルを生成することにはならないからな これは俺でも知っている超超入門レベル知識だからな >>194 (x, for x in [1,2,3])とかならタプルを生成しなんだろうが
210 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:50:48.52 ID:U9IIuCB3.net] >>200 (x, for x in [1,2,3]) はシンタックスエラー ((x,) for x in [1,2,3]) ならタプルを3つ返すジェネレータができる
211 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 21:11:43.56 ID:GfPZMs79.net] (x,)っていかにも要素2つありそうな見た目だけど要素数1のタプルなの?w
212 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 21:19:41.54 ID:OPCV5npO.net] >>202 公式のチュートリアルにもUglyと書いてあるだけあってなんだかなぁとは思う
213 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 21:55:32.99 ID:nNpu08PZ.net] 益々訳ワカメになってきた。
214 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 22:00:38.59 ID:p7gH0RbB.net] >>201 (x, for x in [1,2,3]) がエラーなのは分かっている でも、なんかタプルの(1,2,3)を作ってくれそうな感じだろ { n:str(n) for n in [1,2,3] }で辞書を作れるんだから
215 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 22:08:56.80 ID:nNpu08PZ.net] ((x,) for x in [1,2,3]) ってどんな意味があるのかわからん。 print(list ((x,) for x in [1,2,3]) ) #[(1,), (2,), (3,)] (1,) ってどんな意味があるの?
216 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 22:15:21.52 ID:glILnxtO.net] >>206 (1,)とか(2,)っていうのは「要素がひとつだけのタプル」を示す
217 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 22:56:02.90 ID:nNpu08PZ.net] やっぱチュートリアルをちらっと読んだだけじゃ、基本的なことがわからないな。 言語設計者の開発秘話みたいなものが聞けると面白いと思うんだけど。
218 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 23:03:18.87 ID:Hg63DdMm.net] >>178 Ruby で言えば、File.open にブロックを付けると、 ブロックを抜けるときに、例外時にも自動的に、開いたファイルを閉じてくれる 自分で例外処理、finally・ensure などに、file.close を書いたのと同じこと コンテキスト・マネージャー。 Python にも、同じものがあるはず
219 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 23:20:56.32 ID:glILnxtO.net] pythonの基本方針はimport thisで読める False == False == FalseがTrueになるとか面白いよな
220 名前:デフォルトの名無しさん [2019/02/17(日) 23:51:24.85 ID:9eEjpIke.net] True+Trueが2になるとかな
221 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 00:38:39.85 ID:9Y7UoWyl.net] >>207 ますますわからなくなってきた。 タプルと言うのは、複数の数値の羅列だと思ってたのに、一つでなんでタプルになり、一つのタプルにどんな効果が出てくるの? そう言う文法だからと言えばそうなんだろうけど、 1 in 1 をエラーにして、1 in (1,) をTrue にする意味があるんだろうか? 1 in (1) と区別が付かんと困るからかな? ただのカッコ()とタプルの区別を カンマの有無で区別すると言うことか。
222 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 00:42:35.27 ID:SjVwlNp1.net] 「1 in 1 をエラーにして、1 in [1] をTrue にする意味があるんだろうか?」
223 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 00:54:13.98 ID:Tb62uZUC.net] 「数値1つ」と「数値1つだけを含んだ集合」は別のものだ。 1つの要素しか含まないリストを作ることもできるし 1つの要素しか含まない辞書も
224 名前:作ることができる タプルができない理由はない まぁプログラミングというか論理学の話になるけどな 1 in 1でエラーが出るのは当然 1と1は同値であり、1の中に1が含まれているわけではないのだから [] [ここ壊れてます]
225 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 00:56:36.72 ID:9Y7UoWyl.net] >>210 import this があるなんて面白いね。 プログラマが持つべき心構え (The Zen of Python) https://qiita.com/IshitaTakeshi/items/e4145921c8dbf7ba57ef The Zen of Python, by Tim Peters ちなみに、"Zen"は日本語の「禅」です。 1 in 1 を許さないのは禅問答になるのかな? 悟りを開くしかないのかな?
226 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 01:02:08.73 ID:9Y7UoWyl.net] >>214 リストやタプルは集合体だから何かの入れ物の中に入ったもので。 1 in 1 は、入れ物がないから取り出せないと言う感じかな? じゃ、リストやタプルは現実社会のどんなものに対応するんだろう。
227 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 01:18:45.55 ID:Tb62uZUC.net] 「1つの要素」と「要素ひとつだけを含む集合」は 「弾丸一発」と「一発だけ弾が残った弾倉」と同じくらい違う 「書類1枚」と「1枚だけ書類を挟んだファイル」と同じくらい違う 風来のシレンで言うと 「アイテムひとつ」と「アイテムがひとつだけ入った壺」と同じくらい違う pythouの内部的にはリストやタプルには「複数の要素を扱うための機能」がついてる 単一の要素整数にはそれがない だから単一の要素にinを使ってもそもそも「その要素が含まれているかどうか」を確認することができない
228 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 01:29:08.54 ID:SjVwlNp1.net] JavaScript「呼んだ?」 1 == [1] //=> true
229 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 01:36:54.94 ID:Tb62uZUC.net] >>218 これがあるから===しか使いたくない
230 名前:デフォルトの名無しさん [2019/02/18(月) 08:12:09.71 ID:7eiXgP3l.net] int[] a = { 1, 2, 3, 4, 5, 6 }; int sum = 0; for(int i = 0; i < a.Length; ++i) { sum += a[i]; } int b = sum / a.Length; Console.WriteLine(b); とあるんですがsum/a.Lengthは何割何で計算してるんですか? 配列の計算原理が本ではいまいち分からないので教えて下さい;
231 名前:デフォルトの名無しさん [2019/02/18(月) 08:41:37.17 ID:tx9DPBTs.net] >>220 for文による繰り返し処理を勉強してください
232 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 08:45:07.32 ID:JBcAVpfH.net] >>220 そいつぁC#で合計÷要素数=平均じゃないの? int同士で端数が切り捨てられる事を聞きたいの?
233 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 09:46:20.06 ID:qsq8EO4j.net] Ruby 2.6 では、 ary = [1, 2, 3] ary.sum #=> 合計は、6 平均値は、合計を要素数で割る。 mean = ary.sum / ary.length
234 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 10:44:29.19 ID:1FoQC5sv.net] >>223 死ね
235 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 12:18:05.03 ID:NoNskV/l.net] >>223 荒らし
236 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 12:38:24.20 ID:qDhO0A3F.net] 計算結果や変数内の値はprintで表示できる そんなことが説明なされない本なんて売っぱらちゃいな