暇つぶし2chat TECH
- 暇つぶし2ch345:デフォルトの名無しさん
20/07/31 13:30:28 GxmlUbA1.net
サンマーク出版の書籍タイトルみたいだなwww

346:デフォルトの名無しさん
20/08/01 10:54:24 ul3104AO.net
ソース(サイトから拾ってきてるので間違いは多分ない)は数行でエラーコードが長いものの質問したいのですがありですか?環境の問題だと考えて入るのですが。
エラーコード長すぎてスレに貼れないのでその場合どうするといいですか?

347:デフォルトの名無しさん
20/08/01 10:58:38 tTe6cA/F.net
>>334
スクショ取ってImgur辺りにアップロードして
ここにリンク張ればとりあえず見れる

348:デフォルトの名無しさん
20/08/01 11:03:13 biQ1QRTH.net
おーい>>1読んでっかー?

349:デフォルトの名無しさん
20/08/01 13:26:25.86 GZTqAP90.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw

350:デフォルトの名無しさん
20/08/01 17:32:56.81 TxHAnvn8.net
>>334
335がうそついてるので
  >>1

351:デフォルトの名無しさん
20/08/01 23:12:33 qVnOzDD7.net
スクレイピングの本で一番のおすすめは何でしょうか?
これからpython2年生をやる予定です
オライリージャパンのセンザンコウが表紙のはクソみたいなのでやめました

352:デフォルトの名無しさん
20/08/01 23:22:09 cVk77Hxz.net
互換性がないからpython3年生から始めなさい

353:デフォルトの名無しさん
20/08/02 00:33:55.29 OrrTO0fy.net
>>339
評価見たらホントにクソっぽいな

354:デフォルトの名無しさん
20/08/02 04:44:26.68 yz3gxwYF.net
>>339
それである程度基礎が理解できるようになってきたら
次は中級者向けで広く浅いライブラリ紹介にとどまるけど
「Pythonによるスクレイピング&機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみよう 」クジラ飛行机
なんてのはどうでしょう?
自分のやりたい事とマッチングするのが


355:見つかるかも?



356:デフォルトの名無しさん
20/08/02 09:39:52.63 dNbCIXPQ.net
うちもスクレイピングしたくて本買ったけど、結局ネットで調べてる情報でやりたいこと完成したから1ページも読まないまま置いてある
目的が先に達成されてしまうとやる気がおきん…

357:339
20/08/02 09:40:46.16 E4bEQw/0.net
回答ありがとうございます
とりあえずpython 2年生やって、342さんのをやってみますね
ちなみに今は面倒くさいことはpython にやらせようをやっています
これも結構難しいです
理解には三カ月ぐらいかかりそう

358:デフォルトの名無しさん
20/08/02 10:24:29.39 VdhKDmoH.net
純粋にスクレイピングがやってて面白くない。
ほとんどテクニックだけの世界で。
その点ではWebサーバサイドも似ているけど、こっちはまだ作る楽しみがある。

359:デフォルトの名無しさん
20/08/02 12:29:39 uvJ0AhRU.net
>>339
pythonのマニュアル

どうしてみんなマニュアルを読まないんだろうね
一番ちゃんと書いてあるのに

360:デフォルトの名無しさん
20/08/02 13:50:34.99 A/1sqmpg.net
スクレイピングやるならPythonよりJavascript読めるようになる方が重要だよ

361:デフォルトの名無しさん
20/08/02 15:30:53.14 uiYqbxLc.net
jsとcssセレクタだね。大事なのは

362:デフォルトの名無しさん
20/08/02 15:57:45.72 nzilHH7Z.net
正規表現による力技でもできるけどな

363:デフォルトの名無しさん
20/08/02 17:19:38.08 Src0piYd.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw

364:デフォルトの名無しさん
20/08/02 18:37:38.07 rl9xr/mh.net
beautifulsoupでは取れないサイトが多すぎる。
で、結局変化後のDOMに追随できるSeleniumの学習に進むことになるわけだが…
そこまでやるなら、さらにjsとcssも分かってるとくればpuppeteerやtaiko使った方が楽という罠

365:デフォルトの名無しさん
20/08/02 18:41:50.96 HU2rRSvM.net
seleniumを使っていると悪質botとみなしてアクセスブロックするサービスを使う増えてきていて、スクレイピングはいずれ廃れる技術。

366:デフォルトの名無しさん
20/08/02 19:07:24.40 rl9xr/mh.net
seleniumとかは本物のブラウザを操作してアクセスしてるわけで、そんなん掻い潜る方法はいくらでもある。ただしrecapchaに類するパズル解かせて人間か判断するブロックはいかんともしがたいが…
そこは一旦停止させて人間に入力させるようにするしかない

367:デフォルトの名無しさん
20/08/02 19:17:01.80 hOgQnHyE.net
株価のデータを引っ張ってくるにはどうするのがベストなの?

368:デフォルトの名無しさん
20/08/02 19:30:46.42 hD/B3n6L.net
pandas detareader使えよ

369:デフォルトの名無しさん
20/08/02 22:48:40 afjdMLlX.net
最初から、Ruby on Rails で、Selenium Webdriver が楽。
DB も付いてる

Github Actions のCI のシステムテストで、
Capybara で、Headless Chrome を使うとか

370:デフォルトの名無しさん
20/08/02 23:05:01 iSPzySye.net
Rubyなんて死んだ言語今更やるくらいならPythonでいいだろ

371:デフォルトの名無しさん
20/08/02 23:13:41 rl9xr/mh.net
selenium自体はJava製で、各種言語向けのドライバーが出ています。
その中で最も人気なのがPython向けdriverで、
最も不人気なのがRuby向けdriverです。

372:デフォルトの名無しさん
20/08/03 00:04:38 V89o1FHv.net
その死んだ言語と比べてもスクレイピングに必要な言語機能もライブラリも劣ってるのがPythonなんだよなぁ

今どきbs4+selenium+pythonで苦労してる人ってちょっと大丈夫?って思っちゃう

実際につかったことなければ苦労も分からないか

373:デフォルトの名無しさん
20/08/03 00:08:24.68 0nT8uF8W.net
便所漁りでイキってて草

374:デフォルトの名無しさん
20/08/03 00:09:30.68 pdVx07YE.net
ガイジ芸風変えたん?早く死になよ

375:デフォルトの名無しさん
20/08/03 08:21:37.31 PbA5kDcu.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw

376:デフォルトの名無しさん
20/08/03 11:05:29.54 3aFKjSal.net
>>353
>一旦停止させて人間に入力させるようにするしかない
ここを上手く工夫して
「AIで文字認識の研究にご協力ください」っていう偽サイト造って
そこに問題解く人を大量に誘導する仕組みにして
captchaを人間に代行させる自動化プログラムらしきものを観たことがある

377:デフォルトの名無しさん
20/08/03 11:23:52 MCqJ1GDb.net
>>363
その偽サイトにスクレイピングボットがアクセスしてくるという地獄絵図www

378:デフォルトの名無しさん
20/08/03 11:30:55 VqnR0HKx.net
一種の(良心的?)MITMなのでbotにアクセスされても困らないというか
botが来る理由が判らない

379:デフォルトの名無しさん
20/08/03 11:41:09 MCqJ1GDb.net
>>363
2captchaだね。
1000ReCaptchaあたり3ドル取る有料サービス。
現在の平均解決時間は45秒とのこと。

380:デフォルトの名無しさん
20/08/04 01:30:57.80 8b2QE9nU.net
pythonでaccessを実行したいと考えています。
いくつか調べてみましたがさっぱり分からず。。。
具体的にはaccessでファイルを出力する際にボタンをクリックするのですが、その作業を複数回する必要があり、それを自動化したいと考えています。
pythonでデータベースを読む込む必要はなく、その作業だけを自動化したいです。
どのようなモジュールを使えばできるでしょうか?
低レベルな質問で恐縮ですが、お答えいただければ幸いです。

381:デフォルトの名無しさん
20/08/04 01:51:06.44 8QweQuKX.net
>>367
死ね

382:デフォルトの名無しさん
20/08/04 06:59:05.33 jwMzG50i.net
>>367
PyAutoGUIみたいな自動操作系のライブラリを使う

383:デフォルトの名無しさん
20/08/04 09:37:31.18 5xy5U4C9.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw

384:デフォルトの名無しさん
20/08/04 09:49:27.55 d/TW9CWz.net
辞書でキーが存在しないときにNone返してくれるgetって便利なのあるけど
これの配列バージョンは無いの?

385:デフォルトの名無しさん
20/08/04 10:07:57.19 b4l1hFqy.net
335 336 338
コードもエラーコードも1のリンクあるものに貼り付けるのが正しいのでしょうか?
悩んでいたのですが、コードが人によっては不愉快になるかもしれないのでその質問自体は自粛しておこうかと思ってます。
内容的にはポイ活的なコードですが。

別の質問なのですが、会社のパソコンで休み時間などにPythonを勉強したいのですが会社のパソコンにはソフトのインストールはできません。
ウェブ上でseleniumとかも使えるサイトは無いですよね?
会社でポイ活のコードとか作動させる気はなく勉強用としてです。

386:デフォルトの名無しさん
20/08/04 10:35:35.31 vYzFyP25.net
>>372
Pythonのページいけよ

387:デフォルトの名無しさん
20/08/04 10:47:55.95 0aBwwNst.net
普通に家PCをリモートでいいんじゃない、スマホからでもつなげるし

388:デフォルトの名無しさん
20/08/04 10:55:22.65 njKuoHDi.net
>>372
>上半分
質問すること自体が不愉快になるぞ
規約違反チネ!!!(・∀・)

389:デフォルトの名無しさん
20/08/04 10:56:56.50 0aBwwNst.net
俺もポイ活勢だけどあまりこの話は余所で出さない方がいいぞ
ポイ活自体印象相当悪いからな

390:デフォルトの名無しさん
20/08/04 12:31:40.25 DzQriKoF.net
>>367
win32com を使う
access でボタンを押したときに呼ばれてる関数を探す
win32com からその関数を実行する

391:デフォルトの名無しさん
20/08/04 12:50:22.67 5Wn6uTlk.net
373
なるほど。わかりました。
374
環境作ればリモートもたしかによさそうな気がしてきました。p関連は最終的に自分で勉強していきます。
3


392:75 すみません。ですが1を読んでもわかりません。



393:デフォルトの名無しさん
20/08/04 13:42:38.77 yjO/bVZu.net
python 3.9がリリースされたらしいんですが
公式見ても見つかりません
誤報でしょうか?

394:デフォルトの名無しさん
20/08/04 14:09:02.43 Nxnzt8Qr.net
>>367
URLリンク(docs.microsoft.com)
URLリンク(docs.microsoft.com)
URLリンク(docs.microsoft.com)
URLリンク(softcell-japan.com)
URLリンク(www7b.biglobe.ne.jp)
URLリンク(www.isa-onlineshop.net)

395:デフォルトの名無しさん
20/08/04 14:12:09.06 rbslZ05+.net
3.9はまだベータ、正式版は10/5の予定
ダウンロードページの真ん中あたりにPython 3.9 Release Scheduleってあるじゃろ

396:デフォルトの名無しさん
20/08/04 15:17:38.90 d/TW9CWz.net
a = 0
if True:
_a = 1
else:
_a = 0
print( a )
一行目のa=0ってかならずaが1か0が代入されるのでいらないと思うけどみなさんは書く派ですか?
自分は何の変数があるかどうかぱっとみわかりやすいので書く派なんすけどa以外にも複数変数あるときも書くものかなって。
でも結局最後の行見ないといけないし、やっぱこの変数使わないってなったら編集の面倒さも2倍だなって

397:デフォルトの名無しさん
20/08/04 15:45:59.52 gYE3Uom9.net
a = 1 if True else 0

398:デフォルトの名無しさん
20/08/04 16:01:09.56 DzQriKoF.net
else には行かないから
a = 1
だけで充分だろ
もし変数観るなら
b = True
a = 1 * b
#aは1
b = False
a = 1 * b
#aは0

399:デフォルトの名無しさん
20/08/04 16:33:07.59 .net
>>383
その1や0の部分に他の変数が出てくる時見づらくないですか?
関数型みたいに他の変数の数だけ三項演算子で記述するってことかな?
それなら見やすいと思った
>>384
>else には行かないから
その通りです
なぜならif Trueになっているからです
そこから下はちょっと何言ってるかわかりませんでしたすいません

400:デフォルトの名無しさん
20/08/04 17:52:50.03 rLl+qUK9.net
python基本好きだけど、三項演算子とlambdaはブサイクで嫌い

401:デフォルトの名無しさん
20/08/04 18:32:48.64 njKuoHDi.net
>>378 >>385
おまえらまとめて
初心者の質問板 URLリンク(matsuri.5ch.net) へ(・∀・)カエレ!!!
もう二度とくるなよ

402:デフォルトの名無しさん
20/08/04 18:34:04.52 Z0Jf3hFU.net
>>379
これでしょ
俺も数時間前に見て、python公式確認しに行っちまったよ
URLリンク(i.imgur.com)
URLリンク(codezine.jp)

403:デフォルトの名無しさん
20/08/04 19:29:59 .net
>>387 なんか見えてきたので間違ってるかもしれないけど一応メモしとく

a=1
b=0
if True:
_a=1
_if True:
__b='1,1'
_else:
__b='1,0'
else:
_a=0
_if True:
__b='0,1'
_else:
__b='0,0'
print(a,b)

こういう書き方のコードって結構見る
if Trueの部分が真偽どちらであろうと結局a,b出力されるじゃんって感じのコード

実際見るコードはaもbも複雑で相互作用しまくってるけど
結局見やすさを追求するなら、変数が出てくる部分をどうにかこうにか関数でやればいいじゃんって思ってきた
f1=lambda n:1 if n else 0
f2=lambda n:1 if n else 0
f30 = lambda n1:lambda n2:'('+str(n1)+','+str(n2)+')f30'
f31 = lambda n1:lambda n2:'('+str(n1)+','+str(n2)+')f31'
f4 = lambda n:1 if n else 0
ab=lambda a:f30(a) if f4(a) else f31(a)

n = f1(True)
a = f1(n)
b = f2(False)
print('a = '+str(a))
print('b = '+str(b))
print('(a,b)='+ab(a)(b))

最終的に使われている変数は何か、が圧倒的に見やすい
いらない変数を削除・編集したときに、削除・編集すべき関数も瞬時にわかる

404:デフォルトの名無しさん
20/08/04 21:13:38.93 HzuBP/6f.net
Pythonしか書かない人とCも書く人ではコーディングスタイルが多少変わってもおかしくない
とりあえず出てくる変数は先に宣言した方が見やすかったりするのさ。
後でアルゴリズムを変える可能性を考えると必ず式で一発で評価できるか微妙なときもあるしね。

405:デフォルトの名無しさん
20/08/04 23:13:53 tuSGsgmJ.net
初歩的なことですまないが、
if True:
って、条件の対象って何?

406:デフォルトの名無しさん
20/08/04 23:51:00.57 KNZwnkDB.net
def show_start_menu():
root1 = tk.Tk()
root1.title(u"データ分析")
root1.geometry("400x300")
# Label
Static1 = tk.Label(text=u'分析するデータの個数を選択して下さい')
Static1.pack()
# Button1
Button1= tk.Button(text=u'1データを分析', width=25)
Button1.bind("<button1-1>",print('click'))
Button1.place(x=105, y=60)
root1.mainloop()
これを実行するとウインドウ開くと当時にclickって表示されるんですけどなんででしょう?
button1を左クリックしたらclickと表示されるようにしているつもりなんですが・・・。

407:デフォルトの名無しさん
20/08/05 00:23:56 .net
>>391
何もないよ
すでにBoolean型のTrueが入ってるから

408:デフォルトの名無しさん
20/08/05 00:28:02 BsFah0sm.net
>>391
if文は引数が真であるかを判断するもの

409:デフォルトの名無しさん
20/08/05 00:51:10 ZBlhTFE5.net
>>392
メソッドの引数は渡される前に評価(print()が実行)されてしまうから。tkは関係ない

def clicked():
print('click')

button1.bind('<button-1>', clicked)

410:デフォルトの名無しさん
20/08/05 01:24:16.90 Oa+okPfy.net
>>393,>>394
ということは、やっぱり必ず真になって偽にはならないということだよね
デバッグやループのときに使うのはわかるけど、
それ以外で使う意味がいまいちわからなくて
結局件の使い方には意味がないってことでいいの?

411:デフォルトの名無しさん
20/08/05 02:02:08.19 BHc41wwZ.net
>>396
馬鹿にはわからんだけだよ

412:デフォルトの名無しさん
20/08/05 02:26:01 2RyFB+EQ.net
>>389>>396
とにかく 是が非でも a=1 にしたいんだろ
そこを通過してくれないと困るんだろ

413:デフォルトの名無しさん
20/08/05 02:36:08.51 .net
n = f1(True)を n = f1(False)にすればa=0になるし
if True: を if False:にしてもいいし
文脈みればどうでもいい部分だからif Trueにしてるってことくらいわかるでしょ
a=1だけでいいとかはまったくの的外れ

414:デフォルトの名無しさん
20/08/05 02:39:15.35 .net
コード”のみ”をみれば結果がa=1だからそれを最適化すればいい
とか普通にネタで言ってるんだと思って流してたけど違うのか??
そんなこと言い出したら全角の_でインデント使ってるとこも
エラー出るぞとか言って徹底すればいいのに

415:デフォルトの名無しさん
20/08/05 02:41:39.28 .net
ガチのマジでアスペいない?
あざといからネタでやってるんだと思ってるんだけどなぁ

416:デフォルトの名無しさん
20/08/05 02:45:26.49 2RyFB+EQ.net
初めから知識0からじゃ何も進まないじゃないか
ともかく前提条件が >>1以外の事は考えたくないんだ

417:デフォルトの名無しさん
20/08/05 06:22:3


418:2 ID:LSc+X1IL.net



419:デフォルトの名無しさん
20/08/05 08:08:10 XsPNeg0Z.net
>>403
temp_dic={}
forループの中で
temp_list=[]
リストの中身いれてさいごに
hoge="list_"+str(i)#桁揃えのやり方あるけどなんだったかわすれたわ
temp_dic[hoge]=temp_list

でもってさいごのさいごに
またforループでdicから順々に取り出せばえんでねーのかな

420:デフォルトの名無しさん
20/08/05 08:51:45 L/0IIDMF.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw

Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw

日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw

421:デフォルトの名無しさん
20/08/05 09:11:58 +q2ZzHFA.net
>>405
放射能まみれのチョッパリが何をイキガッているんだ?
強姦と窃盗はお前らチョッパリのお得意分野だろう!
慰安婦の方々に謝罪し、徴用工の方々にきちんと賠償しろ

俺たちに口応えするのはそれからだ!

422:デフォルトの名無しさん
20/08/05 09:20:36 nWrq5ml2.net
>>401
ガチ

423:デフォルトの名無しさん
20/08/05 10:10:28.99 zJw940E0.net
>>395
ありがとうございます。
これだと
clicked() takes 0 positional arguments but 1 was given
となりました。引数無いぞコラというエラーですよね。
def clicked(a):
print('click')
button1.bind('<button-1>', clicked)
だとOK。

424:デフォルトの名無しさん
20/08/05 10:19:51 zJw940E0.net
button1.bind('<button-1>', clicked)
って左クリックをしたらclikedを実行ではなくて、

425:デフォルトの名無しさん
20/08/05 10:20:59 zJw940E0.net
左クリックをすると
イベント値をclickedにわたすということでしょうか?
クリックをしたら関数を実行みたいにしたいのですがbindを使うのが間違ってる?

426:デフォルトの名無しさん
20/08/05 10:28:09.96 LSc+X1IL.net
>>404
ありがとうございます。
なんとかなりそうです。

427:デフォルトの名無しさん
20/08/05 10:44:01 xKYyZvTf.net
>>403
execをつかう

要するに、「python 変数 動的 生成」と検索すると答えは出る

Python - pythonでname0,name1,name2・・・のように変数を宣言したい|teratail
URLリンク(teratail.com)

pythonで動的に変数を定義する - Qiita
URLリンク(qiita.com)

pythonの教科書でevalが全然説明されてないのも問題だ
こういう便利なヤツはバンバン使えばいいのに
そもそもevalとapplyは最重要項目でしょう

428:デフォルトの名無しさん
20/08/05 11:07:48 G2EhtAf5.net
そもそもlist/dictに勝る点がないので、便利でも何でもない。
デバッグのし辛さとか変なコードの実行などなど。
execなんかよりストレートにglobals/locals使う方法もあるが、
globals()["hoge"] = "Hoge"
print(hoge)
これもexecと同様デバッグがめんどくさくなる。

429:デフォルトの名無しさん
20/08/05 11:21:08.66 zJw940E0.net
>>410
すいません自己解決しました。
button1 = tk.Button(


430:root1, text='1データを分析', font=20,command = clicked) でOKでした。



431:デフォルトの名無しさん
20/08/05 11:38:46.21 zJw940E0.net
ずっとanacondaからvscodeでpythonいじってたんですが、
プログラムの規模が大きくなってきたため、統合開発環境をインストールして開発しようかと思っています。
無料の統合開発環境でいいのってないですか?

432:デフォルトの名無しさん
20/08/05 11:38:47.88 LSc+X1IL.net
2次元配列のリストと辞書(一次元)は同じ様に思えるのですが、違いはありますか?
(3.7以前、辞書が順序を保存しなかったときは大きな違いがあったと理解しています。)
それぞれの仕組みが書いてあるサイトはあるのですが、何が違うのかを調べても見つけることが出来ませんでした。
書くのが面倒であれば、説明が書いてあるサイトを貼っていただく形でもありがたいです。
>>412
ありがとうございます。試してみます。

433:デフォルトの名無しさん
20/08/05 11:39:01.66 kVNaCqIg.net
File "C:\Users\NEC-PCuser\.spyder-py3\temp.py", line 23, in <module>
my_data = genfromtxt('SingleECG.csv')
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\npyio.py", line 1772, in genfromtxt
fid = np.lib._datasource.open(fname, 'rt', encoding=encoding)
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\_datasource.py", line 269, in open
return ds.open(path, mode, encoding=encoding, newline=newline)
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\_datasource.py", line 623, in open
raise IOError("%s not found." % path)
グラフをプロットしたらこのようなエラーが出ました。解決方法を教えてください

434:デフォルトの名無しさん
20/08/05 12:04:12 aMNOBbmO.net
>>416
URLリンク(docs.python.org)
URLリンク(docs.python.org)
これ見ても何が違うかわからないの?

435:デフォルトの名無しさん
20/08/05 12:44:19.03 L/0IIDMF.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw

436:デフォルトの名無しさん
20/08/05 12:59:40.04 bfUj5q3R.net
今どきWindowsに直でPython入れてる馬鹿はくたばっとけよ

437:デフォルトの名無しさん
20/08/05 13:08:50.41 IZQzbQjk.net
>>417
1.Spyderを1回でも起動するとホームフォルダに「.spyder-py3」というフォルダができています。
Windowsの方は、ご自分のデフォルトのホームフォルダに「.spyder-py3」ができていることがわかります。
OSXの方は、ホームフォルダ直下に、不可視フォルダとして存在しています(見えません)。Finderの「移動」メニュー→「フォルダへ移動」をクリックして、「フォルダの場所を入力」に「.spyder-py3」と入力し、Returnキーを入力します。
2.このフォルダの中に、「spyder.lock」というファイルを探してください。このロックファイルは通常Spyderの起動時に自動的に作成され、終了時に自動的に消去されます。ところが、何らかの理由でこれが残ってしまった場合、spyderを新たに起動できなくなります。
3.spyder.lockをゴミ箱に入れて削除します。
4.再びspyderの起動をおこなってください。

438:デフォルトの名無しさん
20/08/05 13:21:10.89 LSc+X1IL.net
>>416
自己解決
これを読んで理解しました。
URLリンク(www.quora.com)

439:デフォルトの名無しさん
20/08/05 13:40:48 XsPNeg0Z.net
>>417
  >>1をよめ まもれ
はなしはそれからだ

440:デフォルトの名無しさん
20/08/05 13:51:58 xp5DSzK/.net
>>403
n行目のリストにlists[n]でアクセスできれば十分だと思うんだけど
どうしてそれぞれの行にわざわざ変数名を付けたいの?

441:デフォルトの名無しさん
20/08/05 14:20:17.00 LSc+X1IL.net
>>424
webからpytonで取得したデータをcsvかxmlで出力して、
他のデータと合わせて処理したいというのが今の狙いです。
今の所excelで最終的に処理しようと思っていますが、もう少し勉強しないとそのアプローチが正しいのかもわからないです。
プログラム自体完全初心者で、初めて1週間程度なので分かっていない部分が非常に多いことは自覚してます。
pandaとかnumpyとか色々あるようですが、その辺りが理解できれば別のアプローチを考えるかもしれません。

442:デフォルトの名無しさん
20/08/05 14:23:23.58 LSc+X1IL.net
質問にキチンと答えられていなかったので補足すると、
csvで出力した場合に他のデータとマージしたりする時に、
各行ごとに順番で名前がついていれば処理しやすいと思った、というのが理由です。
根本的な発想が間違っている可能性もありますが、その点は申し訳ないです。

443:デフォルトの名無しさん
20/08/05 14:31:36.03 YFT9R2Ox.net
単純に順番でなのであれば、>>424が言う様に2次元配列でいいと思う
>>> list=[["a","b","c"],[0,1,2],["あ","い","う"]]
>>> list[0]
['a', 'b', 'c']
>>> list[1][1]
1

444:デフォルトの名無しさん
20/08/05 14:38:49 pA7ncT8x.net
>>426
変数名そのものを変数で定義したり外部に出すのはとてもむずかしい
(できなくはないが普通はやらないので特別な方法をとる必要がある)
dictを使うのが正解で
それならitems()で変数名と中身の両方にアクセスできる

445:デフォルトの名無しさん
20/08/05 14:52:44.05 pA7ncT8x.net
変数名っていうかキーね
まぁ普通はそういう変数を変数で命名するのはpython以外の言語でもしない

446:デフォルトの名無しさん
20/08/05 14:55:15.13 LSc+X1IL.net
皆様、色々教えて頂きありがとうございます。
>まぁ普通はそういう変数を変数で命名するのはpython以外の言語でもしない
なるほど。
それでも世の中うまく回ってるってことは、私みたいなアプローチをする必要がないんでしょうね。
辞書とか多次元リストを試してみます。ありがとうございました。

447:デフォルトの名無しさん
20/08/05 14:56:47.32 xp5DSzK/.net
>>425
それで、それぞれの行に変数名を付けたい/付けたほうがよさそうと思った理由は?

448:デフォルトの名無しさん
20/08/05 14:57:31.62 xp5DSzK/.net
>>431
あーごめん、入れ違いになったみたい

449:デフォルトの名無しさん
20/08/05 15:06:59.98 Zf7jxWAJ.net
すいません、自己解決しました

450:デフォルトの名無しさん
20/08/05 15:10:18.46 xp5DSzK/.net
>>426
そういう理由であれば変数名じゃなく値として行番号を持つデータ構造を選ぶか
csvに出力するときにlists[n]のインデックス値を行番号として出力するようにすればいい
変数名は入れ物の名前で
基本的にプログラムに固定値として書く(ハードコーディングする)ものなので
動的に変わるような値は変数名にはしない
(メタプログラミングとかやや特殊な使い方をしたい場合は除いて)

451:デフォルトの名無しさん
20/08/05 15:32:35.53 YFT9R2Ox.net
しかし初めて1週間にしてはやろうとしてることがハイレベルだな。
才能あるんじゃない?

452:デフォルトの名無しさん
20/08/05 16:17:41.42 zJw940E0.net
conda activate "C:\Users\takashi ishida\Anaconda3"
conda : 用語 'conda' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識
されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから
、再試行してください。

453:デフォルトの名無しさん
20/08/05 16:19:36 zJw940E0.net
>>436
すいません。途中で送信しました。

anacondaのvscodeで開発したプログラムを他で実行しようとするとこういうエラーがでます。
condaコマンドって使った覚えがないのですが・・・。

454:デフォルトの名無しさん
20/08/05 18:52:45 WY90OE83.net
>>437
同じディレクトリに.vscodeってあって、それまでコピーしてきてないか?

455:デフォルトの名無しさん
20/08/05 19:32:40.11 LSc+X1IL.net
>>435
才能があるとは思わないですが、面白さにハマって一気に勉強してます。
あと10年早くプログラミング開始してれば絶対にエンジニアに転職してたと思います。
キチンと使えるようになれば相当色んなことが出来ますね。
暇つぶしにゲームとかやってないでpythonやってりゃ良かった・・・

456:デフォルトの名無しさん
20/08/05 19:47:32.85 v2dPmWiH.net
>>392
既に米付いてるけどもうひとつ
Button1.bind("<button1-1>", lambda : print('click'))

457:デフォルトの名無しさん
20/08/05 20:17:47 XsPNeg0Z.net
>>436-437
「他」とやらに
.pyだけもってきていて
anaconda入ってないとかいうオチじゃねーの?

>>439
オラも
暇つぶしにプログラミングなんてしてないで
ボカロの調教か3Dモデリングしてればよかったとか
そも建築学科いってればとか
いろいろ思うだーよ

458:デフォルトの名無しさん
20/08/06 12:59:02.85 VbLHuZhq.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw

459:デフォルトの名無しさん
20/08/06 19:46:10 9CykuhS+.net
文字列を整形するスクリプトをいくつか使っているんですが
手軽に使いたいので整形前の文字列をinputで入力するようにしています
でも文字数に制限があるらしく長い文字列だとエラーになってしまいます
やっぱり横着しないでファイルから読まないとダメですか?

460:デフォルトの名無しさん
20/08/06 19:50:18 7L1cCHwV.net
>>443
限界数の文字列をまず受け取る
しかるのち
とった分をhogeみたいなのに代入しておいて
続きを入れろと促すメッセージを出し、
受け取ったらhogeに足す。
(以下略)

途中で打ち間違えたら困るので、普通にファイルから受け取るほうがいいぞ

461:デフォルトの名無しさん
20/08/06 19:52:43.52 9CykuhS+.net
>>444
なるほど!と一瞬思ったけど
文字列が限界突破してるかどうかの判断はどうやるんでしょう?

462:デフォルトの名無しさん
20/08/06 22:12:23.79 bT9J+NNY.net
>>445
input関数の上限はたしか1024文字
ためしに1025文字打ってみ

463:デフォルトの名無しさん
20/08/06 22:33:44.38 u+7LtLeC.net
input使うほうがめんどくね?
for line in sys.stdin:
print(line)
data = sys.stdin.readlines()
data = sys.stdin.read()

464:デフォルトの名無しさん
20/08/06 22:40:15.88 9CykuhS+.net
俺氏のレベルが低すぎてわからなかったが
限界のちょい前で区切れば良いのか
これはちょっと時間があったらやってみようと思う
ありがとう
>>447
個人的にはスクリプトをダブルクリックしてプロンプトに右クリック→エンターが楽だな
テキストファイルを編集するのが地味に面倒い

465:デフォルトの名無しさん
20/08/07 02:47:23.95 FY0CqvZ3.net
面倒くさいからクリップボードにコピーしたあと
pyperclipでクリップボードを読み込んでそのまま処理させてる

466:デフォルトの名無しさん
20/08/07 07:29:33.01 mKqTfwbZ.net
>>449
横レスだが
なるほどー

467:デフォルトの名無しさん
20/08/07 08:41:20 ts5R835r.net
ある意味かしこいなww

468:デフォルトの名無しさん
20/08/07 10:05:23.22 5Voyvt5w.net
というかpythonってjavascriptで言うところのtextareaみたいなのないの?
だったらブラウザのdriver使って入力するとか
そもそもtextエディタのdriverがあったりして

469:デフォルトの名無しさん
20/08/07 10:38:21 I/keIxIH.net
>>452
そんな事がしたい奴はJupyterを使う

470:デフォルトの名無しさん
20/08/07 11:12:59.46 a/GqHoW6.net
>>452
textareaはHTMLだろう
ブラウザのdriverってなんだよ?
そもそもtextエディタのdriverとか
ちょと何言ってるかわかんない

471:デフォルトの名無しさん
20/08/07 13:55:42.48 .net
>>453
そうなの?
数値とかデータだけ収集したいならそれでいいけど
文字列を整形するってなると、どこかのサイトからコピペみたいな用途もあるかな、と
>>454
たしかに、htmlタグだった
chromeドライバーとか、使い方の変数もdriverってなってるしdriverって言っていいかなって。
driver.get("index.html")みたいにして、テキストエリアに挿入
pythonで受け取って処理、みたいなことができると思った
というか既存ウェブサービスであれこれしたいときは普通に使ってるし

472:デフォルトの名無しさん
20/08/07 18:26:19.71 KSWhJGwQ.net
>>455 自動化のRPA Selenium のドライバーとかと混乱してない?
driver.get ってSelenium の機能じゃないの?
Python でもSelenium は使えるよ。

473:デフォルトの名無しさん
20/08/07 19:52:25 .net
>>456
>Selenium
うん、もちろんそうだけど。。
Seleniumでchromeドライバ読み込んで
>>443
スクリプトをダブルクリック → driver.get("自分で用意したtextarea.html")
 → テキストエリアに右クリック(文字列コピペ)
 → pythonが変更を感知して文字列を読み取る
 → 文字列成形処理(textarea.htmlで何かしらの操作をやってもいい)
 → ウィンドウclose
みたいにすれば文字数制限なしの右クリック(コピペ?)→エンター必要なしのお手軽inputの代わりになるのでは、ってこと

474:デフォルトの名無しさん
20/08/07 20:11:00 mKqTfwbZ.net
>>457
おまえの過去レスから
なぜそこまでエスパーしろと
おれらに要求するんだwww
(・∀・)カエレ!!!

475:デフォルトの名無しさん
20/08/07 20:44:30.96 .net
おれとしてはそんなことよりもなんで>>447の方法じゃだめなん?というのが気になってる

476:デフォルトの名無しさん
20/08/07 20:51:13.44 R6EkH4Oi.net
inputってOSとかターミナルに依存せんの?
その1024っていうのも文字数なのかバイト数なのかよくわからんし。
いままで意識したことなかったけど、意外に短かいもんだな。

477:デフォルトの名無しさん
20/08/07 23:42:19 TzYKRTqH.net
漏れは、Ruby で、クリップボード経由で、文字列を変換している

さらに、バッチファイルに、ruby .\script.rb と書いて、
ダブルクリックで、そのプログラムを起動できるようにしている

# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる

str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

ary = str.each_line.map( &:strip ) # 連続する空白類を除去する

IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end

478:デフォルトの名無しさん
20/08/08 11:27:43 noFfmCPy.net
>>452
tkinter

479:デフォルトの名無しさん
20/08/08 15:48:54 .net
>>462
さっそくやってみた 良いね

from tkinter import *
root = Tk()
root.geometry('240x120')
e = Entry(root, validate="key", validatecommand=(root.register(lambda p:[print(''.join(p.split())),root.quit()]), '%P'))
e.grid()
root.mainloop()

480:デフォルトの名無しさん
20/08/08 16:54:46.34 jNP2OM4q.net
URLリンク(murashun.jp)
フォルダ名の一覧を取得したいのですが、ファイル一覧を取得してからフィルターをかけるしかないのでしょうか?
4行目なんですが、このcmdライクな書き方が良くわからないのです。

481:デフォルトの名無しさん
20/08/08 16:57:20.42 jNP2OM4q.net
f for f とは何でしょうか?
↑牡蠣忘れました

482:デフォルトの名無しさん
20/08/08 17:11:25.36 .net
>>465
内包表記
[ ”条件1がTrueのとき” for f in files if "条件1" ]
else使いたいときは書き方が変わってifが前にくる・・
[ ”条件1がTrueのとき” if "条件1" else "条件1がFalseのとき" for f in files ]

files = ["a","b","c","d"]
#条件1=Trueだったとき
print( [ "条件1がTrueのとき f = "+f for f in files if True ] )
#条件1=False だったとき
print( [ "条件1がTrueのとき f = "+f if False else "条件1がFalseのとき f = "+f for f in files ] )

483:デフォルトの名無しさん
20/08/08 19:28:37 JWEyeEm5.net
リスト内包表記までは便利だけどifに複数条件からめるとかえってややこしくなるので複数行にしてる
タプルのリストの重複チェックとかは定型文的に使ってるわ

484:デフォルトの名無しさん
20/08/08 19:45:59.56 jNP2OM4q.net
改造してみます
ありがとう
リネームに使いたいです

485:デフォルトの名無しさん
20/08/08 20:27:19.81 WWf5PMr4.net
リスト内包表記の方がfor文の処理速度が速くなるらしいけど読みづらすぎ&書きづらすぎるわ
リスト内包表記を使わずに速度を処理速度を速くする方法を作って欲しい

486:デフォルトの名無しさん
20/08/08 20:34:03.26 jNP2OM4q.net
読みづらいのでやめときます

487:デフォルトの名無しさん
20/08/08 21:25:03 PbNRKPU5.net
そんな主体性がないことでは困る

488:デフォルトの名無しさん
20/08/09 02:01:57.03 .net
見慣れの部分もあるだろうけど明らかに見難いと思う
ただ結果的に何が出力されるんだ?
という部分に着目し簡潔に書く、そのために(無駄を省いたり関数にしたりして)
工夫せざるを得ない状況を作り出すための方法としてはありかも

489:デフォルトの名無しさん
20/08/09 10:54:15.87 /x2pn//m.net
組み込み関数を使うといい

490:デフォルトの名無しさん
20/08/09 11:21:50 rlvW70Ue.net
pandasで読みん込んだテキストファイルの先頭から指定した行まで削除は出来たのですが、最後から指定した数行だけ消すやり方がよう、分かりません

行数がころころ変わるのでrangeでは消せないのです

お知恵下さい

491:デフォルトの名無しさん
20/08/09 11:34:08.98 /x2pn//m.net
>>474
URLリンク(ideone.com)
URLリンク(docs.python.org)

492:デフォルトの名無しさん
20/08/09 12:28:45 G1el0n+S.net
globで取得したファイルのリストの最初のファイルを取得するにはどうしたらいいでしょうか?

file = glob.glob("fold/*")
for i in file:
print(file[i])
TypeError: list indices must be integers or slices, not str
こういうエラーが出ますが、fileはリストではないのですか?

493:デフォルトの名無しさん
20/08/09 12:31:25.41 G1el0n+S.net
file = ["one","two","three"]
for i in len(file):
print(file[i])
テスト用に作ってみましたが、これだとnot iterableになります
iが繰り返しに使えないとはどういうことでしょうか
インデックスは繰り返せるはずですが、、、

494:デフォルトの名無しさん
20/08/09 12:33:47.83 lPdKuM8h.net
>>476
fileはリストだけど
iは?
エラーメッセージ読めよ

495:デフォルトの名無しさん
20/08/09 12:39:36.94 JXdOVZ/U.net
>>476
リストをループすると、iにはイテレーターじゃなくて、リストの中身が入る
file = glob.glob("fold/*")
print(file)
for i in file:
print(i)
実行j結果
['fold\\aaa', 'fold\\bbb']
fold\aaa
fold\bbb
だからfile[i]にすると、文字列を使ってリストにアクセスしようとするからエラーになる

496:デフォルトの名無しさん
20/08/09 12:46:15.61 JXdOVZ/U.net
>>477
これはPythonの記法的な問題
for i in 3みたいな書き方は出来ない
エラーメッセージでTypeError: 'int' object is not iterableって書いてある通り
file[0]、file[1]、file[2]みたいにアクセスしたい場合は>>479の書き方にするか
rangeを使う
file = ["one","two","three"]
for i in range(3):
print(file[i])
実行結果
one
two
three

497:デフォルトの名無しさん
20/08/09 14:55:41.57 .net
さらにenumerateも便利、同時にインデックスとれる
files = ["one","two","three"]
for i,n in enumerate(files):
_print(i,n)
>>>実行結果
0 one
1 two
2 three

498:デフォルトの名無しさん
20/08/09 18:18:04 G1el0n+S.net
↑ありがとうございました
インデックスではないんですね
range(len(file))を使いますです

499:デフォルトの名無しさん
20/08/09 18:55:14.84 TCh4WBtq.net
超初心者スレとはいえ、ちょっとこれは酷すぎるだろ
知的障害を疑うレベルだわ

500:デフォルトの名無しさん
20/08/09 19:10:05.24 /x2pn//m.net
下手な教え方するより一回チュートリアルやらせたほうが、結果的には近道になるパターン

501:デフォルトの名無しさん
20/08/09 19:18:43 xLYoDobK.net
>>469
入れ子になってたりタプルで複数の値を渡してたりしたら読みづらいときもあるけど、
慣れたら別に読み辛くないよ。
読み辛いなと思ったらforの前に改行を入れてみるとわかりやすいと思う

502:デフォルトの名無しさん
20/08/09 19:51:17.39 .net
.py実行したら出てくるcmdやターミナル画面ってあるけど
これをtkinterみたいなGUIウインドウの中に入れたり(そう見えてるように重ねたり)追従させたりできる?
tkinterのウインドウつまんで動かす時、一緒にターミナル画面も動いてきたらいいのにと思ったんだが

503:デフォルトの名無しさん
20/08/09 21:36:20 G1el0n+S.net
pathlibをインポートするとglobはインポートしなくていいのでしょうか
モジュール同士の継承関係がわからないですが、参考ページありませんか?

504:デフォルトの名無しさん
20/08/09 21:55:46.35 /x2pn//m.net
>>487
URLリンク(docs.python.org)
一通りチュートリアルやってみてはどうですか

505:デフォルトの名無しさん
20/08/09 22:23:18 .net
>>487
何をしたいかに依るのでは
from pathlib import *
#実行する.pyと同じ階層のファイルとディレクトリ一覧取得
#str()でファイルやディレクトリの絶対パスの文字列を取得できる
print( [ str(p) for p in Path().iterdir() ] )

#つまりその文字列を扱いフィルターをかけることもできる
#ファイルネーム・ディレクトリネームの文字数が20以上だけフィルタリング
print( [ str(p) for p in Path().iterdir() if len(p.name) > 20 ] )

506:デフォルトの名無しさん
20/08/09 23:07:31.69 AwKuV539.net
>>487
importするのに通常は依存継承関係とか余計な事は考えなくていい
ファイルが違えばスコープも違うのだから必要なモジュールならとにかくimportすればいいだけ

507:デフォルトの名無しさん
20/08/10 10:08:23 SIP0jVAr.net
>>150
わりと本気でSQL

508:デフォルトの名無しさん
20/08/10 10:44:09.54 rTlZ13Bm.net
>>489
>>490
了解しました

509:デフォルトの名無しさん
20/08/10 11:19:34 mxDHCoDt.net
xの値に反比例して1から0まで直線的に減少していく値yが入った

value_y[x]

があって、家などの画像の上に、value_y[x]に比例したピクセル値を持つグレー画像を重ね合わせて表示させたいと思っています。
(左端はグレーで家は見えなくて、右側に行くにつれて段々とグレーが薄くなって家の画像が見えてくる感じ)

openCVとか使えば出来るかなとおもうのですが、重ね合わせようのグレー画像のうまい作り方があったら教えて下さい。

510:デフォルトの名無しさん
20/08/10 11:58:33.01 rTlZ13Bm.net
イテレータとリストと配列の違いってなんでしょうか?
かんたんな例え、はありませんかね、、、

511:デフォルトの名無しさん
20/08/10 12:01:57.46 epTxOZiR.net
厳格な型制御をするC#から勉強すればそんなアホな質問は出てこない。

512:デフォルトの名無しさん
20/08/10 12:20:38.32 gyMnY3Cu.net
>>493
なぜPythonでやる必要があるんですか
GIMPやINKSCAPEの使い方覚えた方がいいんじゃない?
>>494
イテレータは反復子現在地ポインタ
リストはインデックス番号のある配列の一種
配列は並べられた複数の箱

513:デフォルトの名無しさん
20/08/10 12:22:09.41 wInlBSoO.net
>>486
.pyw

514:デフォルトの名無しさん
20/08/10 12:43:52.91 mxDHCoDt.net
>>496
pythonで数値計算したあとの出力なので出来ればそのままpythonでとおもったけど結構めんどくさそうですね・・・。

515:デフォルトの名無しさん
20/08/10 12:44:59.38 mxDHCoDt.net
for x in range(width):
span=(width-x)
if span>10:
span=10
fig.axvspan(x, x+span, color="red", alpha=float(lr_y[x]/10))

span=(width-x)
if span>10:
span=10
のところが冗長な気がするのですが、一行でうまく記述できないでしょうか?

516:デフォルトの名無しさん
20/08/10 12:59:00.61 eW2lnGgt.net
Opencvで
画素ごとに画素値舐めてってyの値に比例して画素値減衰させればいいんじゃないの?

517:デフォルトの名無しさん
20/08/10 14:00:18 nxGfQCUO.net
for x in range(width):
end = min(width, x + 10)
fig.axvspan(x, end, color="red", alpha=float(lr_y[x]/10))

518:デフォルトの名無しさん
20/08/10 15:04:07.26 JXIo//1S.net
BeautifulSoupでスクレイピングやったらうまくいったけど
10ページ分やろうとしてforで回したら
どうやら非同期(同時に)10ページ接続してる気がする
1ページ目終わったら(+sleep)2ページ目
ってやろうと思うけど、javascriptのjqueryでいう$.ajaxみたいなやつ教えてください

519:デフォルトの名無しさん
20/08/10 15:22:40.40 JXIo//1S.net
と、思って改めてやったらどうやら接続が早すぎて同時接続してるように見えたっぽい
自己解決? お騒がせしました
sleepだけでよさそうですね

520:デフォルトの名無しさん
20/08/10 16:44:14 .net
>>493
重ね合わせはnumpyでグラデーションの画像作ってから
openCVで元画と重ね合わせって感じでできる

521:デフォルトの名無しさん
20/08/10 17:23:38 dcFChyFp.net
グラデかけるのなんてimagemagickで簡単に出来そうだが

522:デフォルトの名無しさん
20/08/10 18:42:57 epTxOZiR.net
>>502
無能がスクレイピングするとDos攻撃とみなされて裁判沙汰になるからやめとけ

523:デフォルトの名無しさん
20/08/10 18:44:25.26 sEIvZmCR.net
私は某サイトで無謀なスクレイピングをしてアクセスバンを食らった。

524:デフォルトの名無しさん
20/08/10 19:47:59.02 x8FHf1wG.net
txtlとして保存するだけだけどキャッシュ機能作った

525:デフォルトの名無しさん
20/08/10 20:04:01.05 .net
>>506
ちなみにスクレイピングするときの無能有能の線引きみたいなものは?
もちろんAPIあるとことかスクレイピング禁止のとこでやるのは問題外として

526:デフォルトの名無しさん
20/08/10 20:06:48 .net
最近?だと図書館だかでスクレイピングしてた人が開示されてたけど
あれ結局どうなったんだろう
当時はめちゃくちゃ失笑されてたけど
もちろん図書館側が

527:デフォルトの名無しさん
20/08/10 20:09:48 sEIvZmCR.net
スクレイピングの解説してる記事読むと、アクセスの間隔は1秒位は開けましょうとか言ってるけど、
どれくらいの頻度でアクセスしていいかなんてそのサイト次第だから。
自分はバン食らった後で利用規約読んで真っ青になっちまったよ。

528:デフォルトの名無しさん
20/08/10 20:10:56 UtK+DCkZ.net
ゲヘラヘラ(・∀・)

529:デフォルトの名無しさん
20/08/10 20:17:10 .net
まぁノーログVPNでもかましとけば表沙汰になってない程度のことってのがなんとも感慨深いですな

530:デフォルトの名無しさん
20/08/10 20:17:51.91 x8FHf1wG.net
VP(ry

531:◆QZaw55cn4c
20/08/10 20:28:02 JYoLJZbs.net
>>510
岡崎市立中央図書館事件ですか
昨今のコ�


532:鴻i騒動でつくづくと思うのですが、技術的な事実と意思決定を行うものとの間隙が広すぎるのが、いろんな点で問題を複雑にしてしまっているのが最近の事例ですね 私は図書館側も責めることができません、だって図書館側の誰一人として、この件の技術的事実を当時も理解できなかったろうし、将来の時点においての理解可能性も期待できませんから



533:デフォルトの名無しさん
20/08/10 20:28:23 e/hT02ld.net
例の図書館の件、実際に業務に支障をきたすようなレベルだったんだろうか。
それなら図書館の言い分にも理があるかもしれない・・・

とか思って調べたら、「1秒に1アクセス程度に調整」だったのか・・・

534:◆QZaw55cn4c
20/08/10 20:32:31 JYoLJZbs.net
>>516
業務に支障はあったらしいですよ、プログラム側がバグっていたから‥‥

535:デフォルトの名無しさん
20/08/10 20:34:01.63 epTxOZiR.net
>>509
まあ「加減」ってやつを常識の範囲でコントロールするかどうかだな。アホは加減を知らん。

536:デフォルトの名無しさん
20/08/10 20:36:21.34 epTxOZiR.net
正確には加減を加える方法を知らんから恐ろしいコードをそのまま実行してしまう。

537:デフォルトの名無しさん
20/08/10 20:38:59.23 e/hT02ld.net
こっちが常識的に振る舞っているつもりでも、
相手が変な人かもしれないというリスクは常に存在するわけだ。

538:デフォルトの名無しさん
20/08/10 20:41:52.13 oc0Vxq0a.net
一般的には程度の低いバカの集団を相手にしてると思って間違いない
わたくしに比べれば他人の半分はアホだ
そういうのが相手だ
そういうノータリンに技術的な話は全く通じない
お涙頂戴の情緒的なお話しか通じない

539:
20/08/10 20:42:48.60 JYoLJZbs.net
>>518
真のアホなのはスクレイピング側ではなくて、三菱電機側なのでは?

540:デフォルトの名無しさん
20/08/10 20:43:31.92 .net
>>502
・10ページ程度
・1ページずつ
・sleep挟む
慎重かつコントロールしようとしてるけど
それに対して「加減を知らん」ってのが今一わからんな
ようするに
>Dos攻撃とみなされて裁判沙汰
って言いたいだけでそれこそ加減を忘れて、説教したかっただけでは

541:デフォルトの名無しさん
20/08/10 20:49:20.79 HcOBHIWp.net
robot.textも詠んでない奴は無能だからスクレイピングすんな逮捕されるぞ

542:デフォルトの名無しさん
20/08/10 20:54:20.28 .net
404 Not Found

543:
20/08/10 20:55:49.15 JYoLJZbs.net
>>524
その robot.txt は「結果的に国立国会図書館のクローラも受け入れを拒否しており違法状態となっていた」そうですよね…

544:デフォルトの名無しさん
20/08/10 22:10:13.00 rTlZ13Bm.net
パスの指定方法を教えて下さい
txtファイル一覧を取得したいです
pathlib.Path("*").glob("*.txt")
これだと取得出来ていないようです
フォルダ部分のアスタリスクが良くないようです
fold1
├fold1-1.txt
└fold1-2.txt
fold2
├fold2-1.txt
└fold2-2.txt

545:デフォルトの名無しさん
20/08/10 22:28:15 rTlZ13Bm.net
↑解決したどす

546:デフォルトの名無しさん
20/08/10 22:33:29 b58AXMKw.net
君さぁ、一連のループ処理の質問してる人と同じ人?
pathlibの公式ドキュメント読んだ上でその質問なの?
URLリンク(docs.python.org)

547:デフォルトの名無しさん
20/08/10 22:51:23 .net
そんなもん読むよりぐぐったり聞いたほうが早い(読むなとは言ってない)
ソースコード読みたくなったときにドキュメントを全部読むと良いと思う
全部読んだ人は読むべき場所だけをわかってる
全部読んだことの無い人は読む必要のないところを知らない

548:デフォルトの名無しさん
20/08/10 22:55:48 .net
まぁ初心者でpathlib程度なら読むだけなら数時間もかからないだろうが
よくよく質問とかを見ればpathlibというよりもpythonの文法やら表記法で苦�


549:墲オてるって感じじゃないか



550:デフォルトの名無しさん
20/08/10 23:13:59.08 PbB9rIkO.net
Pythonは公式ドキュメントがクソだからね
初心者には厳しいよ
逆引き的なサイトを見るほうが賢い

551:デフォルトの名無しさん
20/08/11 05:28:50.84 D2zXE6xI.net
ステップ関数とシグモイド関数とLeRU関数を一つのグラフにするやり方がわからないです
fig.savefig()
で保存してpreviewをしても真っ白でした

552:デフォルトの名無しさん
20/08/11 06:09:26 x3iAuc4F.net
()
はすべて関数でしょうか?

553:デフォルトの名無しさん
20/08/11 07:10:35 Yoj/uuKw.net
kotee = (1 + 2) * 3

554:デフォルトの名無しさん
20/08/11 09:31:56.57 DyHWpKfR.net
>>535
固定?3^3=27?
Pythonはconst定数ないんだっけ?

555:デフォルトの名無しさん
20/08/11 09:40:20 lpYV++WD.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw

Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw

日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw

556:デフォルトの名無しさん
20/08/11 09:48:14 B3vzQThI.net
>> 532
これなぁ
チュートリアルはいい出来だと思うが、リファレンスとしては本当にひどい

557:デフォルトの名無しさん
20/08/11 09:57:17 .net
ファイルの書き込みがダブルブッキングになりそうなときっていい感じに勝手にpython側で処理してくれるの?

558:デフォルトの名無しさん
20/08/11 10:01:47 B3vzQThI.net
>>539
やってみたら分かるけど、後にオープンしたほうが優先される

559:デフォルトの名無しさん
20/08/11 10:10:39 .net
>>540
そもそもテストの仕方がわからないけどこれでええんやろか
with open('hoge.txt', mode='w') as f:
f.write('a')
with open('hoge.txt', mode='w') as f:
f.write('b')
with open('hoge.txt') as f:
print(f.read())

たしかにbだけしか更新されてなかった・・
つまりは同じファイルをアッチやコッチで更新してたときに
with open閉じるまでに処理が重なって同時更新した場合は、
後が優先され前のデータは書き込みできていないってことかー・・

560:デフォルトの名無しさん
20/08/11 10:34:21.08 .net
と、おもったら上書きモード"w"になってただけだった
"a"だと普通に追記になったわ
上書き書き込み、というより、追記
がやりたいことだった >>539
追記のときもwith openがほぼ同時に処理されるなんてことはあるのだろうか

561:デフォルトの名無しさん
20/08/11 10:40:31.12 x3iAuc4F.net
モジュールとクラスでは、モジュールのほうが大きいんですよね?

562:デフォルトの名無しさん
20/08/11 10:45:12.20 B3vzQThI.net
>>542
バッファリングがあるからそんなに単純じゃないよ
同時に処理されるかどうかは確率的にゼロでなければ長期間運用してたら起こる可能性はあるので、その可能性があるならバッティングの処理が必要
一般的な方法としては空のファイルを作ってそのファイルが存在するかどうかで判断する
他の方法としてはsyslogやデータベースを使って、その処理は既存の仕組みで対応する

563:デフォルトの名無しさん
20/08/11 10:53:49.16 .net
>>544
sleepしてって考えてたけどsleep終わったあとに同時になったら・・とか思ってたが
>空のファイルを作ってそのファイルが存在するか
(これも存在確認後に、ってのがちょっと気になるが)
>syslogやデータベース
なるほど、あまり気にせず既存のを使えるのはいいな
とりあえずは余裕をもって確実に順次実行できれば一般用途では大丈夫ってことかな
あんがと

564:デフォルトの名無しさん
20/08/11 10:56:58.52 .net
ライブラリ ← パッケージが詰まってる
└パッケージ ← モジュールが詰まってる
 └モジュール ← クラスや関数が詰まってる モジュール名.py

565:デフォルトの名無しさん
20/08/11 11:03:18.24 x3iAuc4F.net
はい

566:デフォルトの名無しさん
20/08/11 11:20:56 Kv91d30/.net
>>541
withを使えばその動作は予定通りなのでは?
普通に


567:openしてcloseするまえに処理の競合が起きれば、また違った動作になる



568:デフォルトの名無しさん
20/08/11 11:28:43.21 1kHdySm/.net
競合しないように書くの良いですね

569:デフォルトの名無しさん
20/08/11 13:08:00.16 IdGWSTlI.net
>>515
安全靴で丸坊主で歩いてるだけで逮捕だもんな
狂ってるわ

570:デフォルトの名無しさん
20/08/11 13:12:55.63 IdGWSTlI.net
>>544-545
セマフォの役割にはmkdir()が良いってどっかで聴いた

571:デフォルトの名無しさん
20/08/11 13:24:11.52 l01whKN5.net
perlの時代から有る手法で、ご丁寧なことに、被らないユニークな名前を生成してくれるモジュールまで存在していた

572:デフォルトの名無しさん
20/08/11 13:27:04.77 .net
>>548
そう
ただ、デバッグのやり方がわからなかった
例えば
with open('hoge.txt', mode='w') as f:
_f.write('a or b')
のa.py、b.py2つ用意して
a.pyとb.pyを同時に何万回も起動実行したりとかすればいいのかなと
>>511
なるほど

573:デフォルトの名無しさん
20/08/11 13:28:12.84 .net
>>553訂正 mode='w' → mode='a'

574:デフォルトの名無しさん
20/08/11 13:42:17.84 IdGWSTlI.net
555

575:デフォルトの名無しさん
20/08/11 14:43:16.85 jY8oIKoT.net
>>536
Python で定数を定義する
URLリンク(maku77.github.io)
Python には、C/C++ の const のような、定数を定義するためのキーワードは用意されていません。

576:デフォルトの名無しさん
20/08/11 14:57:39.72 nKBbqh2w.net
>>536
もしかして:kotae

577:デフォルトの名無しさん
20/08/11 15:34:48.63 D2zXE6xI.net
URLリンク(i.imgur.com)
ステップ関数をグラフにしようとしてこうやったけどならないんだけど間違ってる??
保存先の13.svgをpreviewしても真っ白になる

578:デフォルトの名無しさん
20/08/11 16:03:56.36 IdGWSTlI.net
>>558
URLリンク(dotup.org)

579:デフォルトの名無しさん
20/08/11 16:22:25.07 D2zXE6xI.net
>>559
うおおおおお!
まじで助かりました!

580:デフォルトの名無しさん
20/08/11 16:29:12.57 cFpL7en6.net
>>544
横だけど参考になりました

581:デフォルトの名無しさん
20/08/11 16:41:25.70 93tMQ9Bj.net
>>559
ステップ関数ってy=0とy=1が同じx座標になる関数じゃないの?
ズレてない?

582:デフォルトの名無しさん
20/08/11 16:43:36.93 DJf2UAfN.net
これくらいのステップの方が上りやすいな

583:デフォルトの名無しさん
20/08/11 17:36:53.27 IdGWSTlI.net
>>562
x の刻みを増やせば解決する

584:デフォルトの名無しさん
20/08/11 18:45:02.45 IUnIyxWQ.net
今まで一つのファイルにつらつらとコードを書き連ねてたから、分割しようとしたらま~苦労した
ライブラリとかモジュールとかただコピペして使ってただけだから、from~importとimportの違いもよくわかってなかった
独学で必要な情報だけつまみ食いしてると基本的なことが抜け落ちてて補完が大変だ…

585:デフォルトの名無しさん
20/08/11 21:03:59.46 7OoR6BUn.net
フレームワーク使って簡単なウェブアプリでも作ったらいい
構成からテスト、デプロイ等々、一通り網羅できるでしょ

586:デフォルトの名無しさん
20/08/11 23:41:09.64 D+9Pqaiv.net
URLリンク(imgur.com)
URLリンク(harigami.jp)
Pythonとmysql-connector-pythonについてです
MySQLで画像のようなテーブルを作成し、売上が100以上200以下の社員数を営業所ごとにカウントしたいです
sql_1は期待する結果を得られていますが
sql_2やsql_3のようにプレースホルダーを使うと何も取得できません
変数でテーブル名や数値などを動的に使いたいです
プレースホルダーを使ってsql_1を実現する方法を教えて下さい

587:デフォルトの名無しさん
20/08/12 01:27:49.12 t6UQqoiG.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw

588:デフォルトの名無しさん
20/08/12 03:11:27 UVmFgkue.net
Ruby on Rails なら、

売上.where( 売上: 100..200 ).joins( 社員 ).group( 社員.営業所 ).count

Rails みたいなフレームワークを使わず、自分で文字列で、SQL 文を組み立てると、
SQL injection され放題になるけどw

589:デフォルトの名無しさん
20/08/12 08:22:16.74 .net
【構成】
hoge_sample
├main.py
└packages
 ├__init__.py
 ├sample01.py
 └sample02.py
【main.py】
from packages import *
a = smpl01(1,2)
print(type(a))
print(a)
#print( dummy(1,2) )
【__init__.py】
from .sample01 import *
__all__ = [ "smpl01", '''"dummy"''' ]
【sample01.py】
from .sample02 import smpl02
def smpl01(a,b): return smpl02(a+b)
def dummy(a,b): return b-a
【sample02.py】
def smpl02(s): return str(s)

590:デフォルトの名無しさん
20/08/12 08:29:12.14 .net
疑問点 >>570
(1)
【main.py】でpackages内モジュールのクラスや関数を使う時
smpl01という名前を知っていることが前提
せめて「sample01をインポートしましたよ」みたいなマーキングは必要か?
それとも【packages】みたいなパッケージのディレクトリ名から、把握しているのが前提か
(2)
packagesのサードパーティ製モジュールのimportは相対パスで指定している
デバッグのために【sample01.py】を直接起動させると
smple02が使えない

591:デフォルトの名無しさん
20/08/12 08:39:48.51 .net
訂正 >>570
【__init__.py】
from .sample01 import *
__all__ = [ "smpl01" ] #["smpl01","dummy"]

592:デフォルトの名無しさん
20/08/12 08:47:45.76 +7u2t/Rq.net
まずtableがデータベースのテーブルではなくカラムになっていて紛らわしい
通報されるレベル
cursor.execute()の前にcursor(prepared=True)を実行しているか分からないが大丈夫か?
> cursor.execute(sql_2, (table, table, x_min, table, x_max))
は問題がないように見える
> cursor.execute(sql_2, (table, x_min, x_max))
は%sと引数の数があっていない
> cursor.execute(sql_3, {'table': table, 'x_min': x_min, 'x_max': x_max})
はこの文法が通用するのは比較的新しいPyMySQL(0.7.9以降?)だがバージョンは大丈夫か?
URLリンク(github.com)

593:デフォルトの名無しさん
20/08/12 09:09:26 +7u2t/Rq.net
>>571
(1)は言いたいこと良くが分からない
アスタリスクが全ての元凶のように見えるが・・・
この構成の作り方だと
packages.sample01 … module
packages.sample02 … module
packages.smpl01 … function
がmain.pyからは見える

(2)は相対インポートがパッケージ内でのみ機能する記法だから
直接実行すると相対インポートがエラーになる
回避方法は
python -m packages.sample01
として実行する方法だが、上記の構成で__init__.pyが定義されているため警告はでる

594:デフォルトの名無しさん
20/08/12 10:01:11.25 .net
>>574
>python -m packages.sample01
㌧ できた
なぜか警告も出なかった
(1)は最初
from packages.sample01 import smpl01
にしてたけど他にも使いたいモジュールが出てきたら
fromなんちゃらの行が【main.py】に延々追加されていくので
それなら__init__.pyの方に纏めておいた方が見やすいのか?と思った

595:デフォルトの名無しさん
20/08/12 10:13:01.58 r3C450gU.net
>>573
こんな書き方できるのか。知らんかった
mysqlclientで順番に値を放り込む方法しか使ったことないや

596:デフォルトの名無しさん
20/08/12 11:54:40 dVYQOL+d.net
URLリンク(harigami.jp)
すみません、まだやってます・・・そろそろ諦めようかな・・・

597:デフォルトの名無しさん
20/08/12 13:06:36 r3C450gU.net
>>577
カラム名を%sにするとだめみたいよ
置換フィールドで放り込んでやるとうまくいった

sql_4 = "SELECT 社員.営業所, COUNT(売上.売上) " \
      "FROM 社員 LEFT JOIN 売上 " \
      "ON 社員.社員ID = 売上.社員ID" \
      "WHERE {table} BETWEEN %s AND %s " \
      "GROUP BY 社員.営業所".format(table='売上.売上')

598:デフォルトの名無しさん
20/08/12 13:38:11.01 +7u2t/Rq.net
>>575
python -m packages.sample01
で警告が出るのはpythonのバージョンのせいかも知れない(python3.7では警告が出た)
この方法では
packages/__init__.py
がまず読み込まれ、その後
packages/sample01.py
が実行される
__init__.pyでsample01.pyを読み込んでいるので、sample01.pyは2回読み込まれていることに注意
__init__.pyにまとめることは普通に良くやるしpackages/__init__.pyの中でアスタリスクを使うことも良くやる
ただしmain.pyでアスタリスクを使うのは行儀が悪いように思う
fromナンチャラの行が増えるのが嫌いなら、メモリは食うけど
import packages
とした方が心の健康によさげ

599:デフォルトの名無しさん
20/08/12 13:54:59.57 +7u2t/Rq.net
>>577,578
>カラム名を%sにするとだめみたいよ
これが全て

600:デフォルトの名無しさん
20/08/12 14:15:16 .net
>>579
>2回読み込まれ
あーやっぱりそうだったのか なぜか2倍printされるので。。

>ただしmain.pyでアスタリスクを使うのは行儀が悪いよう
なるほど

601:デフォルトの名無しさん
20/08/12 14:19:38.23 dVYQOL+d.net
>>578
できました!やったーありがとうございます

602:デフォルトの名無しさん
20/08/12 14:21:32.92 q6njxWnQ.net
実用的でないPythonプログラミングを買いました。
VisualStudio2017とかでできますか?
皆さんオススメの環境を教えてください。
Pythonのバージョンは3.5らしいです。
(まだちゃんと読んでないけど)

603:デフォルトの名無しさん
20/08/12 15:03:29.71 +7u2t/Rq.net
Windowsなら
Python: Anaconda
エディタ: Visual Studio Code (VisualStudioではない)

604:デフォルトの名無しさん
20/08/12 15:21:07.28 JA3gbSGM.net
>>583
AnacondaPrompt
エディタはNotePad++

605:デフォルトの名無しさん
20/08/12 15:24:26 q6njxWnQ.net
>>584
>>585
有り難みが強い。
参考にさせていただきます。

606:デフォルトの名無しさん
20/08/13 10:56:33.23 0rwjVY3B.net
イテレータとリストの違いですが、イテレータは処理途中の状態を記録できるという点が違うのでしょうか?

607:デフォルトの名無しさん
20/08/13 11:27:43.34 WWRPvGcb.net
違う
君が言う後者の機能は generator
リスト は全部メモリに確保されたもの
イテレータ はメモリを占有せずに順番に値を取得
generator は処理途中の状態を記録できる
イテレータ�


608:フ実装に generator が使われているかも知れないが別の概念



609:デフォルトの名無しさん
20/08/13 11:27:51.35 RJ8S/0mc.net
作り置きと、注文の都度作るかの違い
作り置きは、置き場のスペースが必要

610:デフォルトの名無しさん
20/08/13 11:43:13.98 CM5c4LB7.net
リストとイテレータの違いがよくわからないのですが、かんたんナ... - Yahoo!知恵袋
URLリンク(detail.chiebukuro.yahoo.co.jp)
これでは分らなかったのか

611:デフォルトの名無しさん
20/08/13 12:28:04 0rwjVY3B.net
なるほど、なんとなくわかったです

612:デフォルトの名無しさん
20/08/13 12:48:37 BKihMO2y.net
foo = [1,2,3]
foo_iter = iter(foo)
next(foo_iter) #=> 1
next(foo_iter) #=> 2
next(foo_iter) #=> 3
next(foo_iter) #=> StopIteration

イテレータはnext()が呼ばれたら次の要素を1つ返すオブジェクト
内部でどこまで返したか覚えておく必要があるので状態を記録してるかというと記録してる

for x in foo: って書けば
iter(foo)して、next()を呼んで、得られた値をxに代入して、loop内の処理へ渡してる

ジェネレータは一般的には呼ばれたら1つ1つ値を生成して返す関数でイテレータの一種
ジェネレータではないイテレータは1つ1つ値を生成するんじゃなく
すでに用意されたリストなどから順に値を1つずつ返すもの
なので作り置きから注文の都度1つずつ返すのもイテレータ

613:デフォルトの名無しさん
20/08/13 13:00:42.76 0rwjVY3B.net
何故pathで取得したパスは、iterdirなどを使ってジェネレータにする必要があるんでしょうか?
ササッとリストでも取得してくれればいいんじゃないですか?
フォルダのファイル一覧を取得する場合、
パス→ジェネレータ生成→リスト化という手順を踏まないといけないみたいです
パス→リスト
でいいような、、

614:デフォルトの名無しさん
20/08/13 13:05:38.39 KaPqduB6.net
python2 へようこそ

615:デフォルトの名無しさん
20/08/13 13:10:29.18 xFixv4R5.net
一言で言うと「yieldがあるのがgenerator」

616:デフォルトの名無しさん
20/08/13 13:13:43.47 xFixv4R5.net
>>593
項目が超巨大になったときにリストの実態返されたら悲しいことになる
ジェネレータなら、あれ?なんかでかいぞ、止めよう、ができる

617:デフォルトの名無しさん
20/08/13 13:39:30.96 0rwjVY3B.net
>>596
な、なるほど
そこまで巨大なファイルを扱ったことはなかったので、必要性が分からんでした

618:デフォルトの名無しさん
20/08/13 13:56:32.50 CM5c4LB7.net
やっぱり強制的に教え込むべきだ
業界が先祖返りしてる
計算機プログラムの構造と解釈 第二版
URLリンク(sicp.iijlab.net)

619:デフォルトの名無しさん
20/08/13 14:04:29 jm0McRWL.net
>>592
> ジェネレータは一般的には呼ばれたら1つ1つ値を生成して返す関数でイテレータの一種
逆でしょ
「イテレータは、コンテナに含まれる値ひとつひとつに対して走るジェネレータの一種である。」
ハードウェア乱数生成装置から読み取った値を返すジェネレータとか内部で値を保持しないジェネレータとかもある
>>588とかも勘違いしてる

620:デフォルトの名無しさん
20/08/13 14:28:08 WYCQl6Jw.net
>>598
先祖還りって言うか
もう3周目とか4周目だろう

621:デフォルトの名無しさん
20/08/13 14:31:15 BKihMO2y.net
>>599
逆じゃないよ

>「イテレータは、コンテナに含まれる値ひとつひとつに対して走るジェネレータの一種である。」
こういう味方があっても別いいとは思うけど一般的ではない

>ハードウェア乱数生成装置から読み取った値を返すジェネレータとか内部で値を保持しないジェネレータとかもある
yield 乱数生成()で値を返すジェネレータがあったとして
何回yieldしたかとかloop条件を満たしてるかどうかとか
なんらかの状態を内部に保持することになるよね?

622:デフォルトの名無しさん
20/08/13 14:57:12.58 0rwjVY3B.net
ループの返り値を内包表記を使用して変数に挿れるのと、普通にループで記載する場合では何が違うんでしょうか?後者だとグローバル変数が必要になると思いますけど。

623:デフォルトの名無しさん
20/08/13 15:04:40.77 cLv1fX6M.net
>>602
URLリンク(qiita.com)

624:デフォルトの名無しさん
20/08/13 15:11:06.77 RDWqdqfD.net
>>601
> こういう味方があっても別いいとは思うけど一般的ではない
いや、なんの根拠もないお前の定義を一般的と主張されても困るよw
イテレータは必ずジェネレータだけどイテレータでないジェネレータはあるだろ(その例が乱数発生器)
> yield 乱数生成()で値を返すジェネレータがあったとして
> 何回yieldしたかとかloop条件を満たしてるかどうかとか
> なんらかの状態を内部に保持することになるよね?
そりゃ、そういうジェネレータならそうだろう…
内部情報を保持しない例に保持する奴持ってきて何を言いたいんだ?

625:デフォルトの名無しさん
20/08/13 15:27:20.97 TgMttUh/.net
>イテレータは必ずジェネレータだけど
どこからこんな解釈が?
pythonのイテレータはイテレータプロトコルをサポートするオブジェクトのことだし、
ジェネレータは呼ばれたらイテレータを返す関数のことだろ。

626:デフォルトの名無しさん
20/08/13 15:41:35.50 BKihMO2y.net
>>604
日本語のWikipediaの間違った記載を鵜呑みにしてるっぽいね
URLリンク(ja.wikipedia.org)ジェネレータ_(プログラミング)
英語版も見るといいよ
URLリンク(en.wikipedia.org)(computer_programming)
疑似乱数生成器(Psuedo Random Number Generator)の名前にジェネレータが含まれてるからといって
それらがプログラミング言語でいうところのジェネレータを使って実装されてるわけじゃないから

627:デフォルトの名無しさん
20/08/13 15:43:11.84 BKihMO2y.net
>>606
>それらがプログラミング言語でいうところのジェネレータを使って実装されてるわけじゃないから
それらが”すべて”プログラミング言語でいうところのジェネレータを使って実装されてるわけじゃないね
ジェネレータのものもあればそうでないものもあるということ

628:デフォルトの名無しさん
20/08/13 15:45:42.36 hDTlT7Ky.net
酷いのが居るな
知らないのなら黙ってれば良いのに

629:デフォルトの名無しさん
20/08/13 16:08:22.81 3TUGpUf8.net
>>605
>イテレータは必ずジェネレータだけど
逆ぅ!
>>> import collections, types
>>> issubclass(types.GeneratorType, collections.Iterator)
True

630:609
20/08/13 16:21:41.93 3TUGpUf8.net
訂正
>>609>>604へのレスね。

631:デフォルトの名無しさん
20/08/13 16:34:47 .net
tkinterでmainloopする前に無限ループ処理をしたいのですが
無限ループ処理Aをするとmainloop()できない
mainloop()を先に、無限ループ処理Aを後にすると、無限ループ処理Aできない
という板挟みになりました
どうしたら良いのでしょうか
import tkinter as tk
import time
while True:
_print("処理")
_time.sleep(1)
root = tk.TK()
root.mainloop()

632:デフォルトの名無しさん
20/08/13 16:52:12 wdeLOLBT.net
クラスの使い道がわからん
数値や文字を関数に放り込んで値を出して表示する
これだけでやりたいことが全部できてやることがなくなった

633:デフォルトの名無しさん
20/08/13 17:18:52.97 ut3SsjSC.net
>>611
root = tk.Tk()
def mokomoko():
処理
root.after(1000, mokomoko)
root.after(1000, mokomoko)
root.mainloop()

634:
20/08/13 17:19:09.07 P/jo0Y4p.net
>>612
そのとおり
クラスなんかなくても何でも書ける
ただしクラスという抽象化手段は、単に書けるという以上のものを目指すときに使う
例えば再利用とか

635:デフォルトの名無しさん
20/08/13 17:22:35.60 CM5c4LB7.net
>>611
まずはかんたんなアナログ時計から作った方がいい

636:デフォルトの名無しさん
20/08/13 17:32:17.63 .net
>>613
できました ありがとうございます
ついでにボタンを追加してみたのですが
処理中はなぜかプッシュ感がありませんでした
ボタンクリックしても押し込まれるアニメーションが出てこない(処理が終わった瞬間、処理前に押したときのボタン処理がドバーッと実行される)のですがそういうものなんでしょうか

637:デフォルトの名無しさん
20/08/13 17:34:45.02 .net
>>615
とりあえずストップウォッチのコードを眺めてみることにします

638:デフォルトの名無しさん
20/08/13 17:53:26.38 DN44Q+/a.net
何かしらPythonでなければならない理由があるならともかくGUIならC#で作った方が楽じゃないか?

639:デフォルトの名無しさん
20/08/13 17:56:22.43 1iT07aDZ.net
>>618
ココはPython の布教>>1

640:デフォルトの名無しさん
20/08/13 18:05:56.78 BJex6KXt.net
>>616
細かい所を拘るなら
PySimpleGUIとか別ライブラリを使うのも手
(tkinter自体は大昔からあるやつだから、モダンな物を作ろうとするとちょっと大変)

641:デフォルトの名無しさん
20/08/13 18:11:59.85 .net
URLリンク(ideone.com)
とりあえずストップウォッチを参考に書いてみましたが
やはりボタンのプッシュ感がありません
なぜでしょうか
明らかにroot.afterの行が原因で止まっているんだろうな、という感じです

642:デフォルトの名無しさん
20/08/13 18:12:22.88 .net
>>620
なるほど ぐぐってみます

643:デフォルトの名無しさん
20/08/13 18:14:57.99 0rwjVY3B.net
複数フォルダの先頭ファイルのみ取り出すにはどういうロジックにしたらいいんでしょうか?
フォルダのインデックス0を取り出したあと、各々のフォルダの中でファイルのインデックス0を取り出すという手順になるでしょうか

644:デフォルトの名無しさん
20/08/13 18:15:56.91 0rwjVY3B.net
あ、違いますね。
フォルダのインデックス0という点は間違いです。フォルダ構造です。
フォルダ1
┗ファイル1
┗ファイル2
フォルダ2
┗ファイル3
┗ファイル4

645:デフォルトの名無しさん
20/08/13 18:32:21 .net
自己解決したかどうかわかりませんが(意図した処理と同等かよくわからない)一応ボタンが常にプッシュしてくれるようになりました >>621
URLリンク(ideone.com)

646:デフォルトの名無しさん
20/08/13 19:42:17.54 2TasqE+0.net
>>623-624
その子供ファイルたちの「一番目」って何で決めるの?
サイズ?日付?名前???

647:デフォルトの名無しさん
20/08/13 20:42:25 0rwjVY3B.net
sortedを使用するので、名前です(´・ω・`)、、、

648:蟻人間
20/08/13 20:46:52.26 4HMLW5OS.net
フォルダの一覧を作成。
各フォルダについて最初のファイルを取得して、ファイルパスをリストに追加。

649:デフォルトの名無しさん
20/08/13 20:58:21 vQKb1geh.net
>>587
一般論であれば、まずPythonにおける「リスト」とは
他言語における「配列」を指す

次に、配列とは単なるデータ構造を指し、
その配列の各要素をあれこれ処理するアルゴリズムは「手続き」として定義される
データ構造と手続きが完全に分離されている、これがFORTRAN/COBOLに始まり
C/Pascal/Modulaへと続く1980年代前半までの古典的な「手続き型言語」の流れ

こうした手続き型の流れは、大規模開発における保守性/再利用性の低さから批判を受け、
対処策として注目された概念の一つが「抽象データ」であり、
これはデータ構造の内部詳細を隠蔽し外部に公開された手続きで処理対象をモデル化する
たとえばスタックという抽象データは、内部のデータ構造が配列であっても
リンクドリストであっても構わず、外部に公開されたEmpty/Push/Pop/IsEmptyという
手続きの集合(インターフェイス)だけで定義される

この抽象データという概念を発展させて、反復(ループ)処理すらも抽象化させるという提案が
イテレータ(iterator, 反復子)であり、それが最初に実装されたのがCluと呼ばれる実験的言語になる
まとめると、リスト(=配列)とはデータ構造の一種であり、イテレータとはリストを含む
複合データ構造に関する反復処理に限定して抽象データとしてモデル化した概念である


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch