1 名前:デフォルトの名無しさん [2020/01/02(木) 15:56:54.08 ID:ZUrZA+uS.net] 当スレに★Python以外のプログラミング言語での回答類を書くべからず★ ☆「Ruby では」「Rubyでは」をNGワード登録推奨 このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 ★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので ↓等のてきとうなソースコード用うpろだに貼ってきてください。 スクショをImgur等にうp といった 手抜き(クソ行為)禁止。 ttp://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう ◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と 実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。 ◇Python公式サイト◇ www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/ 〇前スレ〇 くだすれPython(超初心者用) その45【Ruby禁止】 https://mevius.5ch.net/test/read.cgi/tech/1571188632/
159 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 23:32:59.83 ID:IeHCZeyd.net] >>153 やっぱそうなんだ コンパイルしてるわけじゃないしな
160 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 01:21:03.35 ID:PW2KE/yt.net] >>143-144 Ruby, selenium webdriver, headless モードで、38 Mbps sleep 45 が無いと、すぐに、0 が取得されてしまう! つまり、このdiv が、最初から存在していて、0になっているのだろう。 <div class="speed-results-container succeeded" id="speed-value">0</div> 理想的には、結果が出たときに現れる、要素を待つのが良い。 その方が、sleep で時間指定しないで済むから require "selenium-webdriver" options = Selenium::WebDriver::Chrome::Options.new options.add_argument('--headless') options.add_argument('--disable-gpu') driver = Selenium::WebDriver.for :chrome, options: options driver.manage.timeouts.implicit_wait = 60 # 要素の検索の timeout driver.navigate.to "https://fast.com/ja/" sleep 45 puts driver.find_element( :id, "speed-value" ).text driver.quit
161 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 03:20:28.12 ID:M8sF3s6B.net] >>159 capybara使えよ implicit_wait=60とかsleep 45とかありえんてぃ 先週のWebDriverWaitを10回くらい繰り返してるクソコードよりもひどいぞ >>143 fast.com cliでググれ
162 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 03:26:40.80 ID:8P2rssJG.net] 次のプロジェクトを何の言語でやるか、検討した結果PHP派とPython派に分かれた。 Rubyはみんな嫌がった。
163 名前:デフォルトの名無しさん [2020/01/12(日) 03:27:02.71 ID:aGAZplX2.net] >>143 ありがとうございます。 Python通ってないので
164 名前:Q考になります。 >>159 >>160 cliあったんですね! Macのcrontabだとスリープ時に実行できないので サーバー化してるRaspberryでcrontab回そうと思います。 助かりました。 ありがとうございます。 [] [ここ壊れてます]
165 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 10:35:42.78 ID:eDYJZWaK.net] データフレームで target shape 1 0 0 1 1 1 としたときtarget==shapeのデータをスライスとして取り出したいのですが、 同一データフレーム内のデータを比較してスライスするにはどうすれば良いのでしょう?
166 名前:デフォルトの名無しさん [2020/01/12(日) 11:16:34.31 ID:/bwylFW9.net] df[df[‘target’]==df[‘shape’]] または df.query(‘target==shape’)
167 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 12:31:28.08 ID:eDYJZWaK.net] >>164 ありがとうございます。 Pandasのスライスの表記難しい・・・。 使いこなせる自身がないんですが、やってるうちになれてくるものなのか・・・。
168 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 12:34:18.40 ID:eDYJZWaK.net] a=Fale, b=True だけをスライスしたいのですが、 df_correct = df[df['a'] == False & (df['b']==True)] とすると a==False の条件でスライスされ b==True が無視されます。 なぜなんでしょう?
169 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 12:35:45.17 ID:eDYJZWaK.net] >>166 失礼しました。 自分の投稿みて気づきました。 前の条件を()でくくっていなかったですね。 orz
170 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 13:20:04.86 ID:eDYJZWaK.net] >>164 queryなんてあったんですね 昔accessやってたものとしてはquery使ったほうが可読性高いな。
171 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 13:20:54.36 ID:eDYJZWaK.net] >>164 python的には内包表記とqueryではどちらが推奨なんでしょうか?
172 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 13:48:50.66 ID:AzrAZmp9.net] python 3 で16進数文字列をutf-8文字列に変えたいんですが、簡単な方法ないですか?
173 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 14:24:18.86 ID:M8sF3s6B.net] >>170 >>111 と同じなのか違うのか? 違うのなら簡単な方法じゃなくめんどくさい方法でどうやってるのかをまず書いて
174 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 15:47:52.03 ID:iU1LDXiT.net] いつのまにかインデントが崩れて正常に動作しなくなってた でも中括弧がないので元の状態が分からない 元に戻せない
175 名前:デフォルトの名無しさん [2020/01/12(日) 19:12:52.42 ID:N3Z2zUK8.net] import binascii print('あ'.encode('utf-8')) print(binascii.a2b_hex('e38182')) print(binascii.a2b_hex('e38182').decode('utf-8'))
176 名前:デフォルトの名無しさん [2020/01/12(日) 20:02:34.80 ID:7XI25yF1.net] >>172 ワロタwwwwww
177 名前:159 mailto:sage [2020/01/12(日) 20:18:51.94 ID:PW2KE/yt.net] >>160 <div class="speed-results-container succeeded" id="speed-value">0</div> この要素は、sleep 45 が無いと、すぐに、0 が取得されてしまう! つまり、このdiv が、最初から存在していて、0になっているのだろう このサイトを1分ぐらい見てると、数値が動くだろ たぶん、1分ぐらい掛けて、何回も非同期処理で、この値を書き換えている。 だから、1分近く待たないと、速度が安定しない
178 名前:デフォルトの名無しさん [2020/01/12(日) 20:56:59.94 ID:UO120eKA.net] お金を計算するわけでもないのですが 小数点の計算に全部decimalつけるの面倒なんですけど 何とかならないですか?
179 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 21:09:49.97 ID:M8sF3s6B.net] >>175 「0 が取得されてしまう!」じゃねーよ もうちょっと頭つかってくれ 速度が安定するまで待ちたいなら 「wait until 速度が安定?」みたいなコードを書けばいいだけだろ 測定完了を示す状態変化があるのに わざわざ速度が安定したかどうかで判定する必要もないんだけどさ
180 名前:159 mailto:sage [2020/01/12(日) 21:32:01.79 ID:PW2KE/yt.net] 他人のサイトをデバッグ・解析して、測定完了を示す状態を見つけるとか、それは大変! 仕様書もないのに、できない。 そういう解析を仕事としては色々やってきたけど、面倒
181 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 21:59:15.48 ID:LmjMg5d7.net] rubyくん ID変え忘れてるよ
182 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 23:01:37.62 ID:aXgbqZV+.net] こんにちは質問させてください。 20190112, A, 91 20190112, B, 82 20190111, A, 93 … という感じで[日付,名前, 得点]の3カラムのデータがあり、各行の日付段階での、 その人の過去30日平均得点(人別の得点の移動平均)をできるだけ高速に計算したいのですが、 どのようにすればよいでしょうか? なお、今はsqliteで、以下のような原始的なプログラムを書いてみましたが、遅くて困っております。 # date, nameの組み合わせを抜き出し list = cur.execute('select date, name from table').fetchall # listすべてにfor文で処理 for i in range(len(list)): date = list[i][0] name = list[i][1] # dateから30日前の日付を計算 date30before (計算略) # nameが一致しているそのデータから過去30日分のスコアを抜き出し scoreList = cur.execute('select score from table where name == ? and ? < date < ?',(date30before, date)).fetchall # 抜き出した30日分のスコアを平均 scoreListAve(計算略) # 元のテーブルのdate, nameが一致する行に書き込み cur.execute('update table set score30Ave = ? where date = ? and name == ?'),(scoreListAve, date, name)) con.commit() # for後、コミット
183 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 23:44:09.77 ID:8exfRg1S.net] 少なくともSELECT文はfor文で回す必要がないように見える ウィンドウ関数とか使って、1回のSELECT文けで、その後のUPDATE文の条件として使いたいscoreListAve, date, nameを抽出出来るはず
184 名前:180 mailto:sage [2020/01/12(日) 23:53:05.86 ID:aXgbqZV+.net] >181 ウインドウ関数を知らないので調べてみます。 ありがとうございます。
185 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 01:51:12 ID:6QaMEdT1.net] where の条件に、日付・名前があって、 それらに索引インデックスが付いていないのなら、絞り込めず、全探索になるから! 例えば、100万レコードあれば、それらをすべて検索してから、チェックするから! 基本的には、検索条件に索引インデックスが付いていないものは、全探索になるから検索しない! 情報処理資格のデータベーススペシャリストの教科書で、 データベースの設計を勉強すべし!
186 名前:180 mailto:sage [2020/01/13(月) 02:43:19.89 ID:wBE7Qmaa.net] >183 助言ありがとうございます。 書き忘れましたがname, dateのIndexはすでに作ってます。 cur.execute('create index dateIndex on table(date)') Indexでだいぶましになったのですが、それでも現状、 forが100進むのに1秒くらいなので、20万レコードで30分くらいかかります。
187 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 04:48:03 ID:nfiKoGl1.net] 歯抜け無しならWindow関数で 歯抜け有りなら相関サブクエリで ― Window関数 ― SELECT date, name, score, avg(score) OVER ( PARTITION BY name ORDER BY date ROWS BETWEEN 29 PRECEDING AND CURRENT ROW ) AS moving_avg FROM score_table ORDER BY name;
188 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 04:59:38 ID:nfiKoGl1.net] 相関サブクエリのほうはブロックされたからここに貼っとく https://ideone.com/73jaTZ
189 名前:180 mailto:sage [2020/01/13(月) 05:49:10 ID:wBE7Qmaa.net] >185 大変ありがとうございます。 歯抜け有りなので相関サブクエリの方をまず試してみます。 ここまで見本のコードを書いていただければ自分のレベルでも なんとか取り入れられそうです。
190 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 09:52:19.26 ID:kwqyPibM.net] >>187 歯抜けありでもwidow関数で書けるぞ。 相関サブクエリなんて過去の技術を使うな。
191 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 09:57:49.58 ID:Co2mHaqk.net] >>180 のコードでメモリが足りているならsqlをどうこうする必要はないと思うが。
192 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 10:30:58.73 ID:BvowWoiX.net] 1回のクエリで行けるところを、わざわざループでクエリ投げまくる意味はないでしょ
193 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 10:58:18.23 ID:bfpXOE5X.net] クエリが苦手でPythoに慣れているなら意味はある クエリは言語としては非常に特殊だからね 常用しない人にはとっつきづらい
194 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 10:59:15.38 ID:Yl8Am7cI.net] SQLの書き方次第で100倍は効率良くなる事案
195 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 11:38:01.76 ID:nlvLw0Pz.net] >>189 遅いから困ってるって明記されてるのにメモリーとか何言ってるんだよw >>191 書捨てならそれでいいけどよく使うならSQLは覚えていて損はないと思うぞ 考え方に慣れればそれほど難しくないし
196 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 13:13:36.22 ID:V22NtS8V.net] 距離を計算したいのですが、 df['distance']=math.sqrt((df['x_distance']**2+df['y_distance']**2).values) で only size-1 arrays can be converted to Python scalars となります。 DFを.valueつけてndarrayに変換してsqrt()に渡せばいいのかと思ったのですが・・・ お教えいただけると助かります
197 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 13:19:03.45 ID:S1eVQBPA.net] valuesで取ってから二乗して和をとってしないと行けないんじゃないの
198 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 13:21:21.99 ID:dQZR7cFx.net] https://pastebin.com/dLSjsvev このコメントアウトしているコードを実行するとエラーが出るのですが、何が悪いのでしょうか?
199 名前:デフォルトの名無しさん [2020/01/13(月) 13:24:28.21 ID:uorRSC+x.net] >>194 math.sqrtはpythonの標準関数でスカラーにしか対応していない np.sqrtにすればたぶん動く
200 名前:デフォルトの名無しさん [2020/01/13(月) 13:37:39.33 ID:+xCO6TbN.net] >>196 formatなんて組み込み関数はない
201 名前:デフォルトの名無しさん [2020/01/13(月) 13:41:07.13 ID:DXn4EK/n.net] Python学びたいんだけどどっから手を付けていいかわからん。 取り敢えず、クジラ本 「実践力を身につける Pythonの教科書」(4839960240)は買ってきた。
202 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 13:44:12.30 ID:V22NtS8V.net] >>197 できました。 ありがとうございます。 m(._.)m
203 名前:デフォルトの名無しさん [2020/01/13(月) 14:08:01.51 ID:IO5oYjrW.net] 教えて下さい。 pythonのコードを友人に書いてもらったのですが標準のIDLEではRunModuleで 実行できるのにコマンドプロンプトで実行しようとしたら以下のエラーを吐きます。 python3.6.5 windows10 Traceback (most recent call last): File "C:\Users\user\Desktop\201911_Project_\201911_Project_\sendMailLogic.py", line 19, in <module> WebSiteList = dac.getWebSiteList() File "C:\Users\user\Desktop\201911_Project_\201911_Project_\DAC.py", line 96, in getWebSiteList for row in cur.execute(strSQL): sqlite3.OperationalError: no such table: WebSite_List よろしくお願いします。
204 名前:デフォルトの名無しさん [2020/01/13(月) 14:16:44.85 ID:6kghygIo.net] >>201 「WebSite_List」って名前のファイルが参照場所にない。 探せ。 あと拡張子とかついちゃってて名前がかわってないかもチェック。
205 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 15:42:49.08 ID:V22NtS8V.net] 2Dカードゲームでユーザの行動特性を調査する 研究用アプリを開発しようと思ってます 開発環境をPygameにするか、Unityにするかで悩み中 Unityのほうが色々ゲーム用の機能揃ってて見栄えの良いUI作れそうなんだけど、 ユーザの行動データを数値解析したり、将来的には機械学習も取り入れようかと思ってるので、 その点ではPythonのほうが親和性高そう どちらが、おすすめとかありますか?
206 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 15:43:53.12 ID:V22NtS8V.net] ちなみにUnity、c#のほうが少しは得意 Pythonは最近sklearnとか使い始めたくらいの超初心者です
207 名前:デフォルトの名無しさん [2020/01/13(月) 15:51:01.10 ID:tF3chcAw.net] それは ※ただし、選択できるプログラミング言語は一つだけとする というような縛りプレイルールが暗黙的に存在すると考えていいのかしら? でなかったら俺はゲームをUntiyで書いて機械学習をPythonでやるかな
208 名前:デフォルトの名無しさん [2020/01/13(月) 15:52:19.18 ID:ghAse/mn.net] 親和性って書いてるだろ
209 名前:デフォルトの名無しさん [2020/01/13(月) 15:54:55.78 ID:tF3chcAw.net] だから、親和性を最優先にするならそれぞれ得意分野に使うのが最善に決まってるだろw はぁーガイジは人間に進化するまでママと遊んでてくれないかね
210 名前:デフォルトの名無しさん [2020/01/13(月) 15:58:12.59 ID:ghAse/mn.net] それ親和性優先してねーじゃん
211 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 16:08:32.64 ID:GhUCXbF0.net] >>208 何と何の親和性について語ってるの?
212 名前:デフォルトの名無しさん [2020/01/13(月) 16:10:23.44 ID:ghAse/mn.net] ゲームエンジンと機械学習エンジンの接続
213 名前:デフォルトの名無しさん [2020/01/13(月) 17:01:18.46 ID:IO5oYjrW.net] >>202 ありがとうございます。自分で見る限りは異常ないと思うのですが・・・ IDLEでRunModuleできるのにコマンドプロンプトでエラーがでるってことありますか?
214 名前:デフォルトの名無しさん [2020/01/13(月) 17:03:03.66 ID:6kghygIo.net] >>211 コマンドプロンプトのカレントディレクトリがIDLEのカレントディレクトリと違ってるんだろ
215 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 17:15:24.55 ID:nfiKoGl1.net] >>203 それ前も聞いてたけど公開して広くデータを取得する可能性考えたらJavaScript一択だと思うぞ それにカードゲームというのがいわゆるソシャゲ系で アクションや派手なエフェクトを多用するやつならともかく トランプ系の動きの少ないやつならHTML/CSS使ったほうがはるかに簡単 研究室にテスター呼んでやってもらうだけなら 自分が作りやすさだけ考えればいいんだろうけど その場合でもデータ連携で十分なんだから 得意分野の違う言語を無理やり一つにする意味あんまりない
216 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 17:58:01.77 ID:nfiKoGl1.net] >>184 書き忘れたが nameとdateにそれぞれindex張るんじゃなく (name, date)のcomposite indexにしたほうが速くなるはず julianday()を使えば歯抜け有りでもWindow関数でいけた これ使う場合はindexも(name, julianday(date))に PARTITION BY name ORDER BY julianday(date) RANGE BETWEEN 29 PRECEDING AND CURRENT ROW
217 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 18:01:34.92 ID:V22NtS8V.net] >>213 ごめんなさい 今やってることの次の研究なので、定期的に頭の中に湧いてくるみたいです。 Unityで行こうと思ってたんだけど、Pythonで機械学習の初歩も学び始めたら、 Pythonでやったほうがいいのかまた悩みはじめました 前は Unityカードゲーム ↓ データCSVで吐き出し ↓ Pythonで解析 と考えていたけど、カードゲーム中にもデータを機械学習させて、カードゲームの設定をいじるとかしたくなってきました。 そうするとPygameでやったほうがいいのかなと思うんだけど、Pygameの評判があまり良くないようなので、グルグル思案中・・・。
218 名前:180 mailto:sage [2020/01/13(月) 19:27:28.23 ID:wBE7Qmaa.net] 180ですが、教えてもらった相関サブクエリによるselectのやり方で 20万レコード30分くらいかかってたのが2分くらいまで短縮できました。 助かりました。 select後、sqlに保存は依然としてfor文ですが、それも込みで2分です。 保存部分もまとめて、 update table t1 set (select avg(score) … というやり方ができないかと思って試しましたが、うまくできませんでした。 たぶん、最初にコメントされた方はそこもわかった上で 「少なくともselect文は」と言われたのでしょう。 ウインドウ関数、コンポジットインデックスも教えてくださりありがとうございます。 また試してみます。
219 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 19:42:53.29 ID:Yl8Am7cI.net] >>216 出来ると思うんだが、内容がすでにPythonから離れているので データベース板のSQL質疑応答スレで聞いてみると良いかも
220 名前:180 mailto:sage [2020/01/13(月) 20:25:11.89 ID:wBE7Qmaa.net] >217 たしかに! 意識できていなかったのですが、ちょっとスレ違いでした。すみません。 みなさんクエリがなんとかとか言って争ってる?ので 5ちゃんねるは教えてくれる人々がいつもなんか争ってるなぁとw
221 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 20:49:48.38 ID:6kghygIo.net] >>218 DBへのクエリの出し方はジッサイトテモダイジだ。 おなじことをしたいときでも 書き順によって 30分かかったり 2分くらいで終わったりだ。 イイネ?
222 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 21:20:28.09 ID:nfiKoGl1.net] >>215 ↓実装方法を選択する一般的な思考プロセスを経てないので目移りするんじゃないのかな 1. 自分が求める機能/非機能要求を整理する 2. 評価軸を決める 3. 実装方法の選択肢を考えられる限り出す 4. 選択肢のPros/Consを把握する 5. 評価軸とPros/Consからトレードオフを見極めて実装方法を選択する UnityとかPyGameとか特定のソリューション名で考えずに もう少し抽象度あげて選択肢を考えたほうがいいと思う Pythonで全部やる、C#で全部やる、Python+C#のハイブリッドと大枠の選択肢があって ハイブリッドの場合はファイル連携、DB連携、プロセス連携、API連携といろんなレベルがある どれがいいかは上に書いた1や2が整理されてないと選びようがない
223 名前:デフォルトの名無しさん [2020/01/13(月) 21:25:54.08 ID:nwry0R0l.net] 大袈裟だな。
224 名前:デフォルトの名無しさん [2020/01/13(月) 21:52:26.47 ID:FBCsPnZa.net] 北海道のグラサンスーパーハゲザーはここにはこないのー?
225 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 22:10:39.12 ID:P1+rByUv.net] >>211 WebSite_Listの読み込みやってるあたりで外部ファイル参照してない? ファイル読み込みしてたら、ファイル名をフルパスにするか、 import osして os.path.dirname(os.path.abspath(__file__)) + '/'+filenameにしてみたら(実行ファイルと同ディレクトリの場合)?
226 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 22:12:13.05 ID:BvowWoiX.net] pathlibつかえ
227 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 10:02:51.83 ID:RNgj0nXq.net] >>198 何言ってんだ、あるぞ
228 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 10:44:24.13 ID:sNEc9p7V.net] >>215 Pythonが機械学習部分を担当し、Unityがゲーム部分を担当し、 両者が通信を行えば言ってるようなことはできる。 (そして正直それがおすすめ) 出来ないうちに色々こんな機能も欲しいって言って考えていくと、要求ばかり大きくなって 結局何も完成しないから、まずは最小限使えるものを作ってしまうべき。 最悪のケースでも、書いたコードは無駄となるかもしれないけど、 設計手法や要素技術は身に着くのだから別のプラットフォームに移植するのに始めのときより時間がかからなくなる。
229 名前:デフォルトの名無しさん [2020/01/14(火) 13:35:18.55 ID:Cb2SImdL.net] 「くだすれ」ってなんですか?
230 名前:デフォルトの名無しさん [2020/01/14(火) 13:59:52.47 ID:6KmUa3mX.net] ここが起源っぽい https://www.log soku.com/r/2ch.net/tech/1023766485/
231 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 14:01:21.23 ID:n2n8mDAV.net] pythonでデータベース使うならどれが簡単?
232 名前:デフォルトの名無しさん [2020/01/14(火) 14:10:20.88 ID:Sh3SY+TQ.net] sqlite3
233 名前:デフォルトの名無しさん [2020/01/14(火) 14:10:23.62 ID:Cb2SImdL.net] >>228 なんでそんな略称にしようと思ったんだろうな
234 名前:デフォルトの名無しさん [2020/01/14(火) 14:11:37.48 ID:Sh3SY+TQ.net] くそスレ くそが出そう半分出かかってるがトイレ遠くて困ってる くだらないスレ
235 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 14:14:12.10 ID:/8RfG7cV.net] >>229 お前が何がしたいのか次第だろう Webアプリ作ろうとしてるんだったらいくらSQLiteの扱いが簡単とはいえ選択肢に入らないし、 データ分析なんかで大きなデータセットを扱うんだったらBigQueryになるかもしれない
236 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 14:16:57.58 ID:NngjCG95.net] ポスグレをサイコPGで
237 名前:デフォルトの名無しさん [2020/01/14(火) 14:18:33.49 ID:PBX58Pvh.net] memcached
238 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 15:32:37.37 ID:ryFU8X4N.net] >>229 sqlalchemy
239 名前:デフォルトの名無しさん mailto:age [2020/01/14(火) 20:03:55.62 ID:V5Q3d6Dh.net] pandas関係です。 >>> train_df[['Embarked', 'Survived']].groupby('Embarked').mean() Survived Embarked C 0.553571 Q 0.389610 S 0.336957 >>> train_df[['Embarked', 'Survived']].groupby('Embarked').count() Survived Embarked C 168 Q 77 S 644 と2回メソッド実行が面倒です。 以下のようなDataFrameを得たいのですが、スマートな方法ありますか? Mean Count Embarked C 0.553571 168 Q 0.389610 77 S 0.336957 644
240 名前:デフォルトの名無しさん mailto:age [2020/01/14(火) 20:12:28.50 ID:V5Q3d6Dh.net] 自決しました。aggを使うのですね。
241 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 20:19:00.39 ID:3etKzhuc.net] 自決したのか!!!
242 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 20:20:27.07 ID:eL1p+DpS.net] >>238 命は大切にしろよ
243 名前:デフォルトの名無しさん [2020/01/14(火) 21:48:30 ID:sWWbL+aD.net] 超初心者な質問で申し訳ないのですが mの行列の縦の部分に行列Pを入れたいのですがどうしたらいいですか? こんな感じにしたいのです m=[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]] p=[5,6,7,8] m[0][3]=p[0] m[1][3]=p[1] m[2][3]=p[2] m[3][3]=p[3]
244 名前:デフォルトの名無しさん [2020/01/14(火) 22:06:55.30 ID:4urAtQVN.net] numpyが楽 import numpy as np m=np.array(m) p=np.array(p) m[:,3]=p
245 名前:デフォルトの名無しさん [2020/01/14(火) 22:19:54 ID:Cb2SImdL.net] rubyでは
246 名前:241 [2020/01/14(火) 22:29:22 ID:sWWbL+aD.net] >>242 ありがとうございます p=[5,6,7]でmの縦より一個少なくて ブロードキャストエラーって出てしまいます これはどうしたらいいですか?
247 名前:デフォルトの名無しさん [2020/01/14(火) 23:52:13.22 ID:4urAtQVN.net] >>244 縦方向の範囲も決める m[0:3,3]=p か m[1:4,3]=p
248 名前:デフォルトの名無しさん mailto:age [2020/01/15(水) 03:04:35 ID:TeTRS4cT.net] sklearnで機械学習のモデルに使えるクラスの一覧取得したいんですけどできますか?
249 名前:デフォルトの名無しさん mailto:sage [2020/01/16(木) 00:51:13.89 ID:MOKFFgvW.net] https://colab.research.google.com https://github.com/dotnet/try/blob/master/NotebooksOnBinder.md import sys import platform print(sys.version) print(platform.platform()) Binderでの実行結果 # 3.7.3 | packaged by conda-forge | (default, Jul 1 2019, 21:52:21) # [GCC 7.3.0] # Linux-4.14.138+-x86_64-with-debian-buster-sid Colaboratoryでの実行結果 3.6.9 (default, Nov 7 2019, 10:44:02) [GCC 8.3.0] Linux-4.14.137+-x86_64-with-Ubuntu-18.04-bionic 2.7.17 (default, Nov 7 2019, 10:07:09) [GCC 7.4.0] Linux-4.14.137+-x86_64-with-Ubuntu-18.04-bionic Jupyter Notebooks with .NET Core https://github.com/dotnet/try/blob/master/Notebook.md 参考:Pythonのバージョンを確認、表示(sys.versionなど) https://note.nkmk.me/python-sys-platform-version-info/ VSCodeがネイティブ対応したjupyterをpython3.8で動かそう https://qiita.com/moonoct/items/22ebfb62de18d4c8a576
250 名前:デフォルトの名無しさん mailto:sage [2020/01/16(木) 18:45:28.48 ID:TdDkkYB1.net] ちょっとスレ違いかもしれませんが何かヒントがあれば教えてください 今はやりのDeepFaceLabをちょこっと体験してみようと思って、ローエンドのグラボ買いました CUDA9.2版をDLして使ってみたのですが、あきらかにGPUが使われておらず、 CPUの負荷が100%になり、RAMもかなり食っています 解説サイト等を見るとCUDA9.2やcudnnのインストール必須と書いてあるのですが、 DeepFaceLabの中にCUDAやcudnnのdllがあるので要らないのでは?と思っています (一応インストールしてからも試してみましたが、変わらず…) CPU:i5 4590 3.3GHz GPU:GT710 RAM:12GB
251 名前:デフォルトの名無しさん mailto:sage [2020/01/16(Thu) 20:27:00 ID:FGWQ9iNR.net] >>248 先人の知恵を踏み倒しておいてなにをいっているんだおまえは
252 名前:デフォルトの名無しさん [2020/01/17(金) 02:23:05 ID:gAZZjojh.net] スレチぉるど
253 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 05:22:24 ID:C//xu3ki.net] Anaconda環境ってやつは みんな普通に使ってるものなの? open cv をインストールしようとしてるんだけど そっちのほうがいいのか 別のやり方があるのか知りたいのですが
254 名前:デフォルトの名無しさん [2020/01/17(金) 11:04:38.28 ID:fMuYUnvE.net] Anaconda3 使ってるが conda じゃなくて pip で OpenCV 入れて何の問題も無いよ
255 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 11:56:05 ID:blsKHKuZ.net] Anaconda3一応いれたけどVSCodeのターミナルでpipしても反映されなくなって Anacondaコンソールからpipするようになったな
256 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 13:52:04.96 ID:CE1DS/Xp.net] 開発環境がオフラインなんですが、ライブラリを追加するにはどういった方法がありますか? 別環境でネットはつながり、ファイルの移動は可能です。
257 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 13:54:57.41 ID:blsKHKuZ.net] 普通にpip install C:\xxx.whlとか
258 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 13:55:47.64 ID:VTFge/t4.net] >>254 つながるヤツでライブラリの配布場所へ逝って一式zipで落としてくる その後つながってない方へ移動させて インスコ元指定オプション付けたpipでおk
259 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 13:59:11.32 ID:VTFge/t4.net] >>255 およそケコ━━━━(・∀・)人(・∀・)━━━━ン!!
260 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 12:28:11 ID:bny/49Iw.net] 日本語表記のあるcsvファイルをdfとして読み込もうとしているのですが、 df_descr = pd.read_csv(descr_path,encoding='SHIFT-JIS') を実行したところ 例外が発生しました: UnicodeDecodeError 'utf-8' codec can't decode byte 0x82 in position 0: invalid start byte のメッセージが出現して読み込みできません。 SHIFT-JISの設定だけではいけないのでしょうか?
261 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 12:37:18 ID:6Wtj4R8r.net] 日本語ファイルを読み込むにはまずは文字コードについて精通している必要がある UTF-8のBOMとかは特に テキストファイルの文字コードが何かも
262 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 12:38:26 ID:9uT/TZmo.net] cp932にしてみたら?
263 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 12:43:37 ID:bny/49Iw.net] >>260 CP932 もダメでした。 pythonで日本語取扱うのってかなりハードル高いんでしょうか? 想定ユーザーは英語識字能力高くないので、日本語でいきたいのですが・・・。
264 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 12:46:30 ID:ITm1SqvJ.net] encoding="shift_jis"
265 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 12:51:58 ID:bny/49Iw.net] >>262 だめでした。 テストのため Excelで あ の一文字だけ入力してcsvで保存しているのですが、ファイルの保存方法の設定を変えるべきなのかな。
266 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 12:56:34 ID:34RcyaUW.net] >>258 pandas read_csv can't decode でググれば、エラーを無視してread_table使えとかencoding='cp932'にしろとか色々書いてある
267 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 13:04:47 ID:bny/49Iw.net] >>264 ignoreとかいろいろ設定ためしてみたのですが、全て同じエラー 考えてみるとshift-jisって指定しているのにutf-8でエラーってなんかへんですよね
268 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 13:07:57.48 ID:KKXb2HyK.net] >>258 >>265 3系でなってるの? 2系でなってるの? DO (●´ー`〇)CCHI?
269 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 13:13:41.09 ID:bny/49Iw.net] anacondaでpython3.7使ってます
270 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 13:21:56.07 ID:KKXb2HyK.net] >>267 3.7系でも起きるんかい・・・ > 日本語問題 import codecs with codecs.open(descr_path, "r", "Shift-JIS", "ignore") as file: ____df_descr = pd.read_csv(file) ____print(df_descr) ↑で どうよ
271 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 13:40:28 ID:bny/49Iw.net] >>268 ありがとうございます。 ためしてみたのですが、 例外が発生しました: UnicodeDecodeError 'utf-8' codec can't decode byte 0x82 in position 0: invalid start byte でした・・・。
272 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 13:51:16 ID:KKXb2HyK.net] >>269 263でひとりごとしてる通り、 > ファイルの保存方法の設定を変えるべきなのかな。 ↑を試してみてけれけれ
273 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 13:52:45 ID:KKXb2HyK.net] 具体的には (BOMなし)UTF-8で中身「い」とかにしてかぶんない名前で保存、 268のコードのShift-JISんとこをUTF-8に書き換えて ファイル名も適宜設定した場合 うまくいくかどうか。
274 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 14:01:46 ID:bny/49Iw.net] >>270 c#でcsv書き出してるけど、そこでなにか設定するべきなんですかね excelでcsvファイル作って268のコード使ってみたら、もじバケしてるけど動作はしました
275 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 14:06:40 ID:KKXb2HyK.net] >>272 263でテストのためエクセルで(ry とか言ってたのに なんで突然C#が出てくるんだよwww 改行コード問題(0x0D派/0x0A派/両方必要だYO派)が 根底にありそうだとエスパーしてみる。
276 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 14:07:44 ID:KKXb2HyK.net] >>272追記 「文字化けしてるけど動作はした」とやらの端末、OSは何使ってる? 非Windows、おそらくはマカーと予想しているんだが。
277 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 14:10:45 ID:ITm1SqvJ.net] 先頭にBOMがついていて、encode指定を無視してUTF8と見なし、 許されないSJISコードにぶつかりエラーになっていると妄想してみる
278 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 14:28:25.42 ID:9uT/TZmo.net] C#で出力ということは単純にUTF-8になってる気がしないでもない 読み込みおかしい時は対象ファイルをバイナリエディタで眺めてみるくらいはしようよ
279 名前:デフォルトの名無しさん [2020/01/18(土) 15:13:58 ID:j3FkiK0W.net] すみません、どなたかご教授願います。 Pythonでseleniumを使いchromeを任意のページで起動させようとしています。 しかし、起動するはするものの driver.get("URL")でページを指定しても、Googleのトップページしか開かない状況です。 どうにか、任意のページで開きたいのですが 何か心当たりある方はいらっしゃいませんでしょうか。
280 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 15:21:58 ID:ftiCyY/7.net] >>277 まずスクリプトの中身をここに書いてけば? プログラムは書いた通りにしか動かないから君の書き方がミスってるだけな気がするし
281 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 15:29:04 ID:KKXb2HyK.net] >>277 278 + >>1 よめ OSとPythonの種類・バージョンは最低限書け
282 名前:デフォルトの名無しさん [2020/01/18(土) 15:46:31 ID:j3FkiK0W.net] >>278 >>279 OSはwindows 10 python3.8.1です vs code で記述しています。 ソースコード from selenium import webdriver driver = webdriver.Chrome('ファイル場所') driver.get('URL') です。
283 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 15:51:37 ID:KKXb2HyK.net] >>280 お前が1すら読んで理解できない池沼だということはよくわかった ほごしゃの ひとと いっしょに みてね!
284 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 16:07:03 ID:j3FkiK0W.net] >>281 初めて質問したもので、勝手がわからず申し訳ない。 dpaste.com/0WEPW80 エラーは出てないです。 OS : windouws10 home Python3.8.1 Editer: VScode IDEは使ってないです。 https://tanuhack.com/selenium/#h3-1 このサイトを参考にしました。 質問の形はこれで大丈夫でしょうか?
285 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 16:10:39 ID:9uT/TZmo.net] webdrive.Chromeに指定するのはgoogle chrome自体ではなくchromedriverのパス
286 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 16:15:08 ID:KKXb2HyK.net] >>282 283がいう通り。 Chromedriver.exeをまず入手してこい。 はなしはそれからだ。
287 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 16:28:00 ID:j3FkiK0W.net] >>283 >>284 教えていただき本当にありがとうございます。 chromedriverのパスを設定したら上手くいきました。 最初のほうで失礼な質問をしてしまい、すみませんでした。
288 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 16:55:44 ID:bny/49Iw.net] >>270 c#側のコードを確認したらshift-jisになっていたので、 utf-8に変更したら読み込み可能になりました。 いろいろとありがとうございました。
289 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 16:59:34 ID:bny/49Iw.net] でも、shift-jisのファイルをshift-jisとして読み込もうとしても うまくいかないものなんですね 難しい・・・
290 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 17:10:31.05 ID:ITm1SqvJ.net] >>287 テキストエディタで確実にShift-Jisになっているファイルを作り、読ませてみて
291 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 18:17:17 ID:bny/49Iw.net] >>288 これはできますね。 間にエクセルを入れるとどうもおかしなことになるみたいです。 エクセルって書き出し時のコード指定できないみたいだし。
292 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 18:43:47.49 ID:KKXb2HyK.net] >>287 >>289 書き出し時の文字コード指定 > 分かりづらいところにあるが、なんとかできたと思うけど・・・ 尚、エクセル経由のCSVは基本BOM付きUTF-8になるらしい。 おかしいときはnotepad(メモ帳)あたり使って、なんとかしる。 ANSIとかUnicodeみたいなのが選ばれてるかもわからんね。
293 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 18:46:21 ID:bny/49Iw.net] df_descr.to_csv('summary_data.csv', mode='a', header=False) header=Falseなのに、データに日本語があると毎回ヘッダーが書き込まれる pythonはutf-8で自分で書き込んでいるのに、自分で読めてないってことですよね pythonで日本語のデータ書き込み諦めたほうがいいのかなぁ 一日本質とは違うところで悪戦苦闘して疲れ果ててきました
294 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 18:59:16 ID:bny/49Iw.net] >>291 間違えました df_descr.to_csv('summary_data.csv', mode='a', header=False) header=False でデータに日本語が含まれているとヘッダーが一度も書き込まれない。 なんででしょう・・・。
295 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 19:00:48 ID:34RcyaUW.net] >>289-290 Excel 2016からutf-8でも保存できる https://did2memo.net/2016/11/14/excel-csv-utf8/
296 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 19:03:05 ID:KKXb2HyK.net] >>291の引数のケツに「encoding='cp932'」でも足して味噌 あと、 mode='a'は追記モードで!って意味だから、 最初に何か書かれてたら、ケツに付け足すだけだぞ念のため。
297 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 19:06:11 ID:KKXb2HyK.net] >>292もちつけあふぉたんwww > header=False > でデータに日本語が含まれているとヘッダーが一度も書き込まれない 「ヘッダはなしで!」って引数で指示してるんだから ヘッダーが出てきちゃったらおかしいだろwwwww >>293 thx で、BOMの有無はどうなんだ?
298 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 19:10:51 ID:bny/49Iw.net] >>290 notepad上書きで解決というのも読んだのですが、バケバケ状態解決せずです。
299 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 19:25:15 ID:bny/49Iw.net] >>295 あああ〜 header=False は常にヘッダー書き込まないんでしたっけ。 csvファイルにヘッダーがなければ書き込む、ヘッダーがあれば書き込まないって設定ありませんでしたっけ? なんかもうだんだん自分が壊れてきました。
300 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 19:32:41 ID:KKXb2HyK.net] >>296 単純上書きではだめだ ファイル名を指定して保存 からやらないとだめだ >>297 一旦休め めしを食え
301 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:00:14.19 ID:34RcyaUW.net] >>295 > で、BOMの有無はどうなんだ? 試してないけど有りだろ さすがに自分で保存したcsvが読めないとかないと思うし
302 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:04:10.61 ID:KKXb2HyK.net] ちょっとしらべてみた。 >>299 のいう通り(?) ExcelはBOMがないともげしく文字化け起こすから、むしろ必須なようだな。
303 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 20:07:24.13 ID:KKXb2HyK.net] 通知しますか?のポップアップうざいけど ↓の説明あたりはなかなか良いとおもた ttps://alaki.co.jp/blog/?p=1236
304 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 21:42:34 ID:bny/49Iw.net] >>301 いろいろありがとうございます。 頭冷やしに散歩してきて、じっくり読んだら解決しました。 これ一人
305 名前:だったら絶対解決できなかった。 Python数値計算とかバシバシできてるときはすごく作業効率いいんだけど、 こういうところで躓くと大量に時間を消費してしまう。 C#と勝手が違うところが多いよね。 使い続ければいいつか立派なPython使いになれるんだろうか・・・。 [] [ここ壊れてます]
306 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 23:05:28 ID:ciDfAHTw.net] Software Design 2月号は、Python 特集 Python.jp の手順通りに、Python 3.7 を入れる VSCode で、Microsoft 製のPythonの拡張機能を入れる! 仮想環境は、venv pip install jupyter pandas lxml plotly-express で、使うものを入れる
307 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 23:13:31.82 ID:bny/49Iw.net] plt.text(0,0,'hello') と座標を指定するのでなく、グラフの左上、右上などを指定してテキストを表示させることってできますか?
308 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 23:13:48.02 ID:ciDfAHTw.net] >>272 漏れは、Windows 10 のVSCode で、Ruby を使っているけど、 ファイルは、BOM なしUTF-8 しか使わない! ただし、BOM が無いと、WindowsがCP932 と区別できないから、 エクスプローラーでの文字列検索ができなくなる そのため、WSL に、Ubutu 18.04 を入れて、 Linux 側から、Windows 内のファイルを、grep している
309 名前:305 mailto:sage [2020/01/18(土) 23:20:56.02 ID:ciDfAHTw.net] >>296 VSCode で、BOM なしUTF-8 で、保存し直せば?
310 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 08:40:11 ID:pvqGEyXi.net] >>302 > 躓くと大量に時間を消費してしまう これな どの言語でもだいたいいっしょや C系とは基本思想が違うからね 文字の扱いは特に違うね C(無印)の頃からC使ってたおれも いまではそこそこのPython2系使いです 3系はまだ途中です >>304 matplotlibの扱い方のことけ?
311 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 09:51:40.75 ID:pvqGEyXi.net] 返信がないから勝手にmatplotlibの扱い方のことだとエスパーしておく >>304 左上に寄せたいなら plt.text(0, 0, 'hello' ,horizontalalignment='left', verticalalignment='top, transform=ax.transAxes) > グラフ座標で位置を指定(transform) > 基準位置は左上で指定(〜alaignment='left'/'top') ttps://teratail.com/questions/108513 より
312 名前:デフォルトの名無しさん [2020/01/19(日) 18:21:33 ID:ehZNNwbS.net] >>302 >>307 にも書かれてるが 単に経験不足知識不足 python関係ない
313 名前:デフォルトの名無しさん [2020/01/19(日) 18:41:27 ID:08aGszMi.net] 質問です。 IpadのPythonistaでWebページの作成にチャレンジしています。 Projectフォルダにあるurls.py内で Pathをincludeでアプリケーションフォルダにある myprofile.urlsを指定しているのですが No Module named myprofileとなってしまいます。 アプリケーションフォルダはmyprofileで その中にあるurls.pyもスペルに間違いはないのですが 他に登録する作業か何か必要なのでしょうか?
314 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 19:11:59 ID:pvqGEyXi.net] >>310 >>1読んでどこかにurls.pyとやらのソース貼れ
315 名前:デフォルトの名無しさん [2020/01/20(月) 02:42:44 ID:zXBhRA8b.net] >>311 ipadにインストールしたPythonistaでDjangoを 使ってWebサイトを作ろうとしています。 Projectフォルダのurls.pyでは from django.urls import path, includeで urlpattern = [path ‘’, include(‘myprofile.urls’),] の先はアプリケーションフォルダ内の urls.pyのルートを指定しています。 初心者でDjangoビギナーズブック(カットシステム) という本を参考に手順を踏んでやっています。 ちなみにwebのページは2回ほど表示出来たのですが その後はなぜか接続出来なくなりました。 ipadのブラウザの設定とか関係してるのでしょうか・・・
316 名前:デフォルトの名無しさん [2020/01/20(月) 02:50:42 ID:zXBhRA8b.net] こっちはプロジェクトフォルダ内のurls.pyです。 from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('myprofile.urls')), ] こっちがアプリケーションフォルダに分けたurls.pyです。 from django.http import HttpResponse from django.urls import path def top(request): return HttpResponse('This is TopPage!!!') def resume(request): return HttpResponse('This is Resume!!!') urlpatterns = [ path('', top), path('resume/', resume,), ]
317 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 10:08:32 ID:QkwcbMkc.net] >>308 昨日、突然の救出で読むのおそくなりすいません。 このページのコード実行してみたけど、エラー出るんですよね。 多分自分はplt.plotとax.plotがごっちゃになってて、 対話式のplt.plotはある程度使えるようになってきたんだけど、 ax.pltがまだわかってないんだろうなぁ。 いまのところpltの方でできる範囲なんですが、axの方も使えたほうがいいですよね。
318 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 10:15:02 ID:QkwcbMkc.net] 初歩的な質問ですが、 一つのdfとdfデータフレームからスライスした df_correct df_incorrect というデータフレームをあちこちの関数で使い回す場合 1. mainでスライスしてdf、df_correct、df_incorrectを関数に引数として渡す 2. 各関数にはdfだけを渡して各関数の中でスライスしてdf_correct、df_incorrectを生成する のどちらが正しいのでしょう? mainでスライスして渡していたのですが、dfだけ渡せばあとは関数内で処理してくれるほうが、関数の独立性が高まっていいのかと悩み始めました
319 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 10:17:27 ID:QkwcbMkc.net] 1 コードの冗長性 低い 各関数の独立性 低い 2 コードの冗長性 高い 各関数の独立性 高い となりますよね。 複雑なステップを踏んだ作業なら1だと思うのですが、 スライスのように一行で書けるコードだと2のほうがいいのかなぁ
320 名前:デフォルトの名無しさん [2020/01/20(月) 13:24:40.69 ID:0GX6odYx.net] >>314 そう単純な話ではないが今回に限って言えば plt.plot のグラフ内なら plt.text ax.plot のグラフ内なら ax.text じゃね
321 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 15:57:08 ID:Y1i1RW21.net] >>315 >どちらが正しいのでしょう? この考え方が間違ってる プログラミングにおける意思決定は常に唯一正しい解があるわけではない 二元思考は捨てて状況に応じて「より適切な」方法を選ぶという考えをすべき どちらがより適切なのかは主に「各関数にどういう責務/役割を持たしたいのか?」による correct/incorrectの判別を含む役割を持たしたいのかどうか どういう風に処理を関数に分解してそれぞれに役割分担させたいのか 行数はあまり関係ない
322 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 17:40:33.60 ID:Eb5OCTAV.net] >>312-313 おまえが1を理解できない程度の軽度池沼だということがわかった。 しょしんしゃを かくれみのに する じしょうしょしんしゃ は しょしんしゃいた いがいの 5ちゃんは みないでね! おうちの ひとと いっしょに いんたーねっとを していってね!
323 名前:デフォルトの名無しさん [2020/01/20(月) 19:16:28.46 ID:EenR0R6t.net] >>319 精神障害等級2級なんで分かるように教えてください・・^_^
324 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 19:23:11.85 ID:Eb5OCTAV.net] >>320 つづきは 初心者の質問 matsuri.5ch.net/qa/ へ
325 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 20:18:36.33 ID:tI8Cbd0v.net] seleniumでchrome動かしています ページ内のラジオボタンをidで拾ってオンにしたいのですが、 画面表示ありだと問題なく進むのに、headlessだとなぜか失敗してしまいます 何か考えられる原因ありますか? ↓の部分でheadlessだとコケます driver.find_element_by_id("該当ラジオボタンのid").send_keys(Keys.SPACE) ちなみに月イチで動かしていたコードだったのですが、先月までは問題なく動いてました chromeが79.0.3945.130にアップデートされたことは関係ありますかね…
326 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 20:40:30.19 ID:Eb5OCTAV.net] >>322 chromedriverのアプデは間に合ってるか? なんかエラー出てないか?
327 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 21:11:01.87 ID:tI8Cbd0v.net] バージョンがあってないように思えるのですが、 一応79系では最新のchromedriver使ってます
328 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 21:55:53 ID:tI8Cbd0v.net] 自己解決で済みません chromeダウングレードしたら動いたので、やはりchromeのバージョンのせいでした ちょっとこのまま様子見てみます
329 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 22:28:29 ID:Eb5OCTAV.net] >>324-325 chromedriverがあわせてくるまでの辛抱ってことけ… まあ、なんだ、その、がんがれ そういえば Chromeはそのへんがしょっちゅう問題になるから Firefoxに乗り換えたんだったな自分
330 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 22:51:50 ID:H7Jd/N/8.net] 1, 2, 3, 5, 7, 12, 13, 14 みたいなランダムな数字の列があるのですが、 これらのなかから連続値のみを取り出してそれらの平均を計算し元の配列に戻したいのですがどうすればいいですか? 上記の物だと 2, 5, 7, 13 といった感じです
331 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 23:03:25 ID:w7NKNQW/.net] n = [1,2,3,5,7,12,13,14] temp = set() ans = [] for i in n: __if i-1 in temp: temp.add(i) __else: ____if temp: ans.append(sum(temp)/len(temp)) ____temp = {i} else: ans.append(sum(temp)/len(temp))
332 名前:天猛星ダラマンティス ◆DARAMAN/jg [2020/01/20(月) 23:23:49 ID:bai7maK4.net] >>321 フハハハハ! よろしい、では私の正体をお見せしましょう。 そこのスレに行けば質問に答えて頂けるのですね?
333 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 23:24:16 ID:DABjARM6.net] >>328 ありがとうございます 最後の行で0除算エラーになるんですが、この行は何に使われるコードなんですか?
334 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 23:34:49.76 ID:DABjARM6.net] for i in n: if i - 1 in temp: temp.add(i) else: if temp: ans.append(int(sum(temp)/len(temp))) temp = {i} else: temp.add(i) print(temp) ans.append(int(sum(temp) / len(temp))) これで合ってますかね?
335 名前:デフォルトの名無しさん mailto:age [2020/01/21(火) 15:14:39 ID:vdt1a+N/.net] binary classificationだと以下の2つは同じという認識であってます? predict(test) predict_proba(test)[:, 1]
336 名前:デフォルトの名無しさん mailto:sage [2020/01/21(火) 17:23:30.28 ID:aLz1RI/9.net] すみません、リストに[12,54,67,89,22,・・・・]とランダムな数字が2000個くらい並んでる状態で、 200個区切りでtxtファイルに出力したいのですが、その時の参考になるようなfor文を教えて頂けないでしょうか・・
337 名前:デフォルトの名無しさん mailto:sage [2020/01/21(火) 17:42:36.16 ID:Vd2KBMmO.net] >>333 from toolz import partition_all foo = [12,54,67,89,22] for x in partition_all(2, foo): ...: print(x) (12, 54) (67, 89) (22,)
338 名前:デフォルトの名無しさん [2020/01/22(水) 06:54:53 ID:0G9ccXQk.net] >>333 ある言語では write(dat,"data.txt",200)
339 名前:デフォルトの名無しさん [2020/01/22(水) 07:58:49.25 ID:rbmjoU9Y.net] rubyかと思ってググったけど第3引数はオフセットだったから違うな
340 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 16:14:53.51 ID:nWv0CuIQ.net] 文字列内の制御文字をそのまま表示する方法を教えて下さい。 "123¥t456"なら '123¥t456' と表示する方法です。Python3系でお願いします。
341 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 16:35:25.08 ID:rj2HkyIb.net] >>337 print(repr("123¥t456"))
342 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 17:32:17.91 ID:sK1GeIAD.net] cおじさんが今更pythonの入門書読んでるんだけど リストやタプルを比較できるってどういう意味? >>> (10, 2) > (9, 4) True >>> [3, 9, 5] > [4, 3, 1] False これって、リストやタプルの何をどう比較して結果を出してるの?
343 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 17:36:08.33 ID:nWv0CuIQ.net] >>338 ありがとうございました! repr()という関数をはじめて知りました。
344 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 17:38:37.11 ID:sK1GeIAD.net] 自分で冷静に見返してみたんだけど リストやタプルの先頭の数値だけを見て比較して結果を出してるのかしら?
345 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 17:40:40.38 ID:sK1GeIAD.net] 実験したらやっぱり先頭の数値を比較してるだけらしい事が解りました お騒がせしました
346 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 17:55:40.16 ID:1mCrOGg1.net] >>342 文字列の比較と同じで、先頭が同じだったら次の要素を比較するんじゃないかな。 1,2 < 1,3みたいな感じで。今試せないから推測だけど。
347 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 18:21:12.01 ID:sK1GeIAD.net] >>343 ご指摘の通りでした >>> (1,2) < (1,3) True >>> (1,4) < (1,3) False でした ありがとうございました
348 名前:デフォルトの名無しさん [2020/01/23(Thu) 08:40:27 ID:5USEgiu9.net] dict = {a:10,b:15,c:20,d:30,e:100} みたいな辞書型があった場合に これをそのまんま string_dict = "[a:10,b:15,c:20,d:30,e:100]" こんな感じの文字列に簡単に変換する方法ってないですか?
349 名前:デフォルトの名無しさん [2020/01/23(Thu) 08:43:34 ID:5USEgiu9.net] >>345 すみません、自己解決しました jsonで
350 名前:デフォルトの名無しさん [2020/01/23(Thu) 12:12:13 ID:VWfJLmDE.net] jsonでもそうはならんのじゃ
351 名前:デフォルトの名無しさん mailto:sage [2020/01/23(Thu) 12:26:14 ID:USDwNJRh.net] >>345 str(dict) これで不満だったらdict.items()をリスト内包処理して文字列を作るのがいい ‘[‘+’, ‘.join([str(k)+’: ’+str(v) for k,v in dict.items()]) +’]’ みたいな
352 名前:デフォルトの名無しさん [2020/01/23(Thu) 14:01:15 ID:rTyMrtC+.net] 仕事で使用している上に特定のソフトのスクリプトなので詳しいことが書けないのですが、 以下のようにクラス変数をチェックするコードを書くと何故かcheck1の値は6になってるのに、check2の値は0のままみたいなことが起きてしまいます。 class testClass(): def __init__(self): self.test = 0 def set_test(self,a,b,c): self.test = a+b+c print("check1:"+str(self.test)) def print_test(self): print("check2:"+str(self.test)) testClass = testClass() testClass.set_test(1,2,3) testClass.print_test() この↑のサンプルスクリプト自体はどっちも6と正しく表示されるのですが、これに似たスクリプトでおかしなことになって困っています。 何か思い当たる節のある方がいたら教えてください。。。
353 名前:デフォルトの名無しさん [2020/01/23(Thu) 14:04:48 ID:VWfJLmDE.net] def set_test(self,a,b,c): self.testt = a+b+c print("check1:"+str(self.testt)) みたいになっててもエラーは出ない
354 名前:デフォルトの名無しさん [2020/01/23(Thu) 14:32:36 ID:I5UoJI+g.net] 変なとこでリストとか定義してない?
355 名前:デフォルトの名無しさん [2020/01/23(Thu) 15:05:00 ID:5USEgiu9.net] >>350-351 ありがとうございます もう少し詳しく書くと、こんな感じになってて check1では6と表示されるのに check2では-1と表示されるので、スペルミスというわけでもなさそうです。 リストはあるにはあるんですが、self.test自体には影響のなさそうな使い方で定義しています。 class testClass(): def __init__(self): self.testList = [] self.test = 0 def set_test(self,a,b,c): self.test = a+b+c if 5 < self.test: pass else: self.test = -1 print("check1:"+str(self.test)) def print_test(self): print("check2:"+str(self.test)) testClass = testClass() testClass.set_test(1,2,3) testClass.print_test()
356 名前:デフォルトの名無しさん mailto:sage [2020/01/23(木) 15:35:16.75 ID:EBItVrD5.net] >>334 ありがとうございます。解決できました;;
357 名前:デフォルトの名無しさん [2020/01/23(木) 18:54:37.85 ID:rTyMrtC+.net] try exceptでエラーが出ないようになってて それが原因でした
358 名前:デフォルトの名無しさん [2020/01/23(木) 19:12:45.97 ID:5iKgMbK4.net] class testClass(): (略) self.test = a+b+c (略) testClass = testClass() 同じ名前でtestClassを上書きしているので self.testがインスタンス変数の.testだったりクラス変数の.testだったりなってそう
359 名前:デフォルトの名無しさん [2020/01/23(木) 19:26:56.00 ID:I5UoJI+g.net] w
360 名前:デフォルトの名無しさん [2020/01/24(金) 00:57:45 ID:TsxkySTN.net] MacでUDP送信できるバイト数は9216バイトまでらしいんですが どうしても、もっと長い文字列を送りたい場合、何も対処方法はないですか? 以下の回答には、sudoで指定すればいいとありますが、ユーザーに配布するプログラムでは9216バイト以上の UDP通信は不可能ということでしょうか? https://stackoverflow.com/questions/22819214/udp-message-too-long
361 名前:デフォルトの名無しさん mailto:sage [2020/01/24(金) 01:06:02.78 ID:4o50klp+.net] 全部まとめて送れって誰が言った?
362 名前:デフォルトの名無しさん [2020/01/24(金) 01:52:46.64 ID:TsxkySTN.net] お母さんに言われました
363 名前:デフォルトの名無しさん [2020/01/24(金) 06:07:59 ID:JfpvAmZH.net] つかえねーママだな 井戸に棄てとけ
364 名前:デフォルトの名無しさん [2020/01/24(金) 08:18:26 ID:TsxkySTN.net] お母さんは大きすぎて井戸に入りきりませんでした
365 名前:デフォルトの名無しさん [2020/01/24(金) 11:40:21 ID:ytRnz1Ft.net] packet分割して順番通りに届かなくても良かったり一部lostしても良いものはUDPで送れ そうじゃなければTCPで送れ もちろん敢えてUDPで送って受信側が自分で管理しても良い
366 名前:デフォルトの名無しさん [2020/01/24(金) 11:41:23 ID:ytRnz1Ft.net] ちなみにUDPのパケロスは日常茶飯事なので覚悟汁
367 名前:デフォルトの名無しさん mailto:sage [2020/01/24(金) 12:31:23.12 ID:yMReJdyt.net] raspbianでwebviewを使いたいんだけど、pyqtwebengine がインストールできない $ pip3 install pyqtwebengine Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Collecting pyqtwebengine Using cached https://files.pythonhosted.org/packages/47/9f/60e630711fd1dd14ef3bd95c86c733c86b8c0853749c7a03691f681f13fd/PyQtWebEngine-5.14.0.tar.gz Installing build dependencies ... done Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib/python3.7/tokenize.py", line 447, in open buffer = _builtin_open(filename, 'rb') FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-install-64axxnil/pyqtwebengine/setup.py' ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-64axxnil/pyqtwebengine/ 対処方法わかる方いますか?
368 名前:デフォルトの名無しさん mailto:sage [2020/01/24(金) 13:20:47.18 ID:0kzB5+Pu.net] ヤギさん問題で、パケが届いてないというパケを出してそれも届かない時はどうすんの
369 名前:デフォルトの名無しさん [2020/01/24(金) 13:31:05.01 ID:ytRnz1Ft.net] protocol次第
370 名前:デフォルトの名無しさん mailto:sage [2020/01/24(金) 14:27:10.39 ID:hqpdg64g.net] なんのデータを通信するのか知らないけど そもそも何故UDPなのか?
371 名前:デフォルトの名無しさん [2020/01/24(金) 18:32:57 ID:TsxkySTN.net] >>367 1. ネットで拾ったコードがUDPだったものを改良・増築していったからTCPを使うという頭がなかった 2. リアルタイム性の高いものなので何となくUDPかな〜と思ってUDPにしていた 3. TCPの書き方が単純に分からなかったので後回しにした の3点です。ゲームっぽいものの通信です。
372 名前:デフォルトの名無しさん mailto:sage [2020/01/24(金) 21:58:58 ID:hqpdg64g.net] >>368 それ、3つとも理由になってないよ
373 名前:デフォルトの名無しさん mailto:sage [2020/01/24(金) 22:02:06 ID:n+hjULLj.net] んだべな
374 名前:デフォルトの名無しさん [2020/01/24(金) 22:18:14.81 ID:ILEFKGvt.net] >>369 >>370 馬鹿か?
375 名前:デフォルトの名無しさん mailto:sage [2020/01/24(金) 22:25:07.93 ID:FWS5bVSz.net] >>369 なぜそうしたのかと尋ねているのだから、本人がそう思ったと言うならそれが正しい理由だろう。 その理解や判断が正しくないならそれを指摘してあげればいいだろう。
376 名前:デフォルトの名無しさん [2020/01/24(金) 22:49:35.14 ID:6QvNT4gk.net] print(1) print(2) print(3) と書くのと、 def printTestFunction(one,two,three): print(one) print(two) print(three) printTestFunction(1,2,3) と書くのだと、 当然といえば当然なのかもしれませんが、関数を作ってる下の方が処理が遅くなります。 関数を使いながら、処理速度を関数なしの場合と同程度にする方法はありませんか?
377 名前:デフォルトの名無しさん mailto:sage [2020/01/24(金) 23:53:41 ID:2IgFvbdV.net] >>373 PyPy試してみたら
378 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 00:46:31.72 ID:r4R7xOc1.net] evalってすごいね デリゲートみたいにごちゃごちゃ書かなくても動的に関数を実行できるのね
379 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 09:41:51 ID:G9CbzBpK.net] 世界を司る陰陽の片方なので むしろevalからプログラミングが始まった
380 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 09:48:02 ID:G9CbzBpK.net] https://nielsrenard.com/images/sicp-wizard.png このオッサンが持ってるとおり
381 名前:デフォルトの名無しさん [2020/01/25(土) 11:38:30.42 ID:oEqdrxlM.net] eval禁止
382 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 11:48:32.32 ID:ZhRTyyWE.net] そ、そんなにevalなよ
383 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 15:59:52 ID:kUqK5k65.net] 数式が動的に展開できないじゃないの
384 名前:デフォルトの名無しさん [2020/01/25(土) 18:45:29 ID:DbK51sM/.net] testDict = {"aaa",4} print(testDict["aaa"]) とすると、TypeError: 'set' object is not subscriptable とエラーになります 何故ですか?
385 名前:デフォルトの名無しさん [2020/01/25(土) 18:47:54 ID:DbK51sM/.net] testDict = {"aaa":4} print(testDict["aaa"]) これで治りました
386 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 18:59:21 ID:GG75rfFm.net] >>381-382 そんなエラー出るんだw
387 名前:デフォルトの名無しさん [2020/01/25(土) 20:38:46 ID:zXhFVDQK.net] カンマで区切ったらsetになるから「setをの中身をdictのように参照はできんぞ」となるわな
388 名前:デフォルトの名無しさん [2020/01/25(土) 22:26:57.93 ID:PcW4kwXa.net] setのリテラルあったの知らんかった
389 名前:デフォルトの名無しさん [2020/01/26(日) 00:05:48 ID:oOcVQS8z.net] もう1つよいでしょうか 辞書型の使い方がよくわからないのですが testDict = {"a":1,"b":{"b-1":2.1,"b-2":2.2},"c":3} という辞書があった場合 testDict = {"a":1,"b":{"b-1":2.1,"b-2":2.2,"b-3":2.3},"c":3} というように、辞書の中の辞書に要素を追加するにはどうしたらよいですか?
390 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 00:08:24 ID:tDfVZ5vL.net] >>386 testDict["b"]["b-3"] = 2.3 でいける
391 名前:デフォルトの名無しさん [2020/01/26(日) 00:17:05.87 ID:oOcVQS8z.net] >>387 ありがとうございます!
392 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 11:16:01 ID:Y8WnpXRT.net] 完成したプログラムをExeファイル化して配布しようと思うのですが、 pyinstallerで pyinstaller set_data_ver25.py --onefile としたところ maximum recursion depth exceeded while calling a Python object となります。
393 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 11:20:12 ID:Y8WnpXRT.net] 再帰関数で処理が膨れ上がるようなことはしてないと思うのですが・・・。
394 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 11:32:48.17 ID:0XMsrEiZ.net] >>389-390 set_data_ver25.pyとやらの中身をみないことにはなんともはや >>1 嫁
395 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 11:36:51.35 ID:O7q4Og2n.net] maximum recursion depth exceeded while calling a Python object でググれ
396 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 11:58:14.00 ID:2upMPRsR.net] floatのunixtimeをdatetime.timeの時分秒の文字列(日にちなし)に変換するメソッドはありますでしょうか? 今はdivmod()で順次割ってformat()で文字列変換し':'で結合しております。
397 名前:デフォルトの名無しさん [2020/01/26(日) 12:15:56.36 ID:R5dI7Hbk.net] datetime.timeはメソッドであり文字列ではないけど何の話? https://docs.python.org/ja/3/library/datetime.html#datetime.datetime.time
398 名前:デフォルトの名無しさん [2020/01/26(日) 12:19:30.18 ID:R5dI7Hbk.net] ああ、クラスの方か クラスも文字列ではないから辻褄が合わないけど print(datetime.fromtimestamp(unixtime).time()) でいい話のような気もするな まあ、知らね
399 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 13:12:22 ID:Y8WnpXRT.net] >>389 https://qiita.com/tobesan/items/12189abc5adbda4a49bd ここで解決したのですが、今度は UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 139: invalid start byte が・・・。
400 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 13:16:45 ID:Y8WnpXRT.net] おそらく https://stackoverflow.com/questions/47692960/error-when-using-pyinstaller-unicodedecodeerror-utf-8-codec-cant-decode-byt でpyinstallerの設定変えろってことなんだとおもうんですが、anaconda使用してターミナルからpipでインストールしたpyinstallerがどこのフォルダにあるのかわからない・・・ アナコンダでインストールしたPyhotnのフォルダってそもそもどこにあるんでしたっけ?
401 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 13:29:59 ID:0XMsrEiZ.net] >>396 文字コード BOM
402 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 13:32:53.47 ID:Y8WnpXRT.net] >>398 ソースコードをBOMなしで保存してみましたが、同じエラーで・・・。
403 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 13:58:33 ID:0XMsrEiZ.net] >>399 じゃあ文字コードあってるかどうかというか、 そもそも、ちゃんと、指定してるんか?
404 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 13:59:44 ID:0XMsrEiZ.net] >>397 だから>>1嫁ってば OSくらい書かないとわからん
405 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 17:35:08 ID:Y8WnpXRT.net] >>401 os windows10 anaconda python3.7 です。 https://stackoverflow.com/questions/47692960/error-when-using-pyinstaller-unicodedecodeerror-utf-8-codec-cant-decode-byt の方法で out = out.decode(encoding, errors='ignore') としたら実行ファイルできたけど、 Runすると 読み込みファイルを聞いてくる→計算処理→グラフ出力→計算処理結果ファイルに出力 となるはずが、読み込みファイルを聞いてこず、なにか謎処理をしてグラフは出さずに計算結果だけ出力します。 なんだこりゃ。
406 名前:デフォルトの名無しさん [2020/01/26(日) 18:02:56 ID:R5dI7Hbk.net] Anaconda信者はちゃんとサポートしてやれ 俺はあんなゴミ使わないから知らねー
407 名前:デフォルトの名無しさん [2020/01/26(日) 18:05:10 ID:htXcC3/b.net] 配列で 0番目の値を1番目の値に足す 1番目の値を2番目の値に足す というのを繰り返して 最後は n番目の値を0番目に足す こういうループを作るのってどうすればいいですか? a=[] for i ,h in enumerate(haireru): ___a.append(hairetu[i]+hairetu[1+1]) にすると最後ゼロ番目と計算できないです
408 名前:デフォルトの名無しさん [2020/01/26(日) 18:34:25.67 ID:htXcC3/b.net] すみません aは配列じゃなくてループ内ですぐに使いたいので iはゼロはじまりでお願いします for i ,h in enumerate(hairetu): ___a=(hairetu[i]+hairetu[i+1]) __b=c*a
409 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 18:39:12.37 ID:ux8Vy6ZU.net] >>404 foo = [1,2,3,4,5] [ x + y for x, y in zip(foo, foo[1:] + [0])] #=> [3, 5, 7, 9, 5] このパターンこのスレだけでもう3回目くらいだと思うんだけどなんで頻出なのか謎
410 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 18:39:24.22 ID:0XMsrEiZ.net] >>402 だから文字コード(encodingの中身)をちゃんと指定汁とさっきから言ってるだろうがよ Anacondaの詳しいことはおれもよーしらんわ >>403
411 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 18:40:00.40 ID:0XMsrEiZ.net] >>406 どこかの私大の追試レポートで出てると予想
412 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 18:43:49.29 ID:+Q3fYZeR.net] >>403 Anaconda信者とかより、コミュとれない奴の相手はエスパー・高脳でないと相手できないからな。 >読み込みファイルを聞いてくる→計算処理→グラフ出力→計算処理結果ファイルに出力 以下略 は、エスパー・高脳でないとポカーンになる感じだからな
413 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 18:50:45 ID:UvzYuhqV.net] [ x + y for x, y in zip(foo, foo[1:] + foo[0:1])] #=>[3, 5, 7, 9, 6]
414 名前:デフォルトの名無しさん [2020/01/26(日) 21:10:21.36 ID:htXcC3/b.net] >>406 >>410 ありがとうございます 配列って[:]どうしだと合体できるんですね 助かりました
415 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 21:40:26.45 ID:Y8WnpXRT.net] 401ですけど、 すいません。 コード上げてきちんと質問するべきですよね。 期限迫ってたのであせってたのですが、寝落ちして少し頭冷めました。 あきらめて現在のところまででまとめることにしました。 今の仕事終えてから、ご指摘頂いたこともう一度確認してみます。
416 名前:デフォルトの名無しさん [2020/01/26(日) 22:23:07 ID:mYb8Rqtn.net] >>404,405 n=len(hairetu) for i ,h in enumerate(hairetu): ___a=(hairetu[i]+hairetu[(i+1)%n]) __b=c*a
417 名前:デフォルトの名無しさん [2020/01/29(水) 16:41:03.56 ID:rr34JdCX.net] どこまでdefでまとめるのが良いのかアドバイスお願いします 一定の距離ごとに物体の置いてその場所や向きや大きさを決めています 距離ごとに計算すべきなのか 最初から物体の位置、向き、大きさをすべて計算して 置けばよいのでしょうか? ↓距離ごとの計算 for km in 距離: __物体の位置()に物体を置く処理 __向きの計算()に物体の向きを変える処理 __大きさ()に物体の大きさを変える処理 def 物体の位置: ___計算式 def 物体の向き: __計算式 def 大きさ(): __計算式
418 名前:デフォルトの名無しさん [2020/01/29(水) 16:4
] [ここ壊れてます]
419 名前:3:09.94 ID:rr34JdCX.net mailto: 続きです ↓まとめて計算した場合 for x in 物体の位置(): __物体を指定の位置に置く処理 for y in 物体の向き(): __物体を指定の向きに置く処理 for z in 物体の大きさ(): __物体を指定の大きさにする処理 def 物体の位置(): 位置 = [] __for km in 距離: ___位置.append() __return 位置 def 向きの計算(): 向き=[] __for km in 距離: ___向き.append() __return 向き [] [ここ壊れてます]
420 名前:デフォルトの名無しさん mailto:sage [2020/01/29(水) 17:34:31.08 ID:V4INQ4I7.net] >>414 その2つなら後者を選ぶケースは考えにくいかな 俺の読解力の問題かもしれんが、「for km in 距離:」がよく理解できん 距離はどういうイテレータ? 例えば、距離 = [1, 2, 3, 4, 5] みたいなものと考えればいいの? で各距離の値によって各物体の位置、向き、大きさが決まる?
421 名前:414 [2020/01/29(水) 20:49:58 ID:rr34JdCX.net] >>416 ありがとうございます 一個目みたいにまとめることにします for km in 距離:は 各距離から置く場所や向きや大きさを決めてます
422 名前:デフォルトの名無しさん mailto:sage [2020/01/29(水) 22:13:17.15 ID:V4INQ4I7.net] >>417 各物体の位置・向き・大きさを計算する部分と それを使ってI/O的な処理をする部分は分けておいたほうがいいと思う それぞれ違う理由で変更したくなるから混ざってると後で面倒 きれいに分かれてれば計算しつつ出来た順にI/Oするよう変更するのも簡単 ↓関数/データに分けた場合とオブジェクトにまとめた場合のイメージ https://techiedelight.com/compiler/?n7t7 https://techiedelight.com/compiler/?qDa4
423 名前:414 [2020/01/30(Thu) 01:07:15 ID:TCVWvduC.net] >>418 解説をつけてもらってありがとうございます 入力・出力もどうしようか悩んでいたので 助かります!!
424 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 17:49:07.16 ID:9oqZpWVT.net] raspbian上でwebviewを使用しています。 公式ページのサンプルをコピペしたのですが、そんなattributeは無いとエラーになります。 オブジェクトが持っているattributeの一覧を表示させることは出来ないのでしょうか。
425 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 18:46:06 ID:xpd5gNHP.net] >>420 >>1読んでから端末投げ捨てるか、レンチンしろ
426 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 20:24:40.55 ID:9oqZpWVT.net] >>421 意味不明なんだが?
427 名前:デフォルトの名無しさん [2020/01/30(Thu) 23:03:41 ID:zqJjLosR.net] あっそ じゃあしねよ
428 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 23:10:41 ID:SpgFxTsY.net] >>422 煽りが返ってくるってことはだいたい質問が悪い 公式ページのサンプルってどこの公式だよURLくらい貼れ 何を実行してるかわからないのに答えられるわけないだろ
429 名前:デフォルトの名無しさん [2020/01/30(木) 23:12:46.73 ID:TcPsF5Vj.net] >>423 キモすぎワロタ
430 名前:デフォルトの名無しさん [2020/01/30(木) 23:16:17.43 ID:TcPsF5Vj.net] オブジェクトが持っているattributeの一覧を表示させることは出来ないのでしょうか。 これに答えろってことだろ なにをぶつぶつ言ってるんだよw
431 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 23:18:48.25 ID:N/97jNZ6.net] >>420 import inspect inspect.gemembers(your_object) かな?
432 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 23:38:39 ID:N/97jNZ6.net] >>427 >inspect.gemembers(your_object) getmembers()の間違い dir() や help() でも可
433 名前:420 mailto:sage [2020/01/31(金) 11:20:07.05 ID:NXB8BBj3.net] >>428 教えていただいた方法で表示できました。ありがとうございます。
434 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 17:45:06 ID:KoDF/0eX.net] (´n`).o(429の端末が初期不良期限翌日に壊れますように)
435 名前:デフォルトの名無しさん [2020/01/31(金) 17:48:23 ID:ltLMy86h.net] 惨めだなぁ…
436 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 22:07:10 ID:WYJCj5Ov.net] hoge = "わたしの名前は{0}です" こういう変数hogeは、f-stringで値埋め込むのは無理だよね? hoge.format()するしかないよね
437 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 22:14:17.30 ID:KoDF/0eX.net] >>432 ムリジャナーイ Python! hoge = "わたしの名前は{{0}}です" hoge ↑この2行をこのままコピペ実行してみよう! (3.6.5以降なら確実におk)
438 名前:デフォルトの名無しさん [2020/01/31(金) 23:36:34 ID:BFxfTyah.net] 惨めな上に頭も悪いときたあ
439 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 00:19:43.16 ID:EnxAFhi/.net] >>432 template = lambda: f"わたしの名前は{name}です" name = "foo" f"{template()}" #=> ’わたしの名前はfooです' f-stringのlazy evaluation版はi-stringってので提案されてるらしい https://www.python.org/dev/peps/pep-0501/
440 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 07:59:04.74 ID:caubOhav.net] >>435 なるほどぉ… 出来ることは理解したけど、微妙に読みづらい感があるな ありがとうございました
441 名前:デフォルトの名無しさん [2020/02/01(土) 15:23:41 ID:p+nIpDYx.net] デバックについての質問なのですが evo=[1,5,3,8] ana=[7,6,5,4] for e,a in zip(evo,ana): ____print("aaaa") ____c=a*b ____d=e+c をコピペしてデバッグしてるのですが de=3 a=ana[de] e=evo[de] if 1=1: #for e,a in zip(evo,ana): ___print..... ___......... みたいな感じでif分つけて無理やりインデント合わせてコピペして デバッグしてますが そういうループの途中だけ動きを見る方法でもっといい方法ありませんか?
442 名前:sage [2020/02/01(土) 15:32:30 ID:aHBNrXGA.net] MATLABでいうsimulinkの代用になりそうな物ってありませんか?環境移行したいんですがこれだけどうしても見つからなくて。
443 名前:デフォルトの名無しさん [2020/02/01(土) 15:38:32 ID:fiLTG5Nb.net] evo=[1,5,3,8] ana=[7,6,5,4] for e,a in zip(evo,ana): ____if (e, a) != (8, 4): continue ____print("aaaa") ____c=a*b ____d=e+c
444 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 15:49:16 ID:iBA7Xa3w.net] >>437 デバッガ使えばいいんじゃね? https://docs.python.org/ja/3/library/pdb.html
445 名前:デフォルトの名無しさん [2020/02/01(土) 16:00:39 ID:p+nIpDYx.net] >>439 for の中にifコンテニューですか ありがとうございます >>440 そんなものあったなんて知らなかったです ありがとうございます
446 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 16:10:15 ID:CimOJomw.net] IDEとかエディタ使えない環境なの?
447 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 16:10:30 ID:EnxAFhi/.net] >>437 デバッガでconditional breakpointを設定して 変数が特定の値になった時だけbreakさせる
448 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 16:20:42 ID:EnxAFhi/.net] $ python3 ipdb_conditional_breakpoint.py 1 import ipdb; ipdb.set_trace(context=10); 2 3 b = 2 4 evo=[1,5,3,8] 5 ana=[7,6,5,4] 6 for e,a in zip(evo,ana): 7 ____print("aaaa") 8 ____c=a*b 9 ____d=e+c ipdb> break 7, e == 8 Breakpoint 1 ./ipdb_conditional_breakpoint.py:7 ipdb> c # e ==8 の場合のみ7行目で停止 ipdb> print(e, a) 8 4
449 名前:デフォルトの名無しさん [2020/02/02(日) 22:34:59 ID:nTdekf5z.net] forやdefで使う変数が多くなったときはどうしてますか? 7個ぐらいになってくると 行が長くなって何とかしたほうが良いのか 悩みます 色々ありがとうございます >>442 blenderというソフト内のpython使ってて 本格的なデバッグ機能があまりないのです その辺りは専用スレで聞いてみます
450 名前:デフォルトの名無しさん mailto:sage [2020/02/03(月) 00:07:04 ID:XimuQ1Xy.net] >>445 型にまとめられるものはまとめる 単に行が長いのが困るだけなら改行すればいいだけ あとは*args, **kwargs
451 名前:デフォルトの名無しさん [2020/02/03(月) 00:42:52 ID:M5UXjnSG.net] >>446 ありがとうございます なんでも改行可能なんですね 中身を変数にまとめれるんですね 助かります!!
452 名前:デフォルトの名無しさん mailto:sage [2020/02/03(月) 01:02:38 ID:XimuQ1Xy.net] >>447 なんでもは改行できないよ。 改行できるとこだけ。
453 名前:デフォルトの名無しさん mailto:sage [2020/02/03(月) 01:07:17.80 ID:XimuQ1Xy.net] 2.1.5. Explicit line joining 2.1.6. Implicit line joining https://docs.python.org/3/reference/lexical_analysis.html#explicit-line-joining
454 名前:デフォルトの名無しさん [2020/02/03(月) 12:17:00 ID:62FLJlST.net] >>445 おすすめはせんけど行減らすだけなら a=1 b=2 c=3 のかわりに a,b,c=1,2,3 意味のあるまとまったデータなら別クラスにして hoge=Hoge(1,2,3)
455 名前:デフォルトの名無しさん [2020/02/03(月) 12:20:59 ID:62FLJlST.net] ああそういう意味じゃないのか 制御変数の話なら適当に改行汁 あと blender は漏れも使ってるけど 癖があるので普通の python だと思わない方が良い (普通の python で慣れてる人が使う分には問題無いが) 考え無しにあれを使い続けると糞プログラマになるだけだと思う
456 名前:デフォルトの名無しさん mailto:sage [2020/02/04(火) 23:09:14 ID:0mUTKS9X.net] plt.subplot使ってグラフを2つ表示しています plt.subplot(1, 2, 1) plt.title('attention') plt.subplot(1, 2, 2) plt.title('Non attention') 2つのグラフの下中央に大きなタイトルを表示したいのですが、 なにか良い方法ありますでしょうか?
457 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 10:06:39 ID:FfddlBUI.net] def test(): def test_test(): print("test") があったときに、test_test()を呼び出すにはどうしたらいいですか?
458 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 10:25:09 ID:boA3ajbM.net] ちょっと何言ってるか分からない
459 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 10:41:21.50 ID:d60p+KZz.net] ARM64でビルドしたPythonってどっか落ちてませんか
460 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 11:33:01 ID:FfddlBUI.net] >>454 すみません、インデントが反映されていなくて分かりづらい感じになってしまいました。 ↓のように、クラス内にメソッドがあって、メソッドの中に関数がある場合 どうやって関数を外部から呼び出せばいいのでしょうか? def test(): def test_test(): print("test") 外部ではなく、内部から呼び出すには def test(): def test_test(): print("test") test_test() とすれば呼び出せますが、test()の外から呼び出す方法を知りたいです。
461 名前:デフォルトの名無しさん [2020/02/05(水) 12:38:02.65 ID:fbcJymO4.net] ローカル変数みたいなものだから外部からアクセスはできない
462 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 13:09:59 ID:+QFykdso.net] def test(str): ・def closure(): ・・print(str) ・return closure c = test("closure test"); c()
463 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 13:14:47 ID:d60p+KZz.net] class testclass: def test(self): def test_test(str): print(str) return test_test f = testclass().test() f("aaaaaaa") へぇこんな事できるんだ、何に使えるもの?
464 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 13:23:28.11 ID:FfddlBUI.net] >>458 >>459 ありがとうございます。 今までメソッドは全部selfで書いてたんですが 毎秒何百回も処理するような処理を書くとやたら遅くて 試しにメソッド内部に関数を書いたら処理速度が速くなりました。 selfでメソッドを呼び出すと遅くなるので、処理速度を早くしたいときはローカル関数として定義した方が良いみたいです。
465 名前:デフォルトの名無しさん [2020/02/05(水) 14:20:51 ID:2gxpMPkb.net] >>459 デコレータとか
466 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 15:18:52 ID:6NLusyAl.net] csvの例えば5列目が2,3,5,7,3,5,7,,,,,といろんな数字で並んでるとき、 その列の特定の数字を一括して別の数字に変換して、csv保存したいのですが、サンプルコードを頂けないでしょうか
467 名前:デフォルトの名無しさん [2020/02/05(水) 15:32:28.07 ID:HabtckGA.net] >>462 pandas 置換 🔍
468 名前:デフォルトの名無しさん [2020/02/05(水) 16:46:26 ID:2rKdW1Ec.net] >>452 figureの任意の位置にテキスト表示出来る
469 名前:デフォルトの名無しさん [2020/02/05(水) 16:49:43 ID:2rKdW1Ec.net] >>460 適当なことを言うな
470 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 17:01:00 ID:FfddlBUI.net] >>465 いや、ホントの話
471 名前:デフォルトの名無しさん [2020/02/05(水) 19:05:15 ID:2rKdW1Ec.net] うそだとは言っていない
472 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 19:29:47.90 ID:PnTZcdWz.net] 毎秒何百回程度でやたら遅くなる とか言うのは嘘と言い切ってもいいと思う
473 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 19:56:00 ID:FfddlBUI.net] >>468 いやこれもホントに 処理内容次第なので、処理負荷の低いものなら気づかないですけど timeitとか使わなくても目で見て明らかに遅いレベルまで遅くなったんです 信じてもらえなくても別にいいですけど、僕に得も何もないんで
474 名前:デフォルトの名無しさん [2020/02/05(水) 19:59:06 ID:2rKdW1Ec.net] @staticmethod
475 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 20:21:18 ID:3A2Vd31x.net] cとPHPとシェルとストアドプロシージャ位しか書けないんだけど パイソンでDLバリバリになるには何の書籍から始めるのが良い? やっぱ統計学はやんなきゃ話にならない?
476 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 20:27:09 ID:xJPwpbdq.net] >>471 統計がわからない機械学習エンジニアはただの占い師 ビジネスがわからない機械学習エンジニアはただのベンチマーク厨
477 名前:デフォルトの名無しさん [2020/02/05(水) 20:32:56 ID:V2ceD5vC.net] 敢えて喩えるほど実際から離れていく
478 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 20:45:08 ID:oCA39UVc.net] >>471 はなしにならんので勉強汁
479 名前:デフォルトの名無しさん [2020/02/05(水) 20:45:33 ID:gx9j2avt.net] 統計ってベイズ推定とか?
480 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 20:50:45 ID:Pb0OV2Dy.net] 統計とかエクセルでまとめた方が使いやすくない?
481 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 20:56:17 ID:l5EZ/l0z.net] >>472 俺、機械学習さっぱりわからんが、なんか核心をついているような言葉だが 基礎となる統計がわからない自称機械学習エンジニアはただの占い師 ターゲットのビジネスがわからない自称機械学習エンジニアはただのベンチマーク厨 が正しいんじゃないのか >>471 >cとPHPとシェルとストアドプロシージャ位しか書けないんだけど こんな自己紹介からして、お前はソフトエンジニアではなくプログラムかける土方 ってかんじだろ。 そんな奴が目指しているのは機械学習"エンジニア"ではなく 機械学習を用いる占い師 や機械学習のベンチマークができる厨 じゃないのか? なら、統計学なんてやる必要ないんじゃないか。 エンジニアになりたいなら基礎理論の統計学はしっかりやらんとだめだろうが。 どの分野でもめざせエンジニアなら基礎はしっかりやらないと駄目だろ。 例えばソフトエンジニアなら大学・大学院の情報工学科でやるようなことは 学んでないとな。 と偉そうなこと言っている俺は趣味でプログラミングなんだがな。
482 名前:デフォルトの名無しさん [2020/02/05(水) 20:58:14 ID:V2ceD5vC.net] なげえよカス?
483 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 21:10:16 ID:GCTF3gV7.net] >>469 そこまで言うなら比較用のコードでも出してくれ
484 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 21:10:55 ID:aNozFXKi.net] 長さの割に中身ゼロの長文には参るな >>477は今ではチョロっとライブラリインストールするだけで どんな素人でも始めることのできる機械学習についてまったく分からず おまけにプロでもないアマチュアなのでエンジニアの求人にも必要資格にも全く詳しくないけど 「エンジニアの資格」にだけは一家言ある変な人ってわけだ
485 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 21:20:46 ID:oCA39UVc.net] >>475 ほかにもあるから教科書買ってきて嫁 >>476 きゃつは万能ではないし、 昔はデータ数制限がきつくって、今も(高額な専用ソフトはもちろんだが)Rに劣っている
486 名前:デフォルトの名無しさん mailto:sage [2020/02/05(水) 21:27:18 ID:ZizT6Tal.net] 簡単なことなんだけどな データがあって、目的が決まっている この二点をクリアできないと機械学習をする意味がない 二点がクリアされたとしても性能がでるという保証はないが
487 名前:デフォルトの名無しさん [2020/02/06(木) 09:04:06.46 ID:GAMNd4TG.net] BeautifulSoupとかいうのを使ってGoogle画像検索結果をスクレイピングしてたけど 多分Google検索結果あたりが変わってとれなくなりました。 html.select('.rg_meta.notranslate') このあたりの仕様が多分変更になったと思うんですが うまく取得できる方法を教えて頂けたら有難いです…。よろしくお願い致します;。
488 名前:デフォルトの名無しさん [2020/02/06(木) 09:10:38.29 ID:76t6g1c3.net] 今後検索結果が変更になる度にここで聞くのかな?(笑)
489 名前:デフォルトの名無しさん [2020/02/06(木) 09:14:57.47 ID:GAMNd4TG.net] >>484 申し訳ありません… でしたら、クラスの指定と思うのですがそのあたりのコツと言いますか 間違いなく出来る方法あたりをお教頂けましたら… 現在 .rg_i というクラスはあるのですが これをもう、 .rg_i. src img href a そのた思いつくものを やれるだけ順番を前後させても、半日以上経過しても進めず 本当に苦しくなってきてしまっておりまして、すみません…。
490 名前:デフォルトの名無しさん mailto:sage [2020/02/06(木) 09:31:11.49 ID:xfRnZ+h4.net] BeautifulSoup使ったことないがググったら答え即でたw
491 名前:デフォルトの名無しさん [2020/02/06(Thu) 09:37:38 ID:GAMNd4TG.net] >>486 すみません…。自分は前後を変えたり何度やっても 空といいますか画像が取得できないので、 お教頂けたら、ありがたいです…。
492 名前:デフォルトの名無しさん [2020/02/06(Thu) 10:35:45 ID:GAMNd4TG.net] >>486 すみませんです…どうやって検索したらよいかお教え頂けましたら…
493 名前:デフォルトの名無しさん [2020/02/06(Thu) 11:07:22 ID:d7NhcEcy.net] 教えてやるからどこかにパースしてるHTMLを全部置け そしてどの要素が欲しいかHTMLの中に <!--この要素が欲しい--> と書け
494 名前:デフォルトの名無しさん mailto:sage [2020/02/06(Thu) 11:20:21 ID:xfRnZ+h4.net] JavaScriptで動的になったからSelenium使えって書いてた
495 名前:デフォルトの名無しさん [2020/02/06(Thu) 11:27:31 ID:GAMNd4TG.net] 有難うございます。 すみません、keywordは山として以下のようにして取得を目指しており それで<!-- --> でほしいのですが 以下の表記方法ではだめでしょうか。 urlKeyword = parse.quote(keyword) url = 'https://www.google.com/search?hl=jp&q=' + urlKeyword + '&btnG=Google+Search&tbs=0&safe=off&tbm=isch' headers = {"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/10.0",} request = req.Request(url=url, headers=headers) page = req.urlopen(request) html = page.read().decode('utf-8') html = bs4.BeautifulSoup(html, "html.parser") elems = html.select('.rg_meta.notranslate') この最後の.rg_meta.notranslate のあたりで目的の画像を一つ一つ取り出せなくなっていると分析しています。
496 名前:デフォルトの名無しさん [2020/02/06(Thu) 11:28:23 ID:GAMNd4TG.net] 一昨日くらいまでは取れておりました。 現在も、 ではグーグル画像検索そのものが取れてないとか何かブロックされているのか?と言うと elems= の前に 例えば print(html) とするとGoogle画像検索結果の画面全体は取れているのです。 しかしそれは全体像なので、個々の1枚1枚を取得してphpmyadminに格納したり、とかそれが狙いであるので elems = のところでつまずいてはやはりまずい具合です。 そして目的の画像検索結果、 例えば 山で検索して <!-- <img class="rg_i Q4LuWd tx8vtf" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-iid="0" data-iurl="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcRFWZJ-G8GOvPEcPPJZqy_IqLTMokKOyW_VAdDON2S_9V6cnOQZ" jsname="Q4LuWd" alt="「山」の画像検索結果" /> --> ↑この要素が欲しいものです ここのimgのclassにrg_i というものがありこれはヒントの一つ?かと想像したりするのですが data-iurl= のこれが取得したい画像のURLだと思います。 URLで hrefでなく こういう書式で表示されているのだな、と思いますが ここを取得したいと思っております。 すみませんが;宜しくお願い致します;
497 名前:デフォルトの名無しさん [2020/02/06(Thu) 11:42:27 ID:GAMNd4TG.net] >>490 左様でございますか。一応使ったことはありますが ちゃんと使いこなせるのかどうか…うーむ…
498 名前:デフォルトの名無しさん mailto:sage [2020/02/06(Thu) 12:10:59 ID:xAE/eJ0Q.net] 改行を含めてfindする方法ってないですか?
499 名前:デフォルトの名無しさん mailto:sage [2020/02/06(木) 12:25:05.18 ID:PruBe/51.net] >>492 他に使ってなさそうで欲しい属性分かってるんだったら elems = html.select('img[data-iurl]') これでよくね あとfirefox10でも47でもないいい加減なUAはやめとけ
500 名前:デフォルトの名無しさん mailto:sage [2020/02/06(Thu) 12:35:55 ID:/hIhK6yv.net] 要素を非同期処理で読み込むから、要素が存在しないとか、 サイトの構成が変わったとか、 XPath/CSS セレクターが間違っているとか、 相手がアクセスをブロックしてくるとか スクレイピングは、相手のサイトを分析するのが難しいのと、 適切に限定される、セレクターを作るのが難しい API が公開されているなら、APIを使った方がよい 漏れは、Ruby で、Selenium WebDriver, Nokogiri などで、 Chrome, Edge などのブラウザーを自動操作して、スクレイピングするけど ここに書いておいた 【VBScript】WSHについて話し合うスレ【JScript】 https://mevius.5ch.net/test/read.cgi/tech/1578522041/24-27
501 名前:デフォルトの名無しさん [2020/02/06(Thu) 12:41:43 ID:zAec24ND.net] >>494 改行=\n または \r\n
502 名前:496 mailto:sage [2020/02/06(Thu) 12:45:42 ID:/hIhK6yv.net] >>492 Base64 は、HTML でもよく使う Base64の文字列で、PNG/JPEG画像を、HTMLファイルに直接埋め込める <img src="data:image/png;base64,xxxxx..." />
503 名前:496 mailto:sage [2020/02/06(木) 12:59:31.10 ID:/hIhK6yv.net] >>492 適切に、1つに限定される、セレクターを作るのが難しい! 以下で、特定できないのか? class="rg_i Q4LuWd tx8vtf" data-iid="0" jsname="Q4LuWd" それか、img 要素の外側で、id など、限定される要素を探すか。 基本的には、idを探さないと特定できない idを振っていない場合は、そのサイト特有のルールを発見しないといけない! 例えば、5ch のスレ内では、id が無いから、 data-id に投稿番号が入っているので、それを使うとか このように、相手のサイトを分析するのが難しい!
504 名前:デフォルトの名無しさん [2020/02/06(Thu) 13:30:53 ID:GAMNd4TG.net] >>495 firefoxのUA、修正します。すみませんでした; そして、以下でやってみましたが elems = html.select('img[data-iurl]') なぜか出来ずに、うむむ…と申し訳ありません、さらに研究してみますが…
505 名前:496 mailto:sage [2020/02/06(木) 14:30:31.06 ID:/hIhK6yv.net] >>496 にも書いたけど、 要素をAjax で非同期処理に読み込むから、またimg 要素が存在しないとか? Ruby で、Selenium WebDriver を使えば、要素が出現するまで、自動的にwait する。 await みたいに、非同期処理を同期的に書ける
506 名前:496 mailto:sage [2020/02/06(木) 14:34:29.34 ID:/hIhK6yv.net] もっと簡単に、10〜20 秒ぐらい、sleep したら、img 要素が出現しないのか?
507 名前:デフォルトの名無しさん [2020/02/06(Thu) 16:58:26 ID:GAMNd4TG.net] 一応成功致しました! >>500 結果としてelems = html.select('img[data-iurl]') で、このelemsとしては取れていたようです! ここは元々elems = html.select('.rg_meta.notranslate') であったと最初に出しましたが このelemsを ↓(適当〜8行くらい) ------------------ for ele in elems: eledict = dict() ele = ele.contents[0].replace('"','').split(',') for e in ele: num = e.find(':') eledict[e[0:num]] = e[num+1:] imageURL = eledict['ou']・・・・・ -------------- というような感じで使っていたのですが img[data-iurl]の今回? 目的のurl自体はスムーズに取れていたようで for ele in elems: imageURL = ele.get('data-iurl') 今回elemsのeleを ele.get('data-iurl') で、1枚づつ取ることができたようでした。 有難うございました!
508 名前:デフォルトの名無しさん [2020/02/06(Thu) 20:03:36 ID:bDkEju7l.net] asyncioってわかる人いますか?
509 名前:デフォルトの名無しさん [2020/02/07(金) 07:27:17 ID:cGGfIEk4.net] 知ってるよ(どの程度を期待してるのか知らないけどな)
510 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 07:30:51.90 ID:u54KGCZV.net] thread threading multiprocessing concurrent.futures asyncio この辺の違いがよく分からない
511 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 08:43:13.34 ID:sQ9sQIGh.net] >>506 それらはOSやCPUを自力で作れる神クラスの技術者でないと理解できないし、使いこなせないと思う 一般人である自分もドキュメントを読んでみたが、チンプンカンプン(死語)だった さっさと忘れてPythonを楽しみましょう
512 名前:デフォルトの名無しさん [2020/02/08(土) 10:13:41 ID:gJJFnkpu.net] GUIやるなら、threadかasyncioのどちらかは必須。
513 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 10:16:19 ID:I0dCURwg.net] プロセスとスレッドの違いは知っておいて損はない
514 名前:デフォルトの名無しさん [2020/02/08(土) 10:19:32 ID:0YppiA+B.net] GUIやるならC#+VisualStudioが一番
515 名前:デフォルトの名無しさん [2020/02/08(土) 10:26:34 ID:iJq/sxyx.net] Macにも持っていけるの? >>510
516 名前:デフォルトの名無しさん [2020/02/08(土) 10:32:22 ID:0YppiA+B.net] Mac持ってないからわからん 俺は自分用ツールしか作ったことない
517 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 10:37:32 ID:VCX1KXbd.net] なんで情弱しか使わないMacに対応しなきゃいけないんですか!(半ギレ
518 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 11:10:45 ID:E/mrDwXz.net] Windowsは情強だけ使っていればよろしい
519 名前:デフォルトの名無しさん [2020/02/08(土) 11:12:38 ID:K7+uW5ie.net] シェア一割のくせに態度だけ見てると九割くらいありそうだよなw
520 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 12:15:26 ID:E/mrDwXz.net] Mac以外の残り9割の殆どがゴミ
521 名前:デフォルトの名無しさん [2020/02/08(土) 12:37:42 ID:W0we+YOR.net] 売れない芸人が一丁前に何か言ってるわ
522 名前:デフォルトの名無しさん [2020/02/08(土) 13:20:07.76 ID:iJq/sxyx.net] Windows/Mac/iOS/androidに対応したGUIを作ることができます そう、pythonならね
523 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 13:33:43.29 ID:9Nn74D/R.net] React Native + Expo アシアルのMonaca(Cordova/PhoneGap) + Onsen UI もある
524 名前:デフォルトの名無しさん [2020/02/08(土) 13:47:48 ID:YnTe+96U.net] 普通にWindowsで作ったC#はLinuxでもMacでもMonoで動くぞ
525 名前:デフォルトの名無しさん [2020/02/08(土) 13:48:05 ID:YnTe+96U.net] GUI含めて。
526 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 14:36:46.22 ID:FKWW677q.net] >>520 .netcoreだよね?
527 名前:デフォルトの名無しさん [2020/02/08(土) 14:46:34 ID:KXr/QwX0.net] Monoって書いてるだろ
528 名前:519 mailto:sage [2020/02/08(土) 15:35:46.13 ID:9Nn74D/R.net] C# では、Microsoft が、 >>519 や、Unity などに対抗するために、Xamarin/Mono を買収した
529 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 16:54:09 ID:DP9vcaNb.net] >>515 ワロタ!(・∀・)
530 名前:デフォルトの名無しさん [2020/02/08(土) 17:09:56 ID:Gwq8LIiY.net] Ruby禁止だけじゃなくMono/C#も禁止するか
531 名前:デフォルトの名無しさん [2020/02/08(土) 17:19:51 ID:szXf7gpM.net] qtって汚いよな
532 名前:デフォルトの名無しさん [2020/02/08(土) 17:28:08 ID:uuv8oSvR.net] RADツールもないもんな 知らんけど
533 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 17:29:00 ID:0wE1WgKD.net] >>515 開発者のMacのシェアは約30%、Windowsは約45%、Linuxが25% Windowsはシェア半分もない
534 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 17:46:35.97 ID:Ewdvkn0R.net] 世代交代しか訴えられないんじゃぁ、ぶてぃじぇっじもたいした候補じゃねーなぁ
535 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 17:51:48.56 ID:lxxY/dO6.net] やっぱ一番かっこいいのはkivy?
536 名前:デフォルトの名無しさん [2020/02/08(土) 20:33:49.47 ID:Y+Ds/PpP.net] >>506 、>>507 良くわかるけど Pythonやるにはあまり関係ないよ?
537 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 21:53:48 ID:tg7wd02h.net] >>506 ソフトエンジニアならわからないと馬鹿にされるんだろうが でも、この底辺スレに来る連中はエンジニアではなく低レベルのサンデープログラマが ほとんどで分からない奴が大多数だろ(もちろん俺もわからん)
538 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 22:16:28 ID:DP9vcaNb.net] >>506 プロセス(OSから見えてる単位)→スッドレ(プロセスの下にわさわさ増殖可能)→コア(CPUの部品) 1プロセス=1CPU プロセスとプロセスの間の情報やり取りはゲキムズ&低速。 スッドレとスッドレの間はやり取りOKだけど、 メモリを奪い合わったり書き換えっこになったりしないように要注意。 あと、旧来は1スッドレ1コアが普通だったけど、 今は2スッドレ1コアが普通になりつつあり、 多スッドレ→1コアする場合はメモリ領域の扱いに注意が必要。 (どのスッドレも同時にみんな手をつないでゴール!を強要されない計算の場合は) 1つのプロセスからいっぱいスッドレわかせて計算するより、 いっぱいプロセス湧かせて順次まとめあげる方が、高速&効率が良いはずである。 だが、 多プロセス化するとメモリはもっさり消費される傾向なので、 ほんとのところは、 やりたいことが同期を強く求めてるかどうかと、マシンスペックによるのである。
539 名前:デフォルトの名無しさん [2020/02/08(土) 22:17:55 ID:0YppiA+B.net] 突っ込まないぞ
540 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 22:18:40 ID:0wE1WgKD.net] スッドレスッドレ (わさわさ)
541 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 22:31:02 ID:DP9vcaNb.net] (つづき) さきにあげた並行処理をPythonにさせるとき使うライブラリが506の質問であがってるさいしょの3ツ。 threading : スッドレをいっぱいわかせることができる(マルチスッドレ) multiprocessing : プロセスを複数作れる ケツ2つはやはり並行処理なのだが、 「ノンブロッキング処理」とゆうのをさせるためのもので、 投入されたPythonのバージョンが違う(concurrent.futuresの方が古い)のと、 とっつきやすさが違う(concurrent.futuresの方が人類にはとっつきやすい)。 これらを使うメリットがあるのは下の3条件を満たしてるとき。特に3についてはよく考えろ。 1.過程で、ボトルネックなクソ重い処理がある 2.それが何度もやってくる 3.ボトルネックの通過完了時刻が全部バラバラになってもおk(追い越しOK)で、 最終的にまとまればいい。 もっと詳しくは ggってHitした↓でもよんでくれ。 ttps://qiita.com/icoxfog417/items/07cbf5110ca82629aca0
542 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 22:31:57 ID:DP9vcaNb.net] ココハ ゴジャースナ(・∀・)スッドレ ダヨ!!!
543 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 01:28:40 ID:JzPk4jqf.net] >>534 ハードウェアマルチスレッディングとソフトウェアによる通常のマルチスレッドをごちゃまぜに理解してるようだな。 勉強してからもう一度書き込むように。
544 名前:デフォルトの名無しさん [2020/02/09(日) 07:52:13.11 ID:CdDouLVX.net] >>> (10).to_bytes(2,'big') b'\x00\n' 期待している結果となりません。 b'\x00\x0a' にならないのは何故?
545 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 08:44:46 ID:vHnIKgeN.net] >>540 ドキュメントのbyteオブジェクト関連の項目を読むと書いてあるが 文字として見せた方がわかりやすいと思われるバイト値は 16進ではなく文字で表示する方針なのだそうだ だから値としては正しく格納されているので気にしなくてよろしい
546 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 09:24:21 ID:CdDouLVX.net] >>541 納得しました 誰得の方針なのか、モヤモヤは残りましたが…
547 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 09:30:32 ID:vHnIKgeN.net] >>542 ところで、この(値).to_bytes()っていう書き方は初見なんだが いつからある機能なんだろうか(自分の知識はver.3.3で止まっている) JavaっぽくてPythonらしくないと感じるのだが
548 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 09:51:55.28 ID:CdDouLVX.net] >>543 int.to_bytes(length, byteorder, *, signed=False) New in version 3.2. だそうです
549 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 10:38:09 ID:hMxVM0F3.net] flaskでsms認証つけたいんですけど何がおすすめでしょうか? アカウントにユーザーのメルアド、氏名、住所もつけておきたいです。
550 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 10:56:43 ID:vHnIKgeN.net] >>544 サンクス 一つ賢くなったよ
551 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 11:03:20 ID:uG+JJfG5.net] 知識が増えただけで賢くはなって無いんじゃないの
552 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 11:07:52 ID:vHnIKgeN.net] >>547 人の会話に茶々入れるんじゃないよ 即NGだ
553 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 11:26:42 ID:uG+JJfG5.net] 会話に茶々入れたくなければ公開掲示板なんかで聞かなきゃいいじゃん つまりいくらでも茶々入れていいのが2ch5chでしょ その基本を無視して俺ルールをいきなり押し付けられても困る で、賢さってのは知識量のことなワケ?
554 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 11:27:51 ID:uG+JJfG5.net] だって「超初心者」が知識と賢さを混同してるらしいからね ほっとけないね
555 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 11:32:14 ID:EbhgtQ51.net] >>539 >ハードウェアマルチスレッディングとソフトウェアによる通常のマルチスレッドをごちゃまぜに理解 そのようだ… ありがとう そしてありがとう Pythonのライブラリでやれるのは ソフトウェア的マルチスッドレだな
556 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 11:34:06 ID:EbhgtQ51.net] というわけで >>506よ、 536のことはうっちゃっておいて >>537の先頭2行も脳内から消して、詳しくはケツに貼ったQiitaの人の記事を読んでクレクレ
557 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 12:11:02.39 ID:vWZlCr2H.net] list = [1,2,3,4,5,6,7,8,9,10] というリストがあった場合 for i in list: とするよりも for i in set(list): とする方が高速ですか? それとも、setに変更しても元々がリストなので早くならないですか?
558 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 12:16:47 ID:uG+JJfG5.net] 一般的には想定される普通の使い方をする時に一番早くなるように言語を作る それに間に一枚噛んでると遅くなる、と思うのが人間 あとは長さ10万くらいのリストを数千回試して時間を計る
559 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 12:26:35 ID:mfrF5HLR.net] >>553 試すといいよ。ってのが正しいと思うけど、あえてマニュアルから。 https://docs.python.org/ja/3/reference/compound_stmts.html#the-for-statement > 式リストは一度だけ評価されます。 ってあるから、ほぼ変わらんのでは?
560 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 12:44:06 ID:zgc2MTJg.net] list->setのコスト分だけ遅いだろ
561 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 12:53:21 ID:2kp9QhUs.net] 論より証拠 昔の人は良いことを言った
562 名前:デフォルトの名無しさん [2020/02/09(日) 13:38:53 ID:haksjRuS.net] お前ら木偶の坊なんだから俺の疑問に答えて少しは世の中の役に立てよ という意識があのような質問を生むのだ
563 名前:デフォルトの名無しさん [2020/02/09(日) 14:44:11 ID:KmTvxb40.net] >>555 sum(for x in range(10)) sum([for x in range(10)]) これの違い。
564 名前:デフォルトの名無しさん [2020/02/09(日) 14:49:31 ID:KmTvxb40.net] sum(x for x in range(10)) sum([x for x in range(10)]) だった。
565 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 14:56:02.52 ID:OACAfflF.net] >>560 どう違うの? 下は内包表記?
566 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 15:22:07.62 ID:O6Vx4x7H.net] >>553 listをsetに変換するコストを無視してもsetをイテレートするほうが遅いよ hash tableをイテレートする時に必要な処理とlistをイテレートする時に必要な処理の違い といってもその差は微々たるものだから その差が重要なプログラムを書こうとしてるなら言語を変えたほうがいいかも
567 名前:デフォルトの名無しさん [2020/02/09(日) 15:35:28.11 ID:vWZlCr2H.net] >>554-562 ありがとうございます あまり大きくは変わらないのですね 参考にします
568 名前:デフォルトの名無しさん [2020/02/09(日) 15:45:54.02 ID:wTv3WydA.net] >>561 上: generator (リストは造らない) 下: 内包表記 (リストが造られる)
569 名前:デフォルトの名無しさん [2020/02/09(日) 15:54:02.80 ID:KmTvxb40.net] for i in set(list): listのイテレートとsetのイテレートが発生するのと、一旦setのためのメモリが確保されるから、 setの重複排除機能が必要でない限り、100%無駄だと断言できる。
570 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 16:12:45 ID:O6Vx4x7H.net] >>563 複数のやり方でどれが速いのか気になったら%timeitしよう
571 名前:デフォルトの名無しさん [2020/02/09(日) 16:14:09 ID:wTv3WydA.net] むしろforの中身を見直すか numpyとか使うべき ループはクソ遅い
572 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 21:20:07.67 ID:U6aZQoQk.net] 質問者はリストにin演算子使うと遅いって話と混同してるんじゃないかと そっちは遅くて当たり前なんだが、forでsetより遅くなる道理はないと思うが
573 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 22:35:43 ID:u7Xk0tZr.net] >>568 >そっちは遅くて当たり前なんだが その当たり前を教えてくれ
574 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 23:21:11 ID:U6aZQoQk.net] >>569 setはハッシュ値で格納位置を一発で割り出す リストは要素をすべて舐め回して探す
575 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 00:00:12 ID:NX1L632S.net] >>568 リストをfor文を回してsetより速くする方法が他にあるってことですか?
576 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 00:07:40 ID:fRmEVRio.net] >>570 リストって、毎回全要素をリニアサーチしているって事ですか?
577 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 01:46:01.93 ID:y8VN1gM7.net] >>571 >>568 で >forでsetより遅くなる道理はないと思うが と言っている。で、これから >リストをfor文を回してsetより速くする方法が他にあるってことですか? がなぜ出てくるんだ? >>568 の前の部分はfor~inについてではなく、 list/setの要素にこれ(x)ある?を調べるin演算(x in list/set)についての ことを言っている。
578 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 07:54:06.49 ID:NX1L632S.net] >>573 なるほど、ありがとうございます
579 名前:デフォルトの名無しさん [2020/02/10(月) 09:51:35 ID:5lt6zYiz.net] >>572 570はサーチとイテレートをごっちゃにしてるわな。 listは動的配列だから、オブジェクトへのポインタのポインタをインクリメントしてるだけだわな。 サーチはその後の話だろ。
580 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 09:58:28 ID:8uBZGbTk.net] >>575 いや君がごっちゃにしてるだけでイテレートの話なんてしてないだろ 570はin演算子使った時にどうやって探すかの話だろ
581 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 16:12:22 ID:fRmEVRio.net] 色々脱線はしているのかもしれないが、最初の質問は >>553 で リストを処理するのに、そのままよりも、 setを噛ませた方が速くなるかどうか、ということであって リストの内容は全件処理しているようだし
582 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:20:59 ID:8uBZGbTk.net] なに意味不明なことうだうだ言ってんの
583 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:29:20 ID:fRmEVRio.net] 568 名前:デフォルトの名無しさん[sage] 投稿日:2020/02/09(日) 21:20:07.67 ID:U6aZQoQk 質問者はリストにin演算子使うと遅いって話と混同してるんじゃないかと そっちは遅くて当たり前なんだが、forでsetより遅くなる道理はないと思うが 570 名前:デフォルトの名無しさん[sage] 投稿日:2020/02/09(日) 23:21:11.41 ID:U6aZQoQk >>569 setはハッシュ値で格納位置を一発で割り出す リストは要素をすべて舐め回して探す この辺の説明を ID:U6aZQoQk がちゃんとすれば良いんだと思う
584 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:38:58 ID:8uBZGbTk.net] 逆になにがわからないのかわからないんだが
585 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:42:34 ID:fRmEVRio.net] 分かるまで、みんなの話を聞いていたら
586 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:44:23 ID:fRmEVRio.net] 553 名前:デフォルトの名無しさん[sage] 投稿日:2020/02/09(日) 12:11:02.39 ID:vWZlCr2H list = [1,2,3,4,5,6,7,8,9,10] というリストがあった場合 for i in list: とするよりも for i in set(list): とする方が高速ですか? それとも、setに変更しても元々がリストなので早くならないですか? これが最初の質問
587 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:47:57 ID:fRmEVRio.net] この質問で想定される回答は for i in set(list):の方が高速 どちらも変わらない set 使わない方が高速 この三通りじゃないかと思うが
588 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:55:55 ID:cKG4UD69.net] >>580 俺も何がわからないのかわからん in演算子が何かわかってないから >>568や>>570に書いてることが理解できないんじゃないかな と想像してみる
589 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:59:57 ID:cKG4UD69.net] >>583 それはもう回答が出てるでしょ んで普通に考えたらsetにしたほうがが速いという考えにはならないのに setのほうが高速かもしれないと思ってしまってるのは for loopのfor x in fooの`in`と contains(foo, x)を演算子にしたin演算子の`in`とを勘違いしてるんじゃない? ってコメントが>>568
590 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 18:20:13.36 ID:fRmEVRio.net] 回答までにしか興味は無いです 後は、妄想も含めた雑談なわけだし
591 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 18:21:49.94 ID:8uBZGbTk.net] >>584 そういうことかね >>585 前にQiitaでリストにin演算子使うと遅いっていう記事がバズってたからね そういうの見て質問者が漠然とリストはsetより遅いって思い込んでしまった可能性はあるね
592 名前:デフォルトの名無しさん [2020/02/10(月) 19:06:26.64 ID:NX1L632S.net] >>584 質問者ですがそうです setのforループの方が早いのかと思い込んでいました >>574 で自分の勘違いに気づいたところです
593 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 19:34:40.34 ID:TAH0RZ5f.net] >>583 ケースバイケース っていう可能性もあるかと
594 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 19:44:21.91 ID:fRmEVRio.net] >>589 ハッシュキーが衝突したレコードが大量にあるとか、かな?
595 名前:デフォルトの名無しさん [2020/02/11(火) 10:10:26.19 ID:QVEssOx9.net] ちっちゃい質問かもなんですが かっこ閉じ際の位置ってpython的にはどこが良いですか? 例えば def kakko(a,b): ____a+b というdefを使うときに行の最後にかっこをつけるか kakko( ____1+2+3+4, ____5+4+6+7) 改行してかっこの中のインデントに合わせるか kakko( ____1+2+3+4, ____5+4+6+7 ___) kakkoのインデントに合わせるのか kakko( ____1+2+3+4, ____5+4+6+7 )
596 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 10:24:42.95 ID:iLli/Di+.net] >>591 pythonの思想は1行で処理だから改行すな
597 名前:デフォルトの名無しさん [2020/02/11(火) 10:30:13.65 ID:KtXysiBK.net] kakko( ____1+2+3+4, ____5+4+6+7) または kakko(1+2+3+4, ____5+4+6+7)
598 名前:591 [2020/02/11(火) 11:02:07 ID:QVEssOx9.net] >>592 ですよね・・・ そうなると式が長くなる時は かっこの前に分かり易い名前をつけて さきに計算しておいたほうが良いですか? kakko_a = 1+2+3+4 kakko_b = 5+4+6+7 kakko(kakko_a,kakko_b) >>593 ありがとうございます かっこ閉じは改行で分離しない方が良いんですね
599 名前:デフォルトの名無しさん [2020/02/11(火) 11:07:02 ID:BVyNsmkt.net] 実運用としてはblackとかyapfにフォーマットさせてそれに従っとく
600 名前:591 [2020/02/11(火) 11:51:51 ID:QVEssOx9.net] >>595 これ使えば悩まなくて済みそうです。 ありがとうございます!!
601 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 12:22:58.77 ID:Nq1ZGiCx.net] pythonの流儀・作法に従うのが一番いい もしもどうしてもやりたいなら他のメジャーな流儀を真似る WINAPI とは何か? - C/C++ 入門 https://c.keicode.com/windows/windows-programming-11.php int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) {
602 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 13:52:28.79 ID:YRn6ep9S.net] >>597 >pythonの流儀・作法に従うのが一番いい そのpythonの流儀・作法を聞いてるのになぜそれに答えずC++のそれもWIN32API持ってくんの?
603 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 14:25:45.03 ID:L4MHQKAq.net] Pythonの初級を受けた人いますか? どのような勉強されたか教えてください m(__)m
604 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 15:36:18 ID:lGXjI99c.net] 継承クラスのinitの引数が増える場合はどうしたらいいですか? class person(): def __init__(self, age): this.age = age class student(person): def__init__(self, age, number) this.age = age this.number = number こんな感じにしたいのですが。
605 名前:デフォルトの名無しさん [2020/02/11(火) 15:56:30.44 ID:BVyNsmkt.net] >>599 ぱいそんのしかくしけんはひとつだけじゃないんだ きみがいっているのはどのしけんのしょきゅうかな?
606 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 15:58:27.34 ID:RWYSN8yj.net] >>599 何にも勉強せずに一度受けてみるとよい 試験の雰囲気と問題の内容と自分の実力がわかる それを踏まえて備えれば二回目は受かる
607 名前:デフォルトの名無しさん [2020/02/11(火) 15:59:40.15 ID:BVyNsmkt.net] >>600 Student側でsuper().__init__(age)するだけじゃねーの ああ、基底クラスの__init__を呼ぶ方法が分からんのかな?
608 名前:デフォルトの名無しさん [2020/02/11(火) 16:01:24.03 ID:BVyNsmkt.net] それにしても、金になると思うとすぐ資格ビジネス屋が群がりやがって
609 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 16:52:49.23 ID:RUM4eNEQ.net] a1 = 0, a2 = 0, a3・・・・が続く for i in range(1, 2): i = i +1 a[i] = 5 a+数字に値を入れたいのですがa[i]のような使い方はできないのでしょうか
610 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 17:57:52 ID:iLli/Di+.net] pythonってインターフェースって概念はあるんだっけ?
611 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 17:58:18 ID:L4MHQKAq.net] >>601 有難うございます。 Python3エンジニア認定基礎試験です
612 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 18:15:03 ID:noKKsZcY.net] >>605 (インデント崩壊してるからか?) 質問がイミフ + 投稿前に1見ろ
613 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 18:35:43.13 ID:AyaWNvDt.net] これはスゴイ やりたい事はなんとなく分かるが、 何をやりたいのかが分からない
614 名前:デフォルトの名無しさん [2020/02/11(火) 18:50:33.09 ID:HQEYSI3a.net] >>605 a1 = 0, a2 = 0 for i in range(1, 2): i = i +1 exec(' "a"+str(i) + "= 5" ')
615 名前:デフォルトの名無しさん [2020/02/11(火) 19:40:05.81 ID:X3jD9Kja.net] これは高確率でやり方よくないパターン
616 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 19:47:41.29 ID:a/euzlWM.net] 初心者のうちはそういうことやりたくなるのわからなくもないけど素直にlist使いましょう
617 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 21:21:11 ID:v/oRLdRM.net] >>605 for i in range(1, 2): ____i = i +1 ____x = “a%s” % i # xには”a2”という文字列が入る ____locals()[x] = 5 静的言語のリフレクションみたいなのは globals/locals, getattr/setattr/delattr 文字列をコードとして評価したいならeval 実行したいならexec
618 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 22:13:11.46 ID:ZhnXkLvm.net] >>605 は a1 = 0, a2 = 0, a3・・・・が続く があり、それらに、オブジェクトaを通して a[1]でa1に,a[2]でa2に....([]を使って)アクセスしたいってことだろ。 (a[1]のaはaでなくても、名前みたいなものだから好きなのにしていい。 aシリーズにアクセスするらわかりやすくaにしている) こんなことを実現するクラスの作り方を教えて?という質問になるよな。 と、言っても俺は低脳で出来ない。 >>612 俺もそれで間に合うならそれが良いがと思う
619 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 22:48:00 ID:v/oRLdRM.net] >>614 絶対違うと思うがそういう解釈ができなくもないなw subscriptingは__getitem__, __setitem__を使えば可能 https://ideone.com/7WR8yJ
620 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 22:48:39 ID:6c6RIlRn.net] あー for i in range(1000): __try: ____a[i]=5 __except 的な?
621 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 23:02:14 ID:RUM4eNEQ.net] 605です レスありがとうございました >>610さんのアドバイスで私のやりたかったことが出来ました。ありがとうございます。 execを初めて知りましたが、初心者的には便利な使い方ができそうですね hoge = "aaaa" exec('hoge = "ほげ"') print(hoge) >>616 それです
622 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 02:21:47.75 ID:8gaFy0VD.net] dtreevizで決定木を可視化したのですが棒グラフの下の閾値が謎の数値と被ってとても見にくい状態です 閾値だけ表示させることはできますか?
623 名前:デフォルトの名無しさん [2020/02/12(水) 08:34:59.50 ID:MxyBlFwL.net] a1=0,0 はタプルになるから a1=0,a2=0 もそうかと思ったらこっちはエラーだな
624 名前:コーディングも未経験 mailto:sage [2020/02/12(水) 09:31:44.36 ID:CHK50RDvo] Python 2.7.17 のインストーラを起動したら、デフォルトのインストール先が C:\Python 2.7 になっているんだけれど、C 以外にすると何か不都合がありま すか。(CはSSDで容量が小さい、second bayのHDDを使いたい)
625 名前:デフォルトの名無しさん [2020/02/12(水) 15:55:30.07 ID:a1w2Xqz0.net] >>617 こいつとは仕事したくない うちの会社にいたら首切る
626 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 17:24:47 ID:LrVjYqM5.net] 別にええやん 学生かもしれないしプログラマーじゃない可能性も高いし 簡易的なツール作るだけならそんな高いレベル求められないし execを覚えたというだけでも成長したのにそんな言い草あるか?
627 名前:デフォルトの名無しさん [2020/02/12(水) 17:34:29 ID:QgfOdoDN.net] >>616 どういうこと?
628 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 18:24:00.47 ID:h0cbN6Js.net] >>621 初心者が間違った判断をしたならそれを指摘してやればいいだろう。 おれはお前のような奴の方が一緒に仕事したくないよw
629 名前:デフォルトの名無しさん [2020/02/12(水) 22:17:48.25 ID:ohhYjydu.net] 環境はMacです、ワケあってpython2を使おうとしてpip install -U python2を行ったら Requirement already up-to-date: python2 in /usr/local/Cellar/pypy3/7.3.0/libexec/site-packages (1.2) と表示され、versionが1.2でしかもpython2 -Vとしてもコマンドが見つからないと 言われるのでどういうことかと首をかしげpip listを行うと $pip list Package Version ---------- ------- appdirs 1.4.3 cffi 1.13.2 greenlet 0.4.13 packaging 20.0 pip 20.0.2 pyparsing 2.4.6 python2 1.2 readline 6.2.4.1 setuptools 44.0.0 six 1.13.0 と表示され、numpyなどが入ってないので何かおかしいと思い、 numpy.__version__、numpy.__file__を確認するとそれぞれ '1.17.3'、'/usr/local/lib/python3.7/site-packages/numpy/__init__.py' まあ正直どうなってるかよく分からないのでとりあえずpip install -U numpyを行うと Successfully installed numpy-1.18.1 しかし上記のように__version__を確認しても、'1.17.3'のままでした。 pipのlistには1.18.1でしっかり入ってます。 これって何が起きてるんでしょうか?Homebrewでinstall
630 名前:した可能性も考えたのですが brew listを行ってもnumpyもscipyも見つからずpypy、pypy3、pythonがあるくらいです pipのversionは pip 20.0.2 from /usr/local/Cellar/pypy3/7.3.0/libexec/site-packages/pip (python 3.6) です。思い当たる原因としては一回brewでpypy3を消したらpip効かなくなったことですが、 消す前にpipでinstallしたものは今でも普通にimportが効きます。 pipに表示されない原因に思い当たる方がいたらどうかよろしくお願いします。 [] [ここ壊れてます]
631 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 22:41:09.40 ID:mtSj8YKm.net] >>625 パス通す順番はジッサイトテモダイジ MacにしみこんでいるPython(2系)の存在を忘れてはいけない。
632 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 23:00:22.35 ID:bYqOq5KM.net] 605です。ご迷惑をおかけして申し訳ありません 最初に書いた例が私自身もよくわかっていないまま書いたのが駄目でした 皆さまのアドバイスでコードが完成しました https://pastebin.com/y2QT7m3E 色んな方法があると思うのですが、教えて頂いたexecとevalを使いました コード中のa_no_list[0] にはforで作ったa1を入れて、そのa1にランダム関数の数字を代入しました 手動でa1,a2を作って値を入れたりというのは出来たのですが、forで任意の回数繰り返して自動でa1,a2作れないかとこちらに相談した次第です forでprint(a[i])もa(i)もできるようになって、自動でリストの中の要素の中の要素・・・・を表示したり代入できるようになってるはずだと思います ちなみにこれは初心者参考書を1/4まで読み終わった復習として作りました
633 名前:デフォルトの名無しさん [2020/02/12(水) 23:30:50 ID:ohhYjydu.net] >>626 ありがとうございます、それ聞いて試しに aliasのpython="python3" を外したら動きました、linuxだとpython2で認識するんですけど macだと効かないんですね……悩んでた問題が一つ解決しました、本当にありがとうございます。 ただ今インストールされてるnumpyやtensorflowなどがpipで出ない方は解決できてません 上記のこともありpip listとpip3 list両方試したんですが全く同じ結果でした……
634 名前:デフォルトの名無しさん mailto:sage [2020/02/12(水) 23:52:40 ID:ohhYjydu.net] 申し訳ありません、自己解決しました 何故かPATHで/usr/PATH/pypy3が先頭に立っててpypyが一番最初に呼び出される設定になってた為 pypy3のpipが表示されてたんだと思います……PATHのpypy3外したら直りました。 長文と勘違いで迷惑を書けてしまい申し訳ありませんでした。
635 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 00:09:12.49 ID:n7qjy+CZ.net] セルフってなんやねん!?
636 名前:デフォルトの名無しさん mailto:sage [2020/02/13(Thu) 00:14:39 ID:Gd0xgnoa.net] 自分でガソリンを入れるスタンド
637 名前:デフォルトの名無しさん [2020/02/13(木) 08:14:35.67 ID:0eJoVY/8.net] >>627 どうしてa1とかa2の変数名が必要なのかわからないな
638 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 12:13:43.09 ID:lzB8uQ2A.net] >>630 オナニーをテーマにした漫画だよ。
639 名前:デフォルトの名無しさん mailto:sage [2020/02/13(Thu) 14:49:45 ID:MOac+3r5.net] >>630 話すと長いから解説してるブログ貼る 簡単に言えばselfを書くことで新しい機能を追加することなく書けるからって考えらしい https://python.ms/self/#%E3%81%95%E3%82%89%E3%81%AB%E4%BB%96%E8%A8%80%E8%AA%9E%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
640 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 17:35:23.50 ID:r7bSHOfr.net] pythonでオブジェクト指向やれば selfだらけになってシグナルノイズ比が高い事は自覚しておくべき 明示的にselfを渡してる言語としてGoやRustと同列に語るのはぶっちゃけ頭おかしい Goはどの型のメソッドが識別するためにselfを渡してる Goの場合はそれ以外で識別する方法がないから Rustはselfの使い方が3種類があるから 関数がどの種類なのかをシグニチャで指定するために明示的にselfを渡してる
641 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 18:39:18.80 ID:Ure0FzdD.net] >>627 何を参考にコーディングしたらそれが生まれたのか純粋に知りたいw
642 名前:デフォルトの名無しさん [2020/02/13(Thu) 19:02:19 ID:qvECNN2e.net] 条件分岐の分かり易い書き方について教えてください 通常ではa=bで c=0の時はa=zで d=1の時はa=yというときに if c == 0: __a=z elif b==1: __a=y else : __a=b になりますがほとんどの場合a=bになって まれにa=y やa=zになるとすると a=bが最後に来るのはわかりにくい気がするんですが どうしてますか?
643 名前:デフォルトの名無しさん mailto:sage [2020/02/13(Thu) 19:45:20 ID:n7qjy+CZ.net] >>634 ありがてえ!!
644 名前:デフォルトの名無しさん mailto:sage [2020/02/13(Thu) 20:12:27 ID:Ure0FzdD.net] >>637 別に気にならないけど、前に持ってきたいなら 最初に無条件でa=bを記述 その後条件文を記述 にするかな
645 名前:デフォルトの名無しさん mailto:sage [2020/02/13(Thu) 20:16:27 ID:Ure0FzdD.net] ちなみにそんなことよりも、自分がレビューするとしたら cが0でbが1の時は本当にa=zでいいのかとかが不安になるわ
646 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 21:36:32.33 ID:r7bSHOfr.net] >>637 通常ケースと通常でないケースという認識なんであれば 3つを並列に書くんじゃなくガード節を使ったりして通常ケースとそれ以外のケースを分離する def evaluate(b, c): ____if c == 0: ________return z ____if b == 1: ________return y ____return b
647 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 21:40:41.28 ID:zu6t+bqI.net] コメントにそう書いておく。
648 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 21:59:00.84 ID:n7qjy+CZ.net] pythonてSwitch文ないの?
649 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 22:08:31.25 ID:Gd0xgnoa.net] ない
650 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 23:45:35.00 ID:l+IDZGdn.net] まあ変数の真名と役割をコメントしてくれないと可読性の議論は出来ないよね 順番とか記述方法云々よりそっちが先
651 名前:636 [2020/02/13(木) 23:51:12.83 ID:qvECNN2e.net] >>639 条件が変わったら上書きしていくのもアリなんですね ありがとうございます 説明へtsくそですいません・・・ >>641 ありがとうございます こんな方法あるんですね >>642 コメントでの説明がへたくそすぎて 後で過去の自分を殴りたくなることが多いですorz
652 名前:デフォルトの名無しさん [2020/02/14(金) 13:14:33 ID:a5iC3cHy.net] >>637 カルノー図を覚えろ
653 名前:デフォルトの名無しさん [2020/02/14(金) 14:54:01.70 ID:/S4vU3l9.net] mac os 10.11.6 python 3.7.4 https://ideone.com/Mkhw9S ターミナルから上のスクリプトを実行すると以下のようなエラーがおきます。 VScodeから実行した場合は問題なく実行されます。 Non-UTF-8 code starting with '¥xe6' in file test2.py on line 2, but no encoding declared; https://ideone.com/D9Fkym 上のスクリプトはターミナルからも実行できます。 (リストの文字列の数のみの違いです) 以前はこんな感じのエラーは起きなかったのですが 原因がわかる方おられますか?
654 名前:647 [2020/02/14(金) 14:59:14.12 ID:/S4vU3l9.net] 自己レスです。 # coding: UTF-8を入れたらターミナルからも実行できましたが、 なぜリストの内容数とVScodeからだと問題無いのかがわかりません。
655 名前:デフォルトの名無しさん [2020/02/14(金) 15:27:13.81 ID:WtuYdkw5.net] atomic bomb
656 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 15:34:47 ID:+9NDg3r6.net] 「python non-utf-8 code starting with ' xe6'」で検索! どうせ、文字コードが異なるとか? BOM 無しUTF-8 で保存すれば? 漏れは、Windows 10, VSCode で、Ruby, JavaScript などを使うけど、 すべてのファイルを、BOM 無しUTF-8 だけにしている!
657 名前:647 [2020/02/14(金) 15:39:07 ID:/S4vU3l9.net] >>651 上下とも同じエンコーディング(BOM 無しUTF-8 )で保存しています。 リスト内の文字列は全て同じ文字列の繰り返しで、2種類のスクリプトは要素数のみの違いです。
658 名前:デフォルトの名無しさん [2020/02/14(金) 15:40:45 ID:WtuYdkw5.net] # coding: UTF-8 書いてなかったんだろ
659 名前:デフォルトの名無しさん [2020/02/14(金) 15:42:19 ID:WtuYdkw5.net] >>6
660 名前:647 [2020/02/14(金) 15:52:33 ID:/S4vU3l9.net] >>653 >>649で書いたように、# coding: UTF-8は入れてなかったのですが、 知りたいのは、以下の2点の理由です。 1.VScodeだと問題なく実行できる 2.リスト要素数の違いによるエラーの有無
661 名前:デフォルトの名無しさん [2020/02/14(金) 15:57:16 ID:WtuYdkw5.net] sys.getdefaultencoding() みろ
662 名前:647 [2020/02/14(金) 16:01:14 ID:/S4vU3l9.net] >>> sys.getdefaultencoding() 'utf-8'
663 名前:デフォルトの名無しさん [2020/02/14(金) 16:01:50 ID:WtuYdkw5.net] お前は言われたことしかできないんか? https://qiita.com/methane/items/6e294ef5a1fad4afa843
664 名前:647 [2020/02/14(金) 16:07:55 ID:/S4vU3l9.net] >>658 単にマウント取りたいだけなら返信不要です
665 名前:650 mailto:sage [2020/02/14(金) 17:08:51 ID:+9NDg3r6.net] >>655 VSCode では、Microsoft がPython の拡張機能も作っているし、 設定ファイルにでも、UTF-8 で起動するように書いてあるのだろう 一般的には、IDE などの統合開発環境は、親切
666 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 17:19:37 ID:EOtBZfN8.net] >>655 原因はバグ 対処は改行して1行のバイト数を減らすか 明示的にencoding指定をファイルの先頭に記述するか https://bugs.python.org/issue34979 VSCodeで実行できるのは>>660の書いてる通り何か設定してるからだと思われる 俺の環境ではVSCodeでも同じエラーが出る
667 名前:647 [2020/02/14(金) 17:21:58 ID:/S4vU3l9.net] >>660 >>661 ありがとうございます。すっきりしました。 バグですか。確かに配列内容を分割しただけでエラーが消えたりしてたので悩みました。
668 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 19:07:56 ID:+2T2g9zy.net] 要領悪いやつ 大人しくutf8宣言しときゃ動くんだからそうしろよ お前なんかがvscodeのバグ発見したからって何になるんだ 時間のムダ
669 名前:デフォルトの名無しさん [2020/02/14(金) 19:13:36.39 ID:x4GfXJj6.net] 単に知的好奇心だろ おまえみたいなIT土方にはわからんか
670 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 19:39:14 ID:+2T2g9zy.net] 全く知的ではない ただの"何でvscodeだと上手くいかないのムキー"でしかない その証拠にバグと分かったらもう投げ出してる
671 名前:デフォルトの名無しさん [2020/02/14(金) 19:44:06 ID:x4GfXJj6.net] それがなんで証拠なんやろうか バクについてまでは興味ないってだけやろうに 土方が偉そうに評価するな
672 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 19:56:12 ID:+2T2g9zy.net] バグだったら仕方ない、 自分のせいじゃない、 よかったよかったあースッキリ。 どこに知的要素が存在するのか
673 名前:デフォルトの名無しさん [2020/02/14(金) 20:00:15 ID:x4GfXJj6.net] 知的好奇心のない奴は動けばいいやでuft8宣言して終わりだろうな
674 名前:650 mailto:sage [2020/02/14(金) 20:19:25 ID:+9NDg3r6.net] プログラマーが日本語のバグで時間を使うのは、馬鹿らしい。 Python は、日本語対応をやってない Ruby なら、Cookpad・マネーフォワード・Ruby 開発とか、 日本人のメンテナーが、一杯いる
675 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 20:23:20 ID:+2T2g9zy.net] >>668 だからそれで終わりでよい 知的な意味もなく自己満足のためにムダな時間費やす無能よりも幾らか使えると言っているのだ
676 名前:デフォルトの名無しさん [2020/02/14(金) 20:26:32 ID:x4GfXJj6.net] IT土方は動けばいいだけだもんな
677 名前:デフォルトの名無しさん [2020/02/15(土) 00:24:05 ID:GcRD3KfQ.net] True=1,False=0じゃなくて IFで何行も書かなくても Trueの時は1をかけて、Falseの時はマイナス1を掛ける方法ってありますか?
678 名前:デフォルトの名無しさん [2020/02/15(土) 00:33:48 ID:NYbvjz3Y.net] 普通は *(1 if hoge else 0) だろうな hoge*1でもできるっぽいけど
679 名前:デフォルトの名無しさん [2020/02/15(土) 00:50:26 ID:GcRD3KfQ.net] >>673 *(1 if hoge else -1) で行けるんですね ありがとうございます!
680 名前:デフォルトの名無しさん [2020/02/15(土) 00:52:40 ID:NYbvjz3Y.net] よく読んでなくてすまん
681 名前:デフォルトの名無しさん [2020/02/15(土) 04:34:54 ID:CrxoAXqf.net] >>672 hoge*2-1
682 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 07:03:08.25 ID:1M8DJTak.net] >>676 Basicは三項演算子なかったからその手のコードよく見かけたな Trueが-1だから-2*hoge-1とかにしないと駄目だけど
683 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 07:39:54.28 ID:cl/r4jK1.net] *[-1,1][hoge]とか
684 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 08:44:35.96 ID:lCqRUL4P.net] >>671 その通り コマはコマらしく動いていればよい
685 名前:デフォルトの名無しさん [2020/02/15(土) 12:23:37 ID:GcRD3KfQ.net] みなさん色々ありがとうございます >>678 *[-1,1][hoge]なら短いし 1か−1を掛けてるのが一目でわかっていいですね。
686 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 12:33:06.53 ID:Od0WFVIs.net] >>680 横からですまんが この*は何?掛け算記号じゃないよな
687 名前:デフォルトの名無しさん [2020/02/15(土) 12:54:17.21 ID:OeWG4QMt.net] どーでもよくて草
688 名前:デフォルトの名無しさん [2020/02/15(土) 13:02:49.71 ID:GcRD3KfQ.net] >>681 >>672 で-1か1を掛けたいと質問したので *マークをつけてくれたんだと思います
689 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 13:09:52.19 ID:a5tEBtfb.net] それはわたしの肛門だ
690 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 13:29:58.94 ID:J1bovO5o.net] 糞みたいな小手先のテクニック使うくらいなら潔く if else で書けや
691 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 14:48:11.69 ID:cTwFsuY/.net] x * [-1, 1][hoge]ってことだと思うが 流石にこれはない 評価する変数にboolしか入らない状況なら x * (hoge or -1) でいいんじゃないかと思うが これだと何のためにやってるかわかりにくいので 通常のif else使って関数化したほうがいい気もする
692 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 22:11:51.52 ID:L3zGf310.net] >>685-686 俺もそう思う。 元質問をしたPythonでの三項演算の表記を知らないレベルの人は x * [-1, 1][hoge]やx * (hoge or -1) を嬉々として・どや顔して 使いそうだが
693 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 22:40:28.65 ID:cl/r4jK1.net] [-1, 1][hoge]は0,1以外弾くから結構間違いが入り込みにくい実装なんだけどね。 まぁ、普通は三項演算子使うだろうな。
694 名前:デフォルトの名無しさん [2020/02/15(土) 23:35:32.08 ID:GcRD3KfQ.net] 質問ですが def内で使う変数名を考えるのが面倒だし 後でどれがどれか分かるように 引数と同じ変数名にしてますが 問題ないですか??? グローバル変数はほぼ使ってないです。
695 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 23:49:52.90 ID:robjZmR7.net] def addnumbers(a, b): return a+b a=10 b=5 print(addnumbers(a, b)) みたいな話? なら別に問題はないけど。 引数じゃなくて関数内で宣言するローカル変数の話なら、頭に_をつけたりして外の環境をマスクしないようにしたほうがお行儀がいいけど。
696 名前:デフォルトの名無しさん [2020/02/16(日) 00:44:18.75 ID:S0ZkinLG.net] >>690 そんな感じです ありがとうございます 解説とかだと大抵名前変えてあるので 変えた方がいいのかと思い込んでいました
697 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 02:28:25 ID:Q6srCXr2.net] >>691 動くか動かないという意味では動くから、同じであっても問題はない、というだけだぞ。 意味的に分かりやすく適切な名前をつけるべき。
698 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 09:01:43 ID:17VZ7Cpd.net] >>691 > 変数名を考えるのが面倒 これは2年後にタイムマシンで過去の自分をブン殴りたくなるまでなおらんとおもうが なおせるものなら早めになおしとけ > 後でどれがどれか分かるように この発想はただしい。 で、どうしたらいいのかについては>>692が書いてくれてる つまり 考えるのが面倒だから、って理由で 引数の名前をaだのbだのにしておくのはやめておけ
699 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 09:35:32 ID:xJ91WGrf.net] 名前を考える時間がもったいない スクリプト言語はいかに早く作り早く動かすかが命 一度動けば後は野となれ山となれ
700 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 10:19:55 ID:1yJgvEz2.net] どうしても名前を考えるのがめんどくさいならば 注釈で変数の意味を書いておくという方法もある 典型的な変数の値も書いておくとなおよい
701 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 10:26:00.98 ID:6foDUZHe.net] 関数の分割と命名が適切ならローカル変数なんて全部一文字でいいよ そんなことで読めなくなるような長い関数を書くな
702 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:27:23 ID:17VZ7Cpd.net] >>696 2行目には禿同 >ローカル変数なんて全部一文字でいい ここまでがんばる必要はない
703 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:28:24 ID:17VZ7Cpd.net] >>694 そう思っていた時期もありました まだならこれからなるか、或いはクビになるでせう
704 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 11:33:53.98 ID:vdOGaRiC.net] Goはむしろ一文字変数と引数を推奨してるね コードが十分に構造化されていれば、長い変数名はノイズになって逆に読みにくいってのは一理ある
705 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 12:08:56.63 ID:KXHJAKTO.net] bad know howの固まりのようなスレだな
706 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 12:24:10 ID:5YcuBhUR.net] 689だけど無次元数を扱う場合はa,bとかm,nとかを使うな ファイルディスクリプタならfd ループインデックスはi,j,kとかix,iy それ以外は英単語2〜3個を繋いで変数名にして PandasのDataFrameやNumpy Arrayみたいに実質型のないものはアプリケーションハンガリアン ローカル変数だと頭にアンダースコアをつける感じだな
707 名前:デフォルトの名無しさん [2020/02/16(日) 12:26:02 ID:uPTaqoVN.net] 雑魚はせめてリーダブルコードでも読んでからコメントして
708 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 12:37:40 ID:KXHJAKTO.net] >>702 それな
709 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 13:00:47 ID:17VZ7Cpd.net] 「最善の名前とは読み手が誤解を招かないこと」って書いてないか?
710 名前:688 [2020/02/16(日) 13:04:49 ID:S0ZkinLG.net] ローカル変数名ですけど 例えば名古屋から広島の距離を計算するとして def kyori(nagoya,hirosima) ___length = nagoya-hirosima ___return length #東京からの距離 tokyo = 0 nagoya = 350 kyoto = 457 hirosima = 768 length = kyori() っていう感じですけど 意味があって分かり易いだと 一文字だと長さはまだlで分かり易いと思うんですが defが増えていくったときに それぞれのdef内でもまだ個性的な名前を付けた方がいいのですか??? length_kyoto_hirosimaとか???
711 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 13:13:22.41 ID:xJ91WGrf.net] >>705 やたら気にするけどどうしたの 仕事なら職場やプロジェクトのコーディングルールに従えばいいし 個人の趣味なら自分がわかりやすければそれでいいのよ
712 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 13:19:18.43 ID:vdOGaRiC.net] >>705 まあ気持ちはわからないでもないが、慣れてくるとそのへんは問題にならなくなるから現時点でそんなに気にしなくていい はっきり言って、同じものを多数の関数に引き回していること自体がヘタクソ それを回避する方法は「こうすればいい」と教科書的に言えるものではなく設計センスの問題で、君にも自然にわかってくる
713 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 13:24:20.27 ID:17VZ7Cpd.net] >>705 そのdefのはっそうは、正直よろしくないとおもう。 使いまわせないだろw def kyori(from, to): にすれば、使いまわせるだろw でもって、 引数のあとの「:」を忘れるな + (PEPにも書かれてるらしいが) 1ミクロンでも他人に見せる予定があるコードならば、 「kyori」はやめて、和英辞書を引いて、distanceをチョイス。 さらにいえば、 距離を計算する函数なのだから 「def calc_distance」みたいな名前にしよう。
714 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 13:26:21.56 ID:17VZ7Cpd.net] >>708 修正 よろしくない: from, to モアベター: from_point, to_point あるいは from_city, to_city とかとか
715 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 14:30:21.73 ID:iNVxJNOu.net] 関数定義や関数のことを`def`って呼ぶのちょっとモヤるんだけど一般的なのかな? >defが増えていくったときに >それぞれのdef内でも >そのdefのはっそうは、正直よろしくないとおもう。
716 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 14:33:43.62 ID:E60C1LrQ.net] namedtuppleのクラス継承って3.5.3じゃ無理なのですか? 無理ならバージョン何からできます?
717 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 14:46:40.85 ID:Rlzwkt+8.net] >>710 pythonスレならまあわかるでしょ ってレベルかと
718 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:03:54.06 ID:17VZ7Cpd.net] >>710 なるほど 函数定義って言えばいいのか なるほどなっとく 口語でdefの〜みたいに教えられて 正式名称しらなんだ感。 たぶん704もそうなんじゃないかと、エスパーしてみる。
719 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 15:08:15 ID:17VZ7Cpd.net] >>711 綴りちがっとる ×tupple 〇tuple from typing import NamedTupleがイケるのが3.6.1からなので、 たぶんそのへんからナンジャネーノ(適当)
720 名前:688 [2020/02/16(日) 16:38:20.27 ID:S0ZkinLG.net] >>706 趣味でやってるんですが ほぼほぼ作ったのが後々改造できなくて 投げ捨てるはめになってるので 何とかしたくてって感じです >>707 趣味なので自然と身につかないのです・・・ >>708 具体例ありがとうございます 気を付けます
721 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 16:53:49.03 ID:17VZ7Cpd.net] >>715 > ほぼほぼ作ったのが後々改造できなくて > 投げ捨てるはめになってる www わかるwwwww始めたばっかりの頃のあるあるwwwwwわかるwwwww オライリーの リーダブルコード ISBN-10: 4873115655 ISBN-13: 978-4873115658 (あるいは ビューティフルコード ISBN-10: 4873113636 ISBN-13: 978-4873113630 ) を 買って読んでみたらー 中古でも安くなってないだけのことはあるでよー
722 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 17:07:16 ID:05WBirzM.net] オブジェクトがコピーなのか現物なのか、調べるにはどうすればよいですか。または全て現物で渡すには? 1. クラスの初期化時に引数として渡してselfに格納 2.クラスのgetterメソッド返り値としてselfの値を返却する 3.手順2で得られた値を演算したものをクラスのsetterメソッド引数として渡してselfに再格納 1〜3まで全て現物でいてほしいのですが、どこかでコピーになってしまうようで同期しません。
723 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 17:11:30.05 ID:05WBirzM.net] 716、自分でも分かりにくいので追記です、 e = 1 a = Class1(e) b = Class2(e) tmp = a.getE() tmp += 1 a.setE(tmp) b.print() このprintの結果が、2となって欲しいのです。
724 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 17:18:43.25 ID:17VZ7Cpd.net] >>717-718 書き込む前に>>1 嫁 >オブジェクトがコピーなのか現物なのか、調べるには id(オブジェクト) ↑これがオリジナルとコピーでは異なるので確認汁
725 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 17:44:48.94 ID:05WBirzM.net] >>719 ありがとうございます。 原因わかりました。 716で書いてるeが実際はイミュータブルだったので、書き換える際にreplace呼んでid変わってたみたいです。 eを自作クラスに変えたら動きました。ありがとう
726 名前:デフォルトの名無しさん [2020/02/16(日) 19:45:43.91 ID:w90VPIvZ.net] リーダブルコードでググったら英語版はタダで見れるのか 苦Cみたいなもんか?
727 名前:688 [2020/02/16(日) 19:51:59.66 ID:S0ZkinLG.net] >>716 調べてみます ありがとうございます
728 名前:デフォルトの名無しさん [2020/02/16(日) 20:00:33.27 ID:S0ZkinLG.net] このクラスの########から########の間を 書き換えて別の子クラスを作る方法を教えてもらえませんか? リターンはなくて条件によってどんどんpを書き換えていく感じの内容です class coner: __def __init__(self): ____self.angle = 0.0 ____self.width = 0.0 #以下self.が沢山 __def tijimi(self): ##################################### ____if 0 <= self.angle < math.pi/3: ______#計算式色々 ______p = l ____if self.angle == 0 : ______#計算式色々 ______p=l ____#以下ifでangleを調べてpを上書きしていくif分沢山 ##################################################### ____if self.width == 50: ______#計算式色々 ______p=l ____if self.width == 80: ______#計算式色々 ______p=l
729 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 20:56:22.89 ID:05WBirzM.net] class tijimi(coner)作ってsuperのinit呼んだ後にif文羅列じゃ駄目なの?
730 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 21:14:42.57 ID:iNVxJNOu.net] >>723 >書き換えて別の子クラスを作る方法 継承してオーバーライドすること言ってるのかな? それと 条件によってpをどんどん書き換えていくような仕様は 一般的にはものすごく悪い設計 バグりやすいしテストもしにくいので避けたほうがいい
731 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 21:47:49 ID:17VZ7Cpd.net] >>721 >英語版はタダで見れる なん・・・だと・・・・ まあいいや 日本語版書籍には訳者によるおまけがついてるらしいから・・・
732 名前:722 [2020/02/16(日) 22:05:37 ID:S0ZkinLG.net] >>725 たぶん、継承オーバーライドの事だと思います よくわかってなくてすいません pを書き換えていくのを直します ありがとうございます >>724 ありがとうございます やってみます
733 名前:デフォルトの名無しさん mailto:sage [2020/02/16(日) 22:59:10 ID:5EL9p8ON.net] Ruby なら、B はA から派生したクラスで、 派生クラスで、親クラスの同名のメソッドを上書きする(override)。 @ はインスタンス変数 class A def f( ) @x = 1 end end class B < A def f( ) @x = 2 end end p A.new.f #=> 1 p B.new.f #=> 2
734 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 00:33:34.29 ID:VGvKWI+b.net] リーダブルコードもコードコンプリートも読んだ上で700書いてるけどねえ PEP8とかもそうだけど、知恵とルールを混同してしまう人が結構いる
735 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 02:53:30.28 ID:DyKTwZyk.net] お前にはその両方が足りていない
736 名前:デフォルトの名無しさん [2020/02/17(月) 05:56:39.51 ID:9Byn+CCQ.net] アンカも打てないのかよ いちいち自分で辿らせるとかどんだけ構って欲しいんだ
737 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 07:12:48 ID:a4xzah5x.net] >>728 endとか90年代かよダッサ無駄な記述乙
738 名前:デフォルトの名無しさん [2020/02/17(月) 07:47:39.40 ID:wxeqwMT5.net] 裏表紙のない本 ドアのないトイレ キャップのないペットボトル
739 名前:デフォルトの名無しさん [2020/02/17(月) 11:57:31.26 ID:xV6ZEvHF.net] Macなんですが元々入ってるPython2系をpython2で呼び出して Python3系をpythonコマンドで呼び出す方法ってありませんか? alias python="python3" を設定してもpython2が使えなくなる代替案を探してる最中です
740 名前:デフォルトの名無しさん [2020/02/17(月) 12:37:38.00 ID:m/x7HUx7.net] >>730 読んであれならヤバイ級だよなあ
741 名前:デフォルトの名無しさん [2020/02/17(月) 12:38:09.76 ID:m/x7HUx7.net] エイリアスにフルパス入れちまえよ
742 名前:デフォルトの名無しさん [2020/02/17(月) 12:53:44.11 ID:xV6ZEvHF.net] >>736 エイリアスで置き換えすることばかり考えてました、ありがとうございます m(_ _)m
743 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 13:05:59.25 ID:sUzH4s3p.net] >>732 トイレを使って水を流さない犯人を見つけた
744 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 13:31:47.59 ID:y136Nw0W.net] >>734 pipだったり他のプログラムが使ってるpythonの依存ぶっ壊れるようなやり方すぎる。 dockeで隔離するか、pyenv, anaconda 使うなりする方が問題起きたときに復帰しやすいと思われる。
745 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 15:10:44.14 ID:wzCOK5rA.net] >>734 ln -s /usr/bin/python /usr/local/bin/python2 ln -s /usr/local/bin/python3 /usr/local/bin/python
746 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 15:56:50.96 ID:y136Nw0W.net] 完全に環境ぶっ壊しにかかってんな。。カスだな。
747 名前:デフォルトの名無しさん [2020/02/17(月) 17:29:32.07 ID:91EB+qlc.net] >>738 Rubyはスレチだから
748 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 19:14:02.33 ID:A9t7x7q2.net] デフォルトの設定を変えたら、それを使っている無数のアプリがバグルw OS の仕組みを学べ!
749 名前:デフォルトの名無しさん [2020/02/17(月) 20:02:52.96 ID:4yysNtzR.net] 呼ぶときはPython2ならpythonで、Python3はpyで呼べるようになってるだろ 方針としてpythonで呼ばれるのはPython2のままにするっていうのがあるし
750 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 20:03:49.54 ID:4njBz49B.net] $ pip3 --version bash: /home/xxx/.local/bin/pip3: そのようなファイルやディレクトリはありません $ which pip3 /usr/bin/pip3 以下のページ通りにやったら直った パッケージ更新インストール後にコマンドが実行できない場合の対処 https://qiita.com/vmmhypervisor/items/e846338b204061040957
751 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 21:27:41.44 ID:EJ6dkZYZ.net] Python記事まとめ(毎日自動更新) https://qiita.com/kamata1729/items/eaf1d7b945b3a61a4fdd Qiita週間ストック数ランキング【自動更新】 https://qiita.com/kai_kou/items/180a91fd88dbbbd746f6
752 名前:デフォルトの名無しさん [2020/02/18(火) 00:00:11 ID:o6M8r8f5.net] import numpy as np a = np.array([1,2,3]) print(a.shape) こうやると、 (3,) と表示されますけど この3の後ろにあるカンマは どゆ意味なんでしょう? 不必要としか思えないのですが?
753 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 00:10:14.62 ID:ObTpNy6/.net] tuple 同じ型が返されることに意味がある (3,)と(3)で型を比べてみればいい
754 名前:デフォルトの名無しさん [2020/02/18(火) 00:17:31.22 ID:o6M8r8f5.net] >>748 ありがとうございます。 型を比べると(3)はint、(3,)はtupleですね。 np.arrayのshapeをtuple型の同じ型にする、 ということですね?
755 名前:デフォルトの名無しさん [2020/02/18(火) 13:43:57.54 ID:ZbgU3Gim.net] 全然違うω
756 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 13:54:29.04 ID:2AC9Ct1n.net] >np.arrayのshapeをtuple型の同じ型にする、 >ということですね? 日本語がおかしい、もしくは理解の仕方がおかしい。 「np.array の shape を print で確認したら、tuple 型で (3,) だった。」 くらいは書いてほしい。
757 名前:デフォルトの名無しさん [2020/02/18(火) 17:44:44 ID:NpZig/vi.net] >>749 何が言いたいのかよくわからない 何と何が同じなの?
758 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 20:55:10 ID:EFQS+VhN.net] 新しいノートパソコン買ったけど使ってるやつpipして入れていくの面倒だな
759 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 22:11:49.35 ID:kXXzWqPh.net] >>753 現行このスレの上の方か、前スレで pipで既に入ってるものを全部txtに吐かせて それを新しいPCにコピーして 新しいPCのコマンドプロンプトからpipに食べさせる方法レスした記憶
760 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 22:25:08.60 ID:Sq+szhyd.net] >>753 コマンドをバッチファイルに記録しておくのおすすめ 何を入れたのかの備忘録にもなるし、クリーンインストール後にも一気に復帰可能
761 名前:デフォルトの名無しさん mailto:sage [2020/02/18(火) 22:27:06.73 ID:I7Q3zK/c.net] あーそういやエクセルにpip一覧作ってコピペって入れてたな あれバッチにすればよかったのか!
762 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 00:22:18 ID:67Zh1tMt.net] >>754で書いてた過去のレスの、要約したったど てきとうな階層でコマンドプロンプト起動して pip freeze > requirements.txt できたtxtを次のPCの これまたてきとうな階層に入れ、 そこからコマンドプロンプト起動して pip install -r requirements.txt
763 名前:デフォルトの名無しさん [2020/02/19(水) 11:51:55.61 ID:cGULNOoW.net] そしてcondaに感染
764 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 18:42:16.77 ID:DTFko2h2.net] このコードについて質問です https://github.com/TestStudio/usbmuxd/blob/master/python-client/usbmux.py class MuxError(Exception): pass raise MuxError("socket connection broken") みたいな書き方がされていますが、なぜ何もしない(passだけする)クラスを作って使用しているのでしょうか?
765 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 18:45:07.19 ID:RE1Trb9N.net] raiseだからじゃない
766 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 19:01:50.35 ID:Um90NQYB.net] Ruby なら、StandardError を継承して、カスタム例外クラスを作るだけ! class MyError < StandardError def initialize( msg="引数なし" ) super end end raise MyError #=> 引数なし (MyError) raise MyError, "引数あり" #=> 引数あり (MyError)
767 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 19:32:54.08 ID:TvNfUAFk.net] Exceptionを継承してるのだから何もしてないわけではない 既存の例外クラスをそのまま使わず新たな例外クラスを作ればexcept節で場合分けしやすくなる
768 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 23:14:11 ID:DTFko2h2.net] >>762 ありがとうございます
769 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 23:17:38 ID:DTFko2h2.net] 質問が大雑把すぎて答えてもらえない気がするんですが… >>759に関してダメ元で聞きたいです。 >>759のコードをPython3.7で実行するとこんな感じのエラーが出るのですが何をどうしたら直せますか…? いくつもエラーが出ているんですが、1つだけでも良いので…教えてもらえると嬉しいです…。 どのエラーも直し方がわからないです。。 Traceback (most recent call last): File "C:\Users\username\Desktop\test.py", line 238, in <module> mux = USBMux() File "C:\Users\username\Desktop\test.py", line 222, in __init__ self.listener.listen() File "C:\Users\username\Desktop\test.py", line 191, in listen ret = self._exchange(self.proto.TYPE_LISTEN) File "C:\Users\username\Desktop\test.py", line 184, in _exchange self.proto.sendpacket(req, mytag, payload) File "C:\Users\username\Desktop\test.py", line 101, in sendpacket data = struct.pack("IIII", length, self.VERSION, req, tag) + payload TypeError: can't concat str to bytes
770 名前:デフォルトの名無しさん mailto:sage [2020/02/19(水) 23:53:08.56 ID:GM7mImOk.net] >>764 いくつもエラーが出てるんじゃなくて エラー内容と呼び出し履歴が表示されてるだけ 101行目ので 「TypeError: can't concat str to bytes」ってエラーが発生してる python2用のコード
771 名前:デフォルトの名無しさん mailto:sage [2020/02/20(Thu) 00:05:49 ID:rl2y9G0y.net] よく見たら11年以上前のコードやん 個人的にどういう経緯で辿り着いたのか気になる
772 名前:デフォルトの名無しさん mailto:sage [2020/02/20(Thu) 00:35:27 ID:x93hW6cn.net] >>765 ありがとうございます…!! 101行目のエラーさえ潰せれば解決なんですね…!! >>766 iOSデバイスとPC上のPythonをUSB/lightningケーブルで接続して通信をしようと思ったのですが それらしき情報がコレしか見つからなかったので辿り着きました
773 名前:デフォルトの名無しさん [2020/02/20(Thu) 12:40:33 ID:sbHTvmgo.net] 不潔ゾーンからお帰りください
774 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 16:02:46 ID:x3GQj6xQ.net] インスタンス変数についての質問です 他言語(c/c++/c#)から入った人間の例に漏れずself/clsって何なの…となりました で色々見ているのですが1番大きな疑問はインスタンス変数です サンプル見ると大体コンストラクタでself.x=とかやってますがこのxはどこで定義されているのですか? 仮にこれが定義としてもコンストラクタや関数内部で定義したものがスコープ外でつかえるのは妙です それに関数で新しく定義出来てしまうならインスタンシエイト時にそのオブジェクトがどのようなメンバを持つのかの情報が欠落していることになります この辺りの解説を探しても見つけられませんでした ご教授頂ければ幸いです
775 名前:デフォルトの名無しさん [2020/02/21(金) 16:35:03 ID:AkYRUnXu.net] コンストラクタでself.x=とやればそこで定義される
776 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 16:35:43 ID:RiyafmFC.net] >>769 >インスタンシエイト時にそのオブジェクトがどのようなメンバを持つのかの情報が欠落していることになります オブジェクトがどういうメンバを持つかは静的じゃなく動的 インスタンス化後にインスタンス変数やメソッドを追加できる クラスはディクショナリみたいなものだと思っておけばいいよ https://ideone.com/aAGA0y >仮にこれが定義としてもコンストラクタや関数内部で定義したものがスコープ外でつかえるのは妙です メソッドの第1引数にレシーバのオブジェクトが渡されるので それを`self`という名前の引数で受けてメソッド内では渡されたレシーバを使って `self.x`とかでインスタンス変数を参照してるのでスコープ外ではない ちなみにselfは慣習として使われてる変数名であってhogeとかに変えても問題なく動く
777 名前:デフォルトの名無しさん [2020/02/21(金) 16:35:53 ID:AkYRUnXu.net] あとCの経験があるならPyObjectについて調べたら理解が進むはず
778 名前:デフォルトの名無しさん [2020/02/21(金) 17:12:06.44 ID:QP8p1GF2.net] 仮想通貨のbotを作りたいんだけど、 AWSのCloud9で、 pythonのプログラムかいて動かす場合、 ブラウザー閉じたり、PCの電源切ったりしても、 プログラムはずっと動くの?
779 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 17:31:14 ID:2TMdipPT.net] >>769 Ruby では、デフォルトでインスタンス変数は、private だから、 アクセサー(attr_accessor)で宣言しないと、クラス外部からアクセスできない class A attr_accessor :x def initialize @x = 1 end end p A.new.x #=> 1
780 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 17:33:36 ID:2TMdipPT.net] 仮想通貨は、Solidity だろ
781 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 20:23:10 ID:/Xk0nwt/.net] >>773 そのように組めばそのように動く
782 名前:デフォルトの名無しさん [2020/02/21(金) 20:31:58 ID:QP8p1GF2.net] >>776 そうですかぁ 停電とかPCの故障で停止して、 大損したらまずいと思ってたから、 AWSでずっと動かしてみる、 クラウドなら停止しないで安心ですね。
783 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 21:03:51 ID:/Xk0nwt/.net] >クラウドなら停止しないで安心 ヒソ( ´д)ヒソ(´д`)ヒソ(д` )ヒソ
784 名前:デフォルトの名無しさん mailto:sage [2020/02/21(金) 21:52:48.61 ID:g+Ne8Q54.net] >>777 そのレベルなら停電の心配するより自分のプログラムのバグで損失出す可能性の方がはるかに高いだろう。
785 名前:772 [2020/02/21(金) 23:27:12.20 ID:QP8p1GF2.net] Cloud9にPyCarmで書いてたプログラムを移して、 AWSで動かしてみました、 ブラウザー閉じても、無事に自動で動いてるみたい、 もう、20円くらい稼げた、 これで、寝ているだけで朝起きたらお金が増えてるかな、 AWSは750時間分無料で使えるみたいなので、 しばらくこのまま動かしてみます。
786 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 00:10:39.94 ID:pQxmP5Jc.net] 朝起きたらバンされてるから
787 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 02:14:03.09 ID:R+gSedzt.net] ◎バグで損失 〇アルゴリズムがクソで損失 △利用料の請求でしぬ
788 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 08:40:23.32 ID:6wlvfoPI.net] >>771 参考になりました https://stackoverflow.com/questions/12569018/why-is-adding-attributes-to-an-already-instantiated-object-allowed 検索して見つけたんですがここでもクラスはディクショナリの糖衣構文なんて書いてますね いやしかしそうすると同じ型のオブジェクトなのにその後の操作によって違うメンバを持ってたりするわけですか えぇ……型適当すぎませんかpython…… selfに関しては自分自身を参照型なりポインタなりで関数内に渡していじくってると考えればいいんですかね なぜthisにしない……そして自分自身が変化しないインスタンスメソッドでselfなんで書かねばならんのだ……
789 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 09:16:04.11 ID:/f58S0oT.net] >>783 言語が異なれば用語や概念は異なるのだから、自分の母国語に無理に当てはめて考えようとすると行き詰まるぞ。それぞれの言語で意図やポリシーがあってその言語の仕様が作られているのだから、違う考えに基づくものだとして違いを受け入れ、理解しようとしてみなよ。
790 名前:772 mailto:sage [2020/02/22(土) 09:50:55.45 ID:ltYpm+bh.net] 動かしたまま寝て朝見たら、 無事に動き続けてました、 45円くらい利益出たから、 半日もしないのに資金の1.2%程増えた、 ほんとに、寝ているだけで朝起きたらお金が増えてるw クラウド便利ですね、ありがとうございます。
791 名前:デフォルトの名無しさん [2020/02/22(土) 10:10:20 ID:hsz3eTB9.net] >>783 嫌なら使わなくていいよ 世界で2番目に使われてる言語は諦めて田舎で畑でも耕してな
792 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 12:14:02.69 ID:4QVNajON.net] >>783 selfに関してはC++やっている奴なら、非明示でC++のメンバ関数にもPythonのself のようなもの(this ポンタ)が渡されると知っているんじゃないのか? www7b.biglobe.ne.jp/~robe/cpphtml/html03/cpp03057.html >メンバ関数には this ポンタが隠し引数として渡されるので、普通の関数と同じようには扱えないのです
793 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 13:22:04 ID:WVugcdbO.net] >>783 Python開発した当時にthisを使ってたのはC++くらいだしね。 SmalltalkやObjective-CはselfだしJavaやJavaScriptはまだ出てなかった。
794 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 13:45:22 ID:qQaAG+8d.net] レシーバーは、Ruby ではself、jQuery ではthis で、 どちらも引数で渡さないでも使えるように、実装で頑張った Rubyのインスタンス変数には、@ を付ける。 @x = 1 Ruby のself は、文脈依存。 モジュール内で、クラスの外では、Module module M p self.class #=> Module class C p self.class #=> Class end end M::C.new
795 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 13:46:07 ID:BwPLw7gM.net] なぜthisにしない……って そりゃCやC++で開発するんだから被るthisは回避するじゃん C++で使ってないselfになるのは順当 Cで作る→C++に移行 との可能性はわずかながらあり
796 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 15:28:23 ID:8UzPa+1r.net] プログラム未経験のまったくのど素人です 以下のコードを実行しても何も起こりません なぜか逆スラッシュが\になってしまい、それが原因でしょうか? 長いので二つにわけます def hangman(word): wrong = 0 stages = ["", "_______ ", "| ", "| | ", "| 0 ", "| / | | ", "| / | ", "| " ] rletters = list(word) board = ["_"] * len(word) win = False print("ハングマンへようこそ !")
797 名前:790 mailto:sage [2020/02/22(土) 15:30:30 ID:8UzPa+1r.net] while wrong < len(stages) -1: print("\n") msg = "1文字を予測してね" char = input(msg) if char in rletters: cind = rletters.index(char) board[cind] = char rletters[cind] = "$" else: wrong += 1 print(" ".join(board)) e = wrong + 1 print("\n".join(stages[0:e])) if "_" not in board: print("あなたの勝ち !") print(" ".join(board)) win = true break 如何でしょう?
798 名前:デフォルトの名無しさん [2020/02/22(土) 15:40:17.92 ID:2qBDSHyD.net] 一方うbyはklassを使った
799 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 15:57:31 ID:/f58S0oT.net] >>791 まず>>1を読んでその通りにする。話はそれからだ。
800 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 16:10:09.30 ID:mY130Jrs.net] hangman関数を定義したけど呼び出してないからでは?
801 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 16:18:17 ID:nfgptzfk.net] >>783 >えぇ……型適当すぎませんかpython…… Pythonに限らずJSやRubyなんかのOOをサポートしてる動的言語はだいたい同じ クラスやオブジェクトのベースはディクショナリ >そして自分自身が変化しないインスタンスメソッドでselfなんで書かねばならんのだ…… Cやシェルスクリプトと同じでレガシーな言語だからイケてない部分もたくさんある そういうものだと思って受け止めるしかない 開発者が使いやすいように積極的に機能追加していくような言語ではないからね Stackoverflowとか見てもわかるけど Pythonコミュニティは割と言語機能に対するコンプレックス強いから イケてないところ指摘すると逆ギレされやすいから気をつけて
802 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 16:38:39 ID:qQaAG+8d.net] >>910-911 >win = true win = True それと、break の前に、何かの文字が入っているとか?
803 名前:796 mailto:sage [2020/02/22(土) 16:51:45.07 ID:qQaAG+8d.net] >>910-911 ちゃんと動く Python は、スペースでインデントしないといけないのか。 タブでは動かない
804 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 17:20:59 ID:WVugcdbO.net] >タブでは動かない んなことない。
805 名前:796 mailto:sage [2020/02/22(土) 17:36:28 ID:qQaAG+8d.net] スペースとタブが混在したからかな? 漏れは、動かなかったけど
806 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 18:24:55.47 ID:R+gSedzt.net] 近頃の3系は混在ダメ
807 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 18:39:04.76 ID:WVugcdbO.net] 混在は別に問題ないぞ?linterで警告されるかもしれんが。 インデントに一貫性がない場合はエラーになる。
808 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 18:42:52.13 ID:lw7HhssO.net] 言語機能に対するコンプレックスというか、 「○○の言語にある◽︎◽︎がないなんて…」と思うなら、 ○○を使えばいいじゃん、としか思わないなあ。 日常的に7言語ぐらい使ってるし、経験としてはもう3言語ぐらい使えるけれど、 Pythonで書くとメリットがあるものしかPythonで書かないから、他の言語の構文がどうとかかなりどうでもいいな。 ブロックスコープがあるといいなと思うことはあるけど。
809 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 18:48:19.79 ID:/u2JjX4w.net] >>791 これ、関数定義だけのように見えるんだけど それなら実行しても何も起きないのは当然だよね
810 名前:796 mailto:sage [2020/02/22(土) 18:57:19.31 ID:qQaAG+8d.net] そのスクリプトの下の方に、こう書いておいて、 「python3 script.py abc」みたいに実行すればよい 全角空白で、インデントしたけど if __name__ == "__main__": args = sys.argv hangman( args[ 1 ] )
811 名前:796 mailto:sage [2020/02/22(土) 18:59:26.46 ID:qQaAG+8d.net] >>805 のスクリプトの冒頭に、import sys も必要
812 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 20:38:45.74 ID:NV/PY/Op.net] >>802 > 混在は別に問題ないぞ? あるだろ なんのためにインデントでブロック表現するようにしたと思ってるんだよ
813 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 21:00:17.41 ID:WVugcdbO.net] インデントにスペースとタブを混在しても問題ないと言っているんだが話理解してるか?
814 名前:790 mailto:sage [2020/02/22(土) 21:03:41.80 ID:8UzPa+1r.net] 皆さんスレのルールを守らなかったにも関わらずレスして戴きありがとうございます 今後はルールを厳守しますのでよろしくお願いします 早速ご忠告どおりに試してみたいと思います 厚かまいついでにもう一つ、逆スラッシュが\に変換されてしまう理由も教えて戴ければ幸いです
815 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 21:07:01.25 ID:+QQ7ccWr.net] 変換されてるのではなくフォントの違い
816 名前:790 mailto:sage [2020/02/22(土) 21:10:51.98 ID:8UzPa+1r.net] 独学でpythonをマスターしたというコーリー・アルソフなる御仁の「独学プログラマー」って本で勉強しているんですが、 これは、とても初心者向けとはいえない入門者なので、「超初心者が初心者になるためのpython入門」という本を買い直し ました
817 名前:790 mailto:sage [2020/02/22(土) 21:12:47.05 ID:8UzPa+1r.net] 入門者→入門書 訂正いたします
818 名前:796 mailto:sage [2020/02/22(土) 21:13:08.40 ID:qQaAG+8d.net] 逆スラッシュが、\ に割り当てられているのは、 日本語キーボードだからじゃないの? Ruby では、改行は、\n。 \ で問題ない
819 名前:790 mailto:sage [2020/02/22(土) 21:19:59.48 ID:8UzPa+1r.net] 仰るとおり日本語キーボードを使っています \で問題ないんですね
820 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 21:34:34.14 ID:NV/PY/Op.net] >>808 理解してないのはお前 念の為に言っとくけど動けばいいという話じゃないぞ
821 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 21:38:27.08 ID:/f58S0oT.net] >>814 円記号とバックスラッシュに同じ文字コード0x5Cが割り当てられているせいで、フォントによってどちらで表示されるかが異なるがデータ上は同じ文字として扱われているから気にしなくてよい。 >>813 が言ってる日本語キーボードは無関係。ついでに言うと、>>813 はこのスレのタイトルに【Ruby禁止】と付けられる原因になった有名な荒しだからスルー推奨。コテはつけてないけど書き方に癖があるからすぐに見分けられるようになるよ。
822 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 21:44:03 ID:WVugcdbO.net] >>815 流れ読めよ。エラーにならないという意味で問題ないと書いた。 推奨されない書き方だから警告されるとも書いた。
823 名前:790 mailto:sage [2020/02/22(土) 22:00:26 ID:8UzPa+1r.net] 解決しました! ちゃんと動きます 最後に関数を呼び出していませんでした お騒がせしました
824 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 22:06:36 ID:NV/PY/Op.net] >>817 流れを読めてないのはお前な コンパイルが通ればOKとか言い出すタイプか?w
825 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 22:17:04 ID:WVugcdbO.net] >>819 面倒くさい奴だな。エラーにならないという意味で問題ないと書いたし警告が出るとも書いた。 それに何か反論するならお前の考える問題のあるなし・OK/NGの基準をきちんと定義してからにしろよな。
826 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 22:42:33 ID:NV/PY/Op.net] >>820 > お前の考える問題のあるなし・OK/NGの基準をきちんと定義してからにしろよな。 それを書かずに問題ないとか言ったのはお前な
827 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 22:50:49 ID:WVugcdbO.net] だから流れ読めと言ったんだが。>>798-802は動く動かないの話しかしてないだろ。
828 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 22:57:54 ID:WVugcdbO.net] 面倒くさいからケリつけて。 >>807 どういう意味でどう問題があると言いたいのか。 >>815 動けばいいという話じゃなくてどういう話なのか。 >>819 コンパイルが通ればOKじゃなくてどうだと言いたいのか。 ケチつけるだけで内容が無いから話が進まない。
829 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 23:49:21.14 ID:nfgptzfk.net] TabError: inconsistent use of tabs and spaces in indentation https://ideone.com/3EhNsh インデントに一貫性がない場合ってのが「混在してる」場合の一つ 結論 =>「混在は別に問題ない」わけがない
830 名前:デフォルトの名無しさん [2020/02/23(日) 00:11:39.44 ID:4i+7lYMQ.net] しょもない流れww
831 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 01:30:58 ID:0yFZuBmR.net] Tab、スペースインデント混在は tabを何個のスペースにするのかわからんからエラーにしているんだろ。 Tab、スペースインデント混在の場合 スペースインデントが4スペースでtabが4スペースになるエディタでかきかきして、 で、別な人がtabを2スペースにしているエディタみたら怒るからな
832 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 06:17:14.29 ID:wq/R6u2w.net] >>823 動く動かないの話に前提なしに「問題ない」と言うお前がおかしいだけ ケリは元々ついてるぞw
833 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 08:55:09.18 ID:SvXUu1bl.net] >>824 >インデントに一貫性がない場合ってのが「混在してる」場合の一つ つまり、混在していても一貫性が保たれる限りは問題ないということなんだが。 既に>>802 に書いたこと。
834 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 09:38:02.01 ID:bBLmO4C6.net] まだ言ってるのかよ お前の問題ないの定義がぬるすぎるだけ
835 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 10:02:06.33 ID:I9CLSJWc.net] >>828 ウダウダ言ってないでコードで示して
836 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 10:30:43.78 ID:SvXUu1bl.net] これでいいか? https://ideone.com/UctDWc
837 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 10:45:39.04 ID:hiW827nh.net] >>831 そのコードを何の補足説明も無しに「タブとスペースが混在してるが、一貫性は保たれてる」と言うのは君だけだぞ
838 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 11:09:17.84 ID:SvXUu1bl.net] 結局>>802 がすべてなんだが、言葉の定義にこだわっていつまでもゴネている奴は何が言いたいんだろう。 「>>807 のツッコミは的外れじゃなくて>>802 の書き方が悪かったからだぞこのやろう」とかかね?
839 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 11:13:02 ID:SvXUu1bl.net] >>832 タブとスペースが混在しているのは明らかだろう。インデントの一貫性を破っていないからエラーにはなっていない。 補足説明要るか?
840 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 11:23:31.43 ID:4ldhSgPz.net] (本来の意味での)マンチキン現る
841 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 11:24:54.59 ID:4ldhSgPz.net] # マンチカン なら、833の顔面偏差値でも「動きがぐうかわ!」で済ませられるんだけどな。
842 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 11:35:28.05 ID:SIYyhFz4.net] [A,B,C]と、[E,F,G]の配列を [[A,E],[B,F],[C,G]]とするにはどうすればいいですか?
843 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 11:38:38.07 ID:4ldhSgPz.net] >>837 前提として必要 ・[A,B,C]と、[E,F,G]は常に同じ長さでくるのか? ・Noなら、数があわないときはどうしろなのか?
844 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 11:46:19 ID:SIYyhFz4.net] >>838 常に同じ形をしています
845 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 12:04:58 ID:4ldhSgPz.net] >>836 >>839 (1)の、Pythonらしいやり方については おれ苦手でとっさに出てこないわ。 誰かよろしく。 (2)Cっぽい考え方 カラのリストを1個用意する。 カウンターを用意する。初期値は0。 forループで、どっちかのリストの長さまで もしエラーがおきるようなら、breakさせちまえ。 各リストからカウンタのところの値を取り出して、テンポラリなリストをつくる。 予め用意してあるカラのリストに、テンポラリなリストを足す
846 名前:デフォルトの名無しさん [2020/02/23(日) 12:05:46 ID:pmgC0PIY.net] 自称月商800万!!!マナブの収益!! www.tuber-town.com/channel_detail/UCb9h8EpBlGHv9Z896fu4yeQ.html 本物の有能な新人。 しかも無名。 www.tuber-town.com/channel_detail/UC7umTzIrIJq8Xh428lj0M5A.html www.tuber-town.com/channel_detail/UCS8WbS0kQCbqVYLU26pMHoA.html www.tuber-town.com/channel_detail/UC4T-dSpkAT8xGprFjXpBeMw.html www.tuber-town.com/channel_detail/UCDPjpWErZOYsoqfeCxYTd_Q.html www.tuber-town.com/channel_detail/UCIgIVRs-VrV-pkkenE5lRBQ.html
847 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 12:06:59 ID:4ldhSgPz.net] >>840の(2)補足 「カラのリストを1個用意する。」のところで、 どっちかのリストの長さ分をもってる、中身は全部カラのリスト を作った方が、 おれ的には、なんでかしらんがうまくいきやすいと感じている。
848 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 12:14:34.21 ID:IlwHKqM0.net] list(map(list, zip([A,B,C], [E,F,G])))
849 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 12:33:29 ID:wq/R6u2w.net] >>802の書き方が悪かったごめんなさい で済む話をいつまでやってるんだよw
850 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 12:46:42 ID:SIYyhFz4.net] >>842 >>843 ありがとうございます。 質問内容について補足します。(最初からいえばよかったです。すいません。) A,B,...G...は全て(n,n,n,1)の形をしています。(全て数値です) [A,B,C,...] (m,n,n,n,1) [E,F,G,...] (m,n,n,n,1) から、 [[A,E],[B,F],[C,G]] (m,n,n,n,2) にしたいです。 >>843さんが教えてくださったものだと、(m,2,n,n,n,1)になりました。 >>842さんの方法でやってみましたが、うまくいきませんでした…
851 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 13:03:41.65 ID:4ldhSgPz.net] >>845 >(n,n,n,1)の形をしています。(全て数値です) ↑タプルじゃないの?座標かなんかなの???
852 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 13:40:44 ID:SIYyhFz4.net] >>846 3次元の画像のようなものだと思ってます。 分かりづらくてすみません。
853 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 13:43:46 ID:Lg699LWo.net] Ruby では、Enumerable#zip を使うけど p [ 1, 2, 3 ].zip( [ "a", "b", "c" ] ).to_a 出力 [[1, "a"], [2, "b"], [3, "c"]]
854 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 14:34:59.54 ID:Uzk6PZD8.net] mとかnとか意味わからんから具体例出したら?
855 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 15:06:29 ID:4ldhSgPz.net] >>847 なおさらわからんw 座標とRGB値かなんかが入ってる タプル的なもんなの?
856 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 15:17:26 ID:mVzZkmaX.net] そもそもタプルが何かわかってないんだと思う
857 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 15:18:50 ID:a7fNYQLW.net] おれがしんのえすぱーだ list_c = [ list(i) for i in zip(list_a,list_b)]
858 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 15:24:50 ID:IlwHKqM0.net] 無理やりエスパーすると、n=2の場合にA,B,...はすべて A=[[[1,2],[3,4]],[[5,6],[7,8]]] E=[[[8,7],[6,5]],[[4,3],[2,1]]] の形をしていて、 [[[[1,2],[3,4]],[[5,6],[7,8]]],...] [[[[8,7],[6,5]],[[4,3],[2,1]]],...] から [[[[[1,8],[2,7]],[[3,6],[4,5]]],[[[5,4],[6,3]],[[7,2],[8,1]]]],...] にしたいんじゃなかろうか。
859 名前:デフォルトの名無しさん [2020/02/23(日) 15:31:36.94 ID:Ofd1+MwB.net] np.array(zip(np.array(list_a).flatten(), np.array(list_b).flatten())).flatten().reshape(hoge,fuga)
860 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 18:12:37.71 ID:I9CLSJWc.net] >>834 そのコードを見てインデントに一貫性があるとは初心者はまず思わない コードを示した上で「インデントの一貫性」とは何かを 初心者に分かるように説明できなければ君の価値ないよ 何度レスしてもエラーメッセージに書いてる以外の言葉で説明できてないから コイツわかってなさそうって印象を受ける
861 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 18:32:25.06 ID:SvXUu1bl.net] >>802 の「インデントに一貫性がない」というのは TabError: inconsistent use of tabs and spaces in indentation このエラーが出る状態のことを言ったつもりだが、他に解釈のしようがあるかね? 「python インデント 一貫性」とかでググればすぐ出てくるが。 いつまで「問題ない」とか「一貫性」とかの言葉だけにこだわるんだか。
862 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 19:20:35.92 ID:ot72o1Tp.net] Tab SP Tab Tab SP SP Tab Tab これpythonでは同一レベルになるけどお前的には一貫性があると言うの?
863 名前:デフォルトの名無しさん [2020/02/23(日) 19:53:32.77 ID:/zCpM4JS.net] >>857 ガイジはガイジの学校で先生とお話ししてろカス
864 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 20:14:26.92 ID:wq/R6u2w.net] バカに用はないからいちいち絡んでくるなよw
865 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 20:18:41.95 ID:4ldhSgPz.net] >>851 そんなきもする >>853 []がいっぱいすぎてワロルwww >>854 デフォ状態からだと、 numpyをインスコしてから、 importしないとだめじゃねそれ
866 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 20:26:52 ID:SvXUu1bl.net] >>859 まったく同感。気が合うなw
867 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 20:29:17 ID:I9CLSJWc.net] >>845 a = [A,B,C,…] b = [E,F,G,…] np.block([a, b])
868 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 21:06:55.32 ID:wq/R6u2w.net] >>861 で、>>857 の回答は?
869 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 21:11:30 ID:4ldhSgPz.net] >>831 さっきまで、デジャヴュがしてすごいひっかかってたんだが 思い出したwww まだPython2.3あたり最新安定版だった頃のド初心者おれが まじでこんなクソコード書いてたwwwww うはwwwwメガナツカシスwwwwww
870 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 22:05:12 ID:SvXUu1bl.net] >>863 もともと>>802ではインデントにスペースとタブを問題ないということを説明し、ただし例外として 一貫性のない使い方(とpython処理系が判断した場合)にエラーになると補足した訳だが、 >>857はまさにそれを裏付けてくれたわけだろう。
871 名前:デフォルトの名無しさん [2020/02/23(日) 22:30:36.58 ID:uUFeESNP.net] Pythonで文字を入力させて、計算をさせたりすることは出来ますか? 例えば、 1切ると泣いてしまう食べ物は?(玉ねぎ):5点 2ニュートンと関わり深い果物は?(りんご):5点 というなぞなぞを作る時、 input1=input('切ると泣いてしまう食べ物は?') input2=input('ニュートンと関わり深い果物は?') . . . として回答に応じて10点満点のテストを作ることは可能ですか?
872 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 22:37:31.79 ID:0yFZuBmR.net] >>845 のように後出しする奴の相手は、エスパー・高脳でないと駄目だよな 並みの奴は本当に求めているもの何か分からんから振り回されるだけ 後出しクレクレは、自分ファーストで他人の手間とかのことをは考えていないからな
873 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 22:58:37.25 ID:0yFZuBmR.net] >>855 コミュ能力がない、相手がなんで理解してくれないのか推察できない奴とのやり取りは 並み脳力以下の奴では超手間がかかる。 こんな奴と普通(スムーズ)にやり取りできるのは高脳・エスパー
874 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 23:05:50.77 ID:I9CLSJWc.net] >>866 どの言語でもプログラミング言語と呼ばれるものであれば 文字を入力させて計算させることはできるぞ
875 名前:デフォルトの名無しさん [2020/02/23(日) 23:15:49.10 ID:uUFeESNP.net] >>869 解答入力欄が1とか3の数字ならint()で数値変換出来るんですけど、玉ねぎを数値変換ってどうやってするのですか?
876 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 23:20:16.80 ID:I9CLSJWc.net] >>868 コミュ力の問題じゃない ID:SvXUu1bl は単に知識がないだけ ググって見つかったエラーメッセージから知ったかしてみたが その本質的意味を理解してないからエラーメッセージに書いてる文面以上のことを何も説明できない 言語仕様的に「タブとスペースが混在してもインデントに一貫性がある」と言えるのが どういう場合か分かってないからロクな説明もできずに苦し紛れの知ったかレスを繰り返してるだけ
877 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 23:23:31.04 ID:I9CLSJWc.net] >>870 なんで玉ねぎを数値に変換したいの? 1問目に「玉ねぎ」って回答を入力したら+5点なんだよね?
878 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 23:25:33.38 ID:T8plbD6x.net] ID:uUFeESNPが求めているのは辞書なのか? {"玉ねぎ":5,"りんご":5}みたいな
879 名前:デフォルトの名無しさん [2020/02/23(日) 23:25:52.40 ID:uUFeESNP.net] >>872 そうです。玉ねぎ以外は0点。 最後にprint()表記する時に足し算したいからです。
880 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 23:42:17.47 ID:SvXUu1bl.net] >>871 そりゃあ、>>856 のエラーが出る条件の枝葉末節までは知らんよ? >>802 はそういうエラーが出ることもあるということだけで話の本筋には関係ないし。 「一貫性」にこだわるあんたは何がどうだと言いたいわけなんだろう。主張がさっぱり見えない。
881 名前:デフォルトの名無しさん [2020/02/23(日) 23:43:16.03 ID:uUFeESNP.net] >>873 いや、辞書じゃなくて計算ツールです。 理想としては、 回答入力→解答と照合→数値変換→計算なんですけど 解答と照合と数値変換の過程が分からなくて…
882 名前:デフォルトの名無しさん [2020/02/23(日) 23:46:20.80 ID:5VljjZNL.net] くだらない争いを止められない精神年齢の低さ これがpython使いです。
883 名前:デフォルトの名無しさん mailto:sage [2020/02/23(日) 23:58:51.12 ID:4ldhSgPz.net] >>876 事前に872が作ってくれたようなかんじの 正解ワード:得点 ってなってる「辞書」を用意しておく。 ほんでもって 「問題文と正解ワードが1対1対応のリスト」のリストにでもして、これまた予め集めてておく(問題集) 適当なカウンタ変数を用意する(iみたいな1文字名でおk)初期値は0 おまいの得点=0 for i < len(問題集): 出題文=問題集[i][0] 正解=問題集[i][1] hoge=input(出題文) # 回答入力 if hoge==正解: # 回答と照合 加点=辞書[正解] # 数値変換 おまいの得点+=加点 # 計算 さいごに print(おまいの得点)とでもやれば、何点とれたか出る。
884 名前:デフォルトの名無しさん mailto:sage [2020/02/24(月) 00:29:21 ID:iQYTd9Fe.net] >>874 input1=input('切ると泣いてしまう食べ物は? ') input2=input('ニュートンと関わり深い果物は? ') score = 0 if input1 == "玉ねぎ": ____score += 5 if input2 == "りんご": ____score += 5 print(score) 一番最初はこのレベルから。 何かしら超入門のチュートリアルをやりながら学んだほうがいい チュートリアルを終えれば繰り返し処理を抽出して1つにまとめたり 問題文・回答・得点をファイルから読むようにしたりできるようになる
885 名前:デフォルトの名無しさん mailto:sage [2020/02/24(月) 01:07:21.07 ID:EuMvh8nX.net] >>874 玉ねぎ以外、例えば、たまねぎ、タマネギ、玉葱などは駄目(0点)なのか りんごも同様にりんご以外は駄目なのか
886 名前:デフォルトの名無しさん mailto:sage [2020/02/24(月) 01:52:00.30 ID:9Kd/PSPa.net] >>865 お前的には「>>857 は一貫性がある」と言うことでいいのね それって人とはかなり違う感性だから会話するのは難しいと思うぞw
887 名前:デフォルトの名無しさん mailto:sage [2020/02/24(月) 02:57:11.84 ID:mxVLP7kg.net] よーしパパ縦タブでPython書いちゃうぞー!
888 名前:デフォルトの名無しさん mailto:sage [2020/02/24(月) 08:50:50.41 ID:vb10EdOX.net] >>880 横レスだが・・・ ( ゚o゚)ハッ!!! そういえば、そうだwww ニホンゴハトテモムズカシイネー
889 名前:デフォルトの名無しさん [2020/02/24(月) 13:47:09 ID:/24zPZsT.net] >>845 >A,B,...G...は全て(n,n,n,1)の形をしています。 これは例えばこういうこと? import numpy as np A= np.arange(8).reshape((2,2,2,1)) print(A.tolist()) [[[[0], [1]], [[2], [3]]], [[[4], [5]], [[6], [7]]]]
890 名前:デフォルトの名無しさん mailto:sage [2020/02/24(月) 17:02:41.23 ID:CIjc5zGo.net] n=10のときで頼む
891 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 08:30:44 ID:MVR+lhT1.net] f文字で改行する場合はどうしたら良いのでしょうか? > f'hello \n{hoge}' 上記のようにすると\nがそのまま出力されてしまうのですが
892 名前:デフォルトの名無しさん [2020/02/26(水) 08:35:41 ID:MVR+lhT1.net] >>886 すみません f文字にrを追加した場合、改行コードがそのまま出力されてしまうの間違いでした > fr'hello \n{hoge}'
893 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 09:15:01.47 ID:tNUOa1QH.net] print(r'''>>887 \nそれぐらい ググれ カス''')
894 名前:デフォルトの名無しさん [2020/02/26(水) 11:19:23.96 ID:wiEfavJ1.net] r付けるなよω
895 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 11:30:34.21 ID:fe8YPe+s.net] 修正しました pint('''>>887 \nそれぐらいググれ カス''')
896 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 11:42:23.29 ID:tTxVb/IM.net] pintが外れた
897 名前:デフォルトの名無しさん [2020/02/26(水) 11:58:06 ID:hHwy7uag.net] アホ草
898 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 00:47:35 ID:PK1Y55xx.net] 標準モジュールのreってなんでマッチした文字列を返すメソッドがgroup()なの? どういう意味?
899 名前:デフォルトの名無しさん mailto:sage [2020/02/27(木) 05:25:20.18 ID:Y+lBo+rc.net] >>893 言語を作ったやつらに聞け 俺らはただのユーザーだ
900 名前:デフォルトの名無しさん mailto:sage [2020/02/27(木) 08:58:40.02 ID:gp31hmMe.net] s///g; の名残りだろ
901 名前:デフォルトの名無しさん mailto:sage [2020/02/27(木) 11:05:33.77 ID:jJI4a3AF.net] 「if分が多いと見難いです 三項演算子を使うといいです」 https://techacademy.jp/magazine/28098 みたいな記事を読んでたんだけど三項演算子ってわかりやすいのかな? 適切な場面とそうでない場面がありそうだけどよくわからん
902 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 11:12:20 ID:xfrOpzJC.net] VBの書き方か
903 名前:デフォルトの名無しさん [2020/02/27(木) 12:33:47.54 ID:gBw0J9MB.net] 目を動かす量が減るから簡単な分岐なら参考演算しでいいよな
904 名前:デフォルトの名無しさん mailto:sage [2020/02/27(木) 12:47:41.42 ID:G3iz3let.net] 中身が3,4文字なら見やすくなるがめちゃくちゃ長いのに3項演算とか馬鹿としか言いようがない。
905 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 13:36:25 ID:j46qIfAH.net] 基本的に読みにくい Python以外でも 条件 ? 真 : 偽 って書く言語のも読みにくい 普通にif 条件 then 真 else 偽 が式になる関数型言語のは読みやすい 分岐はifが頭にある方が圧倒的に読みやすい
906 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 14:06:29 ID:9dlETTA2.net] >>893 capture groupのgroupだよ match全体を結果配列の最初の要素に格納するのは多くの言語で行われてる group(0)という命名センスは・・・まあ・・ね? pythonだから
907 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 14:23:14 ID:9dlETTA2.net] >>900 pythonの三項式が読みにくいのは当然だけど Cの記法が読みにくいかどうかは命名と慣れと抽象化次第 foo = if is_hage then hoge else fuga foo = is_hage ? hoge : fuga pythonに三項式が取り入れられる際の投票結果を見ても 今の記法はもちろんif 条件 then 真 else 偽の記法よりも 条件 ? 真 : 偽 のほうが支持されてたことが分かる
908 名前:デフォルトの名無しさん [2020/02/27(木) 15:30:14.64 ID:G6pyHvdg.net] >>893 findall使え
909 名前:デフォルトの名無しさん [2020/02/27(木) 15:31:40.73 ID:G6pyHvdg.net] >>895 s///gのgもgrepのgもpythonのgroupとは無関係
910 名前:デフォルトの名無しさん [2020/02/27(木) 15:34:26.29 ID:G6pyHvdg.net] >>902 pythonの三項演算子は表記は違うけど書く順はCと一緒だし困らない 慣れだけの問題
911 名前:デフォルトの名無しさん mailto:sage [2020/02/27(木) 16:34:42.20 ID:r1k8T+E3.net] >>905 一緒じゃなくない? flag ? "true" : "false" 'True’ if flag else ‘False’
912 名前:デフォルトの名無しさん [2020/02/27(木) 16:37:07.47 ID:G6pyHvdg.net] 細かいことは気にすんな
913 名前:デフォルトの名無しさん [2020/02/27(Thu) 18:08:21 ID:RRBu+1LX.net] >>896 三項演算子うんぬん以前に、文字列と予約語(if)との間や二項演算子の前後に 空白を置かないという、初心者にありがちな可読性を低下させる誤りがある この田島悠介という現役エンジニアの技術レベルがその程度であり、 おそらくTechAcademyマガジンというサイトもそんなレベルの記事で 溢れているであろうことは、容易に予測できる もし自分がPythonで三項演算子を使うなら、以下のように書く https://www.ideone.com/gOE9K0 後置if節とでも言えばいいのか、Haskellのガード式をイメージしている >>900 関数型言語ではないが、スレタイの某言語だと以下のように書ける https://www.ideone.com/uy4Baa
914 名前:デフォルトの名無しさん [2020/02/27(Thu) 19:10:02 ID:x1hy167u.net] >>905
915 名前:デフォルトの名無しさん [2020/02/27(Thu) 20:53:30 ID:b5CXYagp.net] https://www.ideone.com/d1O8k6
916 名前:デフォルトの名無しさん [2020/02/27(Thu) 21:11:54 ID:oAIJ90KI.net] >>896 条件によって値を返すだけなら Excelのワークシート関数のif関数みたいなのが 個人的には1番わかりやすい
917 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:06:26 ID:F/P7X7F7.net] ループでぐるぐるまわしてて 4の倍数の時は3をたすってのはどうしたらいいですか それ以外のときはそれぞれ別々にやる計算あります あとpythonの質問するところってここしか知らないですが 他にもありますか?
918 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:39:54 ID:ZhdluG0Q.net] >>912 非コミュ障害、知能が低くないなら、ここよりTeratailにしたほうが良いが でも、お前はコミュ障害もち、知能低い感じで一般の奴らからは相手にされないだろう。 結局、基地外、ゆとり、低脳の掲示板である5chぐらいしかお前の相手をしてくれないよ
919 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:41:29 ID:W1ryAU1b.net] >>912 しゅくだいの わからないところは だすひがくるより だいぶさきに せんせいに きいてね!
920 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:43:31 ID:IKP0YcdJ.net] pandasで2つのキーを指定してcsvファイルを結合したいのですが、可能でしょうか? 列Aが一致する範囲内で列Bを軸に2つのファイルを結合 pd.merge(df1, df2, on=['列A', '列B'], how='outer') としたところ、シャッフルして変になりました
921 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:45:57 ID:F/P7X7F7.net] >>913 仕方がないですがあなたもお仲間ですね
922 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:50:12 ID:W1ryAU1b.net] >>915 なにがどう「変に」と感じたのかしらんが ↓あたりのhowについてのところ + joinについてのところでもよんでみればー ttps://note.nkmk.me/python-pandas-merge-join/
923 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:53:16 ID:F/P7X7F7.net] 4の倍数でっていうのは if n%4 == 0: ____b=a+3 else: ____b=a みたいなのじゃなくて if使わなくてもa+3に なにか足すと四の倍数の時にだけ3を足すような のがあるかどうか知りたかったのです 説明不足ですいませんでした
924 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:55:49 ID:0yCkEhTI.net] pythonの環境構築が難しすぎる 3系で動かそうとしたら、デフォで入ってる2系が動いてる vagrantでsyncフォルダにScrapyのプロジェクト作ろうとしたらエラー吐くし 諦めてdjangoで糞アプリ作ってる pythonはライブラリが豊富だから魅力的なんだけど、今の活かせてない
925 名前:デフォルトの名無しさん [2020/02/27(木) 23:09:00.44 ID:mQGc2SMz.net] >>912 その日本語をそのままコードに翻訳するだけ
926 名前:デフォルトの名無しさん mailto:sage [2020/02/27(木) 23:22:44.86 ID:9dlETTA2.net] >>908 >関数型言語ではないが、スレタイの某言語だと以下のように書ける そのケースは普通case文使うやろ https://www.ideone.com/7jQ3Tb >>910 ぱっと見わかりやすそうに見えるけど 自然な思考順序に反してるからすごく可読性が低いんよね
927 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 23:28:37 ID:j46qIfAH.net] >>918 やらんほうがいいけど a + 3 * (n % 4 == 0) みたいなのは書けるが
928 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 23:48:16 ID:EmRw8gIY.net] >>902 なんでそれが通ったか逆に不思議だよな。 後置ifとも他の三項演算子とも似てるようで違うキモい文法。
929 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 00:00:23 ID:CBzuDuio.net] >>922 ありがとうございます a+3*[1,0,0,0][n%4]というのも考えましたが
930 名前: やらない方が良いですか? ifが来た方がやっぱり良いんでしょうか? [] [ここ壊れてます]
931 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 00:12:19 ID:DkMBLb2P.net] >>924 自分だけが見るんなら何やってもいいけど人が見る可能性あるなら正直読みにくいし 無駄なハックは自分がやるならいいけど他人がやってるの見るとイラッとする 人ってそういうもんだし ただそうやってコードで遊ぶのは勉強としてはとてもいい
932 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 01:04:06 ID:CBzuDuio.net] >>925 ありがとうございます よっぽどの事情がない限り 無理やりifを無くす事はやめときます
933 名前:デフォルトの名無しさん [2020/02/28(金) 01:33:44.99 ID:mVRkB3jj.net] >>923 内包表記とか関係あるのかな
934 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 02:17:43 ID:xXr38fg8.net] >>927 https://lwn.net/Articles/25304/ if <condition> then <expression1> else <expression2> この選択肢だとマイナー機能に新しいキーワードを追加しないといけない それに加えてパーサーがif文の開始だと誤解しないようにするため 括弧が必要になり醜くなる というのがGuidoがPEPが提示段階で書いてた理由 その後メーリングリストでいろいろ議論はされてるけど 本人がそれをまともに読んでる形跡はなく 自分が最初に出した案に決めたように見える https://lists.gt.net/python/python/144863/?page=1; https://lists.gt.net/python/dev/264358?#264358
935 名前:デフォルトの名無しさん [2020/02/28(金) 02:31:53.06 ID:JX0D/Sej.net] ちゃんとメーリスから議論を拾ってくる有能
936 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 13:49:30.68 ID:GfVfgYuK.net] >>919 Windows 10, WSL, Ubuntu 18.04 では、 python/python3 コマンドは別のものだから、間違う訳ないw which python3 /usr/bin/python3 file /usr/bin/python3 /usr/bin/python3: symbolic link to python3.6 which python /usr/bin/python file /usr/bin/python /usr/bin/python: symbolic link to python2.7
937 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 23:30:10 ID:/I0WWb67.net] pyenv導入したいんですがいくつか疑問があります まず、既にエイリアスに python="/usr/local/bin/python3" python2="/usr/bin/python" という風に設定してるんですが、pyenv導入する場合はこれは外さないとまずいですかね? そして既に入れてるpipのライブラリはpyenvの方のPythonでも使えるんでしょうか。 最初の導入ばかりでこの辺りの説明してるサイトが全然見つかりませんでした もし良ければ回答お願いします。
938 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 11:11:22.64 ID:VOzt624K.net] とりあえずは外したほうがよい。 というか二重三重の設定をメンテするなんて大変だろ? pyenv自体はそこらへんのエイリアスをいい感じにやるだけだから pipも普通に使えるし変わらんよ。 ただ、いろいろ環境がわからなくなることはよくある。 個人的にanacondaにパス通す方がよっぽど事故が少ないんだが、 公式原理主義者はどうも納得しないぽい。
939 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 11:17:08.59 ID:i8bha/XW.net] もうPythonの環境周りは滅茶苦茶だね 初心者は環境構築だけで丸一日費やして嫌になってやめていく 普及したことが皮肉にも普及の妨げになっている
940 名前:デフォルトの名無しさん [2020/02/29(土) 11:58:39.68 ID:KnuPGJb+.net] 仮想環境が当たり前みたいな記事ばっか書いてるアホどものせいだろ 全員電ノコで4ツ切りにして海に捨てたい
941 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 12:07:24.22 ID:4aY82yvr.net] venvもつかえんザコとかおるの? 無視しても良いんじゃね
942 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 12:54:53.32 ID:PDnkp16t.net] 困ってる奴が何のos使ってるのか知らんが、windowsならpathを弄れば何とかなる 俺も勉強のために最新入れてインタラクティブモードでpython起動したら2.7(?)とかだった cドライブをpython.exeで検索したら20件ぐらい出てきて色んなアプリでpythonが使われていた 仕方がないので自分が意図してインストールしたpythonのpathを一番先頭に持っていったら 自分が意図してインストールしたpython.exeを起動できた
943 名前:デフォルトの名無しさん [2020/02/29(土) 13:00:09.94 ID:x6UuZEs8.net] C#+Visual Studioが至高
944 名前:デフォルトの名無しさん [2020/02/29(土) 13:10:46 ID:/XxbCwlB.net] >>932 ありがとうございます! 2系と3系を同時に使いたいんですがそれはもう毎回切り替えるしか手がないんですかね?
945 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 13:42:38.05 ID:i8bha/XW.net] >>935 **envというプロダクトが多すぎて検索しただけで萎える しかも廃れた古いものもヒットするので、全くの新規さんが独学でやるには二重の苦難だろう こんなんじゃPythonの未来は暗いと感じる
946 名前:デフォルトの名無しさん [2020/02/29(土) 13:54:03.49 ID:3sltTQiA.net] >>932 ほんそれ
947 名前:デフォルトの名無しさん [2020/02/29(土) 13:56:01 ID:3sltTQiA.net] >>938 切り替えるんじゃなくて どっちの設定もしない コンソールを開いてから どっちを使うか選択(コマンド実行)
948 名前:デフォルトの名無しさん [2020/02/29(土) 13:57:46 ID:3sltTQiA.net] ちょっと判りにくかったかもしれんが 要するに混ぜるなってこと 両方入ってるのは問題無い 環境を混ぜるのが問題
949 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 14:17:00 ID:xglx3xdS.net] >>938 Win系なら、両方入ってる場合は pythonとうったら2系 pyとうったら3系 がデフォやぞ .pyをダブルクリックで実行したい ってのはかなわぬ願い バッチかませろ
950 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 14:26:25.10 ID:6BfVplee.net] winもpyに.py関連付けてたらshebang書けば使い分け出来るで
951 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 14:36:00.26 ID:/XxbCwlB.net] >>942 ありがとうございます、とりあえず言われた通りコマンドで選択してみます。 後言い忘れてましたがOSはMacです…エイリアスで色々やってるのはpythonコマンド だと2系が自動で選択されるからです。環境描き忘れててすみません。
952 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 14:45:21.95 ID:xglx3xdS.net] >>945 なんというぐうくそ
953 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 23:48:35 ID:6IdZMwnf.net] >>936 パスの順番を変えたら、他のアプリが動かなくなるけど、それは良いのか? >>945 Mac は最初から、Python, Ruby が入っているから、その環境に影響を与えるとまずい。 それらを使っているアプリがあるから だから、仮想を使う Docker も良いかも
954 名前:デフォルトの名無しさん [2020/03/03(火) 09:40:24.54 ID:Zy/UEfGJ.net] seleniumにてfirefoxの既存のプロファイルを使用する方法はありませんでしょうか? どうにも既存のプロファイルを読み込まなく難儀しています...
955 名前:デフォルトの名無しさん [2020/03/03(火) 09:43:07.58 ID:Zy/UEfGJ.net] コードはたったコレだけなんですが全くといいほど読み込みません from selenium import webdriver fp = webdriver.FirefoxProfile('/home/user1/.mozilla/firefox/zaxxxxxt.default') browser = webdriver.Firefox(fp)
956 名前:デフォルトの名無しさん mailto:sage [2020/03/03(火) 11:13:11.66 ID:GznFhYco.net] >>948-949 https://techiedelight.com/compiler/?ScFS ↑ここにかんすうはってきたので fp = get_profile_path("default") こうやってさがさせてみそ それでも、なんでかうまく読まないことあるけど。。。
957 名前: あと、基本的なところだが、 geckodriverのバージョンが古いと失敗すること多い。 [] [ここ壊れてます]
958 名前:デフォルトの名無しさん mailto:sage [2020/03/04(水) 02:21:30.44 ID:n/osJUKI.net] >>950 ありがとうございます fp = get_profile_path("default") browser = webdriver.Firefox(fp,executable_path=’場所') 作って頂いた関数を使用したのですが、やはり新規プロファイルを読み込まれ既存のプロファイルが読み込まれません Chromeでは既存のプロファイルが読み込まれるのですが、如何せんChromeではmeta refreshをdisable出来ないため firefoxを利用したいのです プロファイルの場所は初期値 geckodriverは0.26.0なので問題ないと思うのですが…
959 名前:デフォルトの名無しさん mailto:sage [2020/03/04(水) 12:59:09 ID:Q2O9cj6l.net] >>951 プロファイルの場所探すところを改造せんといかんのかもしらん 泥臭いやりかただと、 ターゲットフォルダの中身全部をリストにして .defaultで終わってるものをとる。みつかったらbreak みたいなー
960 名前:デフォルトの名無しさん [2020/03/04(水) 19:58:03.24 ID:fq3DQX8J.net] >>933 アナコンダインストール一発ではだめなの?
961 名前:デフォルトの名無しさん [2020/03/04(水) 20:13:57.82 ID:O0VNA921.net] 駄目に決まってんだろアホ お前だろ「Anacondaをインストールする2020最新」とかいうアマゾンの中華製品みたいな信用度の記事Qiitaに書きまくってるゴミは
962 名前:デフォルトの名無しさん mailto:sage [2020/03/04(水) 23:19:20.62 ID:nNNW6i++.net] Anaconda は、Python が入っていない、Windows 限定 Mac, Linux など、最初から、Pythonが入っているものについては、 初心者には無理なので、プロに聞いてくださいと、 「みんなのPython 第4版、2017」にも、書いてある つまり、最初から入っている、Pythonと両立させるのは、仮想が必要だから、難しい
963 名前:デフォルトの名無しさん mailto:sage [2020/03/05(Thu) 04:04:41 ID:eClduRvk.net] つまりPythonを使うならWindowsという時代が来たということだな 最初からPythonを入れてシステム的に依存する仕組みにしたLinux系は下手打ったよなあ
964 名前:デフォルトの名無しさん [2020/03/05(Thu) 07:16:32 ID:s/vnmaxn.net] システムとは別にPythonいれてそっち使えばいいやん 仮想可は実行環境だからまた別の話
965 名前:954 mailto:sage [2020/03/05(Thu) 08:01:54 ID:PBcHTAfh.net] 仮想環境は、Ruby のrbenv・RVM とか、Python のvenv とか、 これが素人には難しすぎるから、入門書には書いていない! Mac・Linux では、仮想環境になる
966 名前:デフォルトの名無しさん [2020/03/05(Thu) 12:41:11 ID:s/vnmaxn.net] >>957 >仮想可 じゃなくて、仮想環境でした
967 名前:デフォルトの名無しさん [2020/03/05(木) 15:08:38.13 ID:zs+Uexwr.net] 超初心者です 100回動作を繰り返すとします 繰り返しn回目でn回〇〇するといった場合どう記述すればいいんですかね? たとえば30回目の動作で30回ボタンを押す、55回目で55回ボタンを押すというような感じです
968 名前:デフォルトの名無しさん mailto:sage [2020/03/05(木) 15:15:03.78 ID:CNNRfBpe.net] それ、pythonの質問じゃなくてどうプログラムしたら良いのかの プログラミング自体の質問だから 自分で考えなさい
969 名前:デフォルトの名無しさん [2020/03/05(木) 15:20:01.54 ID:ZS+YL4ip.net] >>960 for n in range(100): for i in range(n): doSomething()
970 名前:デフォルトの名無しさん [2020/03/05(木) 15:54:57.40 ID:zs+Uexwr.net] >>961 すいません気をつけます >>962 理想通りできました ありがとうございました!
971 名前:デフォルトの名無しさん mailto:sage [2020/03/05(Thu) 16:30:55 ID:wTyki8t2.net] pythonはメジャーになって逆に環境構築に関してはひどい状況になったかもな。。 今正確にやるならdockerで閉じ込めろって話になるが、それ初心者には言えんわ。
972 名前:デフォルトの名無しさん mailto:sage [2020/03/05(木) 19:06:49.16 ID:yi4ntJTq.net] dockerは厳しいわ 流行っているから本買って来て読んでみたけど そもそも何をするソフトなのか、何の役に立つのかすら理解できなかった
973 名前:デフォルトの名無しさん mailto:sage [2020/03/05(木) 19:21:28.75 ID:wTyki8t2.net] やっぱり最低限は環境変数とPATHは理解してもらってanaconda入れてPATH通すってやり方かなと思う。 最悪問題起きても環境変数とPATHがわかってればデバッグできるでしょ。
974 名前:デフォルトの名無しさん mailto:sage [2020/03/05(Thu) 19:43:37 ID:D1lGE/tK.net] google も動かすまでが結構大変なんだよな 初心者には難しいかな
975 名前:デフォルトの名無しさん mailto:sage [2020/03/05(Thu) 20:16:30 ID:dUqOCP9n.net] >>967 おまえのぐっぐるとはなんのことやらエスパーする余地がある さすが、自然言語が不自由なスッドレだなw
976 名前:デフォルトの名無しさん mailto:sage [2020/03/05(Thu) 20:26:45 ID:Fk1ZMAni.net] (200, 200) のnumpy配列を(1, 80, 80)にしたいです お願いします
977 名前:デフォルトの名無しさん mailto:sage [2020/03/05(Thu) 20:27:11 ID:Fk1ZMAni.net] 間違えました (200, 200) のnumpy配列を(1, 200, 200)にしたいです お願いします
978 名前:デフォルトの名無しさん [2020/03/05(Thu) 20:57:29 ID:s/vnmaxn.net] 丸投げはやっとるん?
979 名前:デフォルトの名無しさん [2020/03/05(Thu) 21:01:02 ID:fCV+9Bpk.net] np.expand_dims
980 名前:デフォルトの名無しさん [2020/03/06(金) 03:11:42.52 ID:9EQdyE3d.net] python3で質問です for i in list1: if ("A" or "B") in str(i): list2.append(i) elif "C"==str(i) or "D"==str(i) or "E"==str(i):#←ここ list3.append(i) else: list4.append(i) というコードがあるのですが、#部分が汚いというか煩雑で困っています。 いずれは#部分の比較文字列が増える可能性があるので、例えば ("C" or "D" or "E")==str(i) みたいな感じでスマートに書きたいです。(ちなみにこれだと最初のCしか比較されませんでした。。。) #部分をどうしたらいいでしょうか? また、最終的には#部分で比較する別ファイルからリスト型に取り出してぱーっと比較したいです その場合のアルゴリズムも(ファイルの読み込み操作とかは不要です)できたらほしいです
981 名前:972 [2020/03/06(金) 03:14:05.66 ID:9EQdyE3d.net] codepad.org/QoncQu10 すみません、、、インデント崩れました これです
982 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 03:40:12.72 ID:HMS8G3Kn.net] >>973 in演算子でいいじゃん if 比較したい値 in 値の入ったリスト
983 名前:デフォルトの名無しさん [2020/03/06(金) 03:41:39.25 ID:zMfd3B+p.net] そんなもんお前… str(i) in ('C', 'D', 'E') やろ ところで、最初の ('A' or 'B') in str(i) は想定通りに動作してないと思われる 'A' in str(i) 相当だから もう少し演算子について正確に学んだ方がいい
984 名前:デフォルトの名無しさん [2020/03/06(金) 06:32:33.66 ID:MUtvLxi6.net] 文字列化すると"A" になるデータってどんなのかな
985 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 06:56:59.42 ID:qYlx8Qkc.net] >>977 ABO式血液型とカー?(ちょうてきとう)
986 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 07:06:27.86 ID:Z17kfdKR.net] >>973 別にifとelifをABCの数だけ並べてもいいでしょ? スマートな書き方は慣れてからでもいいでしょ >ぱーっと比較したい 後半は急に雑な説明になって 何がしたいかよく分からん?
987 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 08:46:55.47 ID:+VKnEuTi.net] >>979 >ぱーっと比較したい 俺、思うに、それが str(i) in ['C', 'D', 'E'....] のことじゃないのか
988 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 09:24:34.72 ID:6R/8Uuzj.net] >>973 リストの内容によってはこういう方法でもいける。 import re list=["A","B","C","D","E","F"] sList=",".join(list) list2=list2+re.findall("[AB]",sList)
989 名前:972 [2020/03/06(金) 15:01:17.68 ID:yez0RtUo.net] >>980 これで#部分でやりたかったことが出来ました。 ありがとうございます AとかBは簡略化のためで血液型とかじゃないです 比較する値(list1の各要素)には"ACC"みたいなものが来るようになっていて Cが含まれていても”CX"みたいになっていたらelseに分岐させる感じの処理です 最初の部分の if ('A' or 'B') in str(i): も左をリストにして簡潔にしちゃいたいのですが さっきのやり方(例えばif str(i) in ['A','B']:)だと"AA"とかがstr(i)に来たときに漏れてしまいます str(i)にAかBが含まれているとき(例えばAB,AF,AA,BE)に分岐させる処理はどう書いたらいいでしょうか? 最初の
990 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 15:10:11 ID:6R/8Uuzj.net] なかなかの後出しだな。 単にA,Bが含まれるという条件なのか、A,Bから始まるのか、 C〜の文字列は絶対A,Bは含まないのかなど、細かい条件で全然違うぞ
991 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 16:29:59 ID:Z17kfdKR.net] >>982 一言でいうと処理対象の複雑さによって処理が異なる もし文法構造を有しているならパース処理が必要になるが 字の配列だけの問題なら分岐だけで処理できる フローチャート的なif文の分岐が基本中の基本だから 短く書くやり方は基本が分かってからにしよう 具体的には先頭から一字ずつ判断して行けばいい 先頭の文字がAの場合、Bの場合、 それぞれについて次の文字がAの場合、Bの場合…… ってif文をネストしていけば書けるはず
992 名前:デフォルトの名無しさん mailto:age [2020/03/06(金) 18:02:59.48 ID:MP/8tjp8.net] pandasで以下のようなcsvファイルを読み込み、 burgers,meatballs,eggs chutney turkey,avocado 以下のような2次元配列に変換したいです。 [['burgers', 'meatballs', 'eggs'], ['chutney'], ['turkey', 'avocado']] pandas.read_csv(..., heade=None).to_numpy().tolist()だとnanが含まれてしまいます。 for文でnan削除するよりスマートな方法はないでしょうか?
993 名前:972 [2020/03/06(金) 20:16:06 ID:9EOp8vfg.net] >>983 A,Bが含まれるという条件です 例えばAjsやskBfです Cの文字列は絶対に含みません 後出しになっちゃって本当にすみません。。。 set()とか使って出来ないかなと思ってさっきも色々試したんですけどだめしでした。。。
994 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 20:45:36.78 ID:n2xpzai7.net] >>985 pandasじゃなくcsv.reader使ったのでよくない? list(csv.reader(file))で意図した配列にできるよ
995 名前:984 mailto:sage [2020/03/06(金) 20:56:23 ID:MhiZvrbz.net] それでいいです。ありがとうございました。
996 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 20:57:39 ID:n2xpzai7.net] >>982 any(x in str(i) for x in ['A', ‘B’]) pythonの場合このケースは正規表現のほうがわかりやすいかもね
997 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 20:58:36 ID:n2xpzai7.net] あと、str()必要??
998 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 21:49:10.87 ID:gkPkCuAw.net] perlみたく安直には出来ないようになってるからね if (/C|D|E/) ショウガナイね そもそも最近のワカモンは正規表現の存在自体知らないんだよ 本当に、聞いたことすらないんだよ
999 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 21:52:24.21 ID:gp44GQTA.net] 正規表現はもう古すぎだよなあ あんな暗号みたいなの覚えられんし方言もあるし しかもデバッグが非常に難しい
1000 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 21:56:09.57 ID:Fgd+2Xim.net] そんなあなたにRaku
1001 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 22:12:28.48 ID:7d5kGJiP.net] 正規表現使わずにプログラムするとかそっちのが苦痛だわ
1002 名前:デフォルトの名無しさん [2020/03/06(金) 23:07:37.81 ID:MUtvLxi6.net] >>973 プログラムで処理できる 完全なサンプルデータを示してほしい
1003 名前:972 [2020/03/06(金) 23:29:13 ID:9EOp8vfg.net] >>989 すごいです。。。できました。。。 正規表現は一応貪欲なんとかとかかるーく使ったことある程度です 今回はうまくいけたのでヨシ!とします。。 any使ったことなかったので精進します
1004 名前:デフォルトの名無しさん [2020/03/07(土) 00:41:33.17 ID:k5ibAr7h.net] まず新スレ立てろデブ https://mevius.5ch.net/test/read.cgi/tech/1583509252/
1005 名前:デフォルトの名無しさん mailto:sage [2020/03/07(土) 00:50:58.92 ID:CmL9X7tL.net] >>992 俺は自分が書いた正規表現ですら、後で見ると何にマッチするのかわからんってのが あるからコメントが必須だからな。 すごい奴のすごい正規表現はもう何にマッチするのか文章の説明がないとさっぱりわからん
1006 名前:デフォルトの名無しさん mailto:sage [2020/03/07(土) 01:00:25.56 ID:AvLdWjOA.net] あれは魔術師の呪文と同じ
1007 名前:デフォルトの名無しさん [2020/03/07(土) 01:04:17.34 ID:k4ffI6Av.net] うまな
1008 名前:デフォルトの名無しさん [2020/03/07(土) 01:04:29.33 ID:k4ffI6Av.net] うめ
1009 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 64日 9時間 7分 36秒
1010 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています