くだすれPython(超初心者用) その49【まず1嫁】
■ このスレッドは過去ログ倉庫に格納されています
当スレに★Python以外のプログラミング言語での回答類を書くべからず★ 「Ruby では」「Rubyでは」「某言語では」をNGワード登録推奨 このスレッドは「お勉強」スレのほうには書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。 ★エラーを解決したい場合は、 表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、 実行環境(Pythonのバージョン・OS+IDEの種類とバージョン)をシッカリ書くこと。 【【【複数の連続半角スペースはなかったことになる・タブがうまく入らない5chの仕様】】】に注意! Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★ので ↓等の、いわゆるコードうp用サイトに貼ってこいください。 ttps://techiedelight.com/compiler/ Run Code機能あり。最近流行中? ttp://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ◇Python公式サイト◇ http://www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi 〇前スレ〇 くだすれPython(超初心者用) その48【まず1嫁】 https://mevius.5ch.net/test/read.cgi/tech/1589201940/ 次スレは >>985 あたりが挑戦してくだしあ。(980過ぎても自動落ちはしなくなって久しい) ### END OF TEMPLATE ### うちもスクレイピングしたくて本買ったけど、結局ネットで調べてる情報でやりたいこと完成したから1ページも読まないまま置いてある 目的が先に達成されてしまうとやる気がおきん… 回答ありがとうございます とりあえずpython 2年生やって、342さんのをやってみますね ちなみに今は面倒くさいことはpython にやらせようをやっています これも結構難しいです 理解には三カ月ぐらいかかりそう 純粋にスクレイピングがやってて面白くない。 ほとんどテクニックだけの世界で。 その点ではWebサーバサイドも似ているけど、こっちはまだ作る楽しみがある。 >>339 pythonのマニュアル どうしてみんなマニュアルを読まないんだろうね 一番ちゃんと書いてあるのに スクレイピングやるならPythonよりJavascript読めるようになる方が重要だよ > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw Pythonさえろくにできないバカチョンのくせに できるとほざくクソチョンw 日本で強姦と窃盗を繰り返す 犯罪者在日のクソチョンw beautifulsoupでは取れないサイトが多すぎる。 で、結局変化後のDOMに追随できるSeleniumの学習に進むことになるわけだが… そこまでやるなら、さらにjsとcssも分かってるとくればpuppeteerやtaiko使った方が楽という罠 seleniumを使っていると悪質botとみなしてアクセスブロックするサービスを使う増えてきていて、スクレイピングはいずれ廃れる技術。 seleniumとかは本物のブラウザを操作してアクセスしてるわけで、そんなん掻い潜る方法はいくらでもある。ただしrecapchaに類するパズル解かせて人間か判断するブロックはいかんともしがたいが… そこは一旦停止させて人間に入力させるようにするしかない 株価のデータを引っ張ってくるにはどうするのがベストなの? 最初から、Ruby on Rails で、Selenium Webdriver が楽。 DB も付いてる Github Actions のCI のシステムテストで、 Capybara で、Headless Chrome を使うとか Rubyなんて死んだ言語今更やるくらいならPythonでいいだろ selenium自体はJava製で、各種言語向けのドライバーが出ています。 その中で最も人気なのがPython向けdriverで、 最も不人気なのがRuby向けdriverです。 その死んだ言語と比べてもスクレイピングに必要な言語機能もライブラリも劣ってるのがPythonなんだよなぁ 今どきbs4+selenium+pythonで苦労してる人ってちょっと大丈夫?って思っちゃう 実際につかったことなければ苦労も分からないか > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw Pythonさえろくにできないバカチョンのくせに できるとほざくクソチョンw 日本で強姦と窃盗を繰り返す 犯罪者在日のクソチョンw >>353 >一旦停止させて人間に入力させるようにするしかない ここを上手く工夫して 「AIで文字認識の研究にご協力ください」っていう偽サイト造って そこに問題解く人を大量に誘導する仕組みにして captchaを人間に代行させる自動化プログラムらしきものを観たことがある >>363 その偽サイトにスクレイピングボットがアクセスしてくるという地獄絵図www 一種の(良心的?)MITMなのでbotにアクセスされても困らないというか botが来る理由が判らない >>363 2captchaだね。 1000ReCaptchaあたり3ドル取る有料サービス。 現在の平均解決時間は45秒とのこと。 pythonでaccessを実行したいと考えています。 いくつか調べてみましたがさっぱり分からず。。。 具体的にはaccessでファイルを出力する際にボタンをクリックするのですが、その作業を複数回する必要があり、それを自動化したいと考えています。 pythonでデータベースを読む込む必要はなく、その作業だけを自動化したいです。 どのようなモジュールを使えばできるでしょうか? 低レベルな質問で恐縮ですが、お答えいただければ幸いです。 >>367 PyAutoGUIみたいな自動操作系のライブラリを使う > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw Pythonさえろくにできないバカチョンのくせに できるとほざくクソチョンw 日本で強姦と窃盗を繰り返す 犯罪者在日のクソチョンw 辞書でキーが存在しないときにNone返してくれるgetって便利なのあるけど これの配列バージョンは無いの? 335 336 338 コードもエラーコードも1のリンクあるものに貼り付けるのが正しいのでしょうか? 悩んでいたのですが、コードが人によっては不愉快になるかもしれないのでその質問自体は自粛しておこうかと思ってます。 内容的にはポイ活的なコードですが。 別の質問なのですが、会社のパソコンで休み時間などにPythonを勉強したいのですが会社のパソコンにはソフトのインストールはできません。 ウェブ上でseleniumとかも使えるサイトは無いですよね? 会社でポイ活のコードとか作動させる気はなく勉強用としてです。 普通に家PCをリモートでいいんじゃない、スマホからでもつなげるし >>372 >上半分 質問すること自体が不愉快になるぞ 規約違反チネ!!!(・∀・) 俺もポイ活勢だけどあまりこの話は余所で出さない方がいいぞ ポイ活自体印象相当悪いからな >>367 win32com を使う access でボタンを押したときに呼ばれてる関数を探す win32com からその関数を実行する 373 なるほど。わかりました。 374 環境作ればリモートもたしかによさそうな気がしてきました。p関連は最終的に自分で勉強していきます。 375 すみません。ですが1を読んでもわかりません。 python 3.9がリリースされたらしいんですが 公式見ても見つかりません 誤報でしょうか? 3.9はまだベータ、正式版は10/5の予定 ダウンロードページの真ん中あたりにPython 3.9 Release Scheduleってあるじゃろ a = 0 if True: _a = 1 else: _a = 0 print( a ) 一行目のa=0ってかならずaが1か0が代入されるのでいらないと思うけどみなさんは書く派ですか? 自分は何の変数があるかどうかぱっとみわかりやすいので書く派なんすけどa以外にも複数変数あるときも書くものかなって。 でも結局最後の行見ないといけないし、やっぱこの変数使わないってなったら編集の面倒さも2倍だなって else には行かないから a = 1 だけで充分だろ もし変数観るなら b = True a = 1 * b #aは1 b = False a = 1 * b #aは0 >>383 その1や0の部分に他の変数が出てくる時見づらくないですか? 関数型みたいに他の変数の数だけ三項演算子で記述するってことかな? それなら見やすいと思った >>384 >else には行かないから その通りです なぜならif Trueになっているからです そこから下はちょっと何言ってるかわかりませんでしたすいません python基本好きだけど、三項演算子とlambdaはブサイクで嫌い >>378 >>385 おまえらまとめて 初心者の質問板 https://matsuri.5ch.net/qa/ へ(・∀・)カエレ!!! もう二度とくるなよ >>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)) 最終的に使われている変数は何か、が圧倒的に見やすい いらない変数を削除・編集したときに、削除・編集すべき関数も瞬時にわかる Pythonしか書かない人とCも書く人ではコーディングスタイルが多少変わってもおかしくない とりあえず出てくる変数は先に宣言した方が見やすかったりするのさ。 後でアルゴリズムを変える可能性を考えると必ず式で一発で評価できるか微妙なときもあるしね。 初歩的なことですまないが、 if True: って、条件の対象って何? 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と表示されるようにしているつもりなんですが・・・。 >>391 何もないよ すでにBoolean型のTrueが入ってるから >>391 if文は引数が真であるかを判断するもの >>392 メソッドの引数は渡される前に評価(print()が実行)されてしまうから。tkは関係ない def clicked(): print('click') button1.bind('<button-1>', clicked) >>393 ,>>394 ということは、やっぱり必ず真になって偽にはならないということだよね デバッグやループのときに使うのはわかるけど、 それ以外で使う意味がいまいちわからなくて 結局件の使い方には意味がないってことでいいの? >>389 、>>396 とにかく 是が非でも a=1 にしたいんだろ そこを通過してくれないと困るんだろ n = f1(True)を n = f1(False)にすればa=0になるし if True: を if False:にしてもいいし 文脈みればどうでもいい部分だからif Trueにしてるってことくらいわかるでしょ a=1だけでいいとかはまったくの的外れ コード”のみ”をみれば結果がa=1だからそれを最適化すればいい とか普通にネタで言ってるんだと思って流してたけど違うのか?? そんなこと言い出したら全角の_でインデント使ってるとこも エラー出るぞとか言って徹底すればいいのに ガチのマジでアスペいない? あざといからネタでやってるんだと思ってるんだけどなぁ 初めから知識0からじゃ何も進まないじゃないか ともかく前提条件が >>1 以外の事は考えたくないんだ ↓のような標準入力が大量にあったとして、それをリストに入れたい状況で、 リストを順に命名する方法はありますか? list_001 list_002 list_003 list_004 list_m の様に増えていくイメージです。 for i in range (m): のような形の処理しか思いつかないのですが、 リストを何らかの順番で規則的に命名する方法がわかりません。 よろしくおねがいします。 -------------------------- 123 4 56 789 0123 45 67 8901 .....n list_001 as efef asef fe3 434 ee fea ...n list_002 aseff ae asd ...n list_m >>403 temp_dic={} forループの中で temp_list=[] リストの中身いれてさいごに hoge="list_"+str(i)#桁揃えのやり方あるけどなんだったかわすれたわ temp_dic[hoge]=temp_list でもってさいごのさいごに またforループでdicから順々に取り出せばえんでねーのかな > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw Pythonさえろくにできないバカチョンのくせに できるとほざくクソチョンw 日本で強姦と窃盗を繰り返す 犯罪者在日のクソチョンw >>405 放射能まみれのチョッパリが何をイキガッているんだ? 強姦と窃盗はお前らチョッパリのお得意分野だろう! 慰安婦の方々に謝罪し、徴用工の方々にきちんと賠償しろ 俺たちに口応えするのはそれからだ! >>395 ありがとうございます。 これだと clicked() takes 0 positional arguments but 1 was given となりました。引数無いぞコラというエラーですよね。 def clicked(a): print('click') button1.bind('<button-1>', clicked) だとOK。 button1.bind('<button-1>', clicked) って左クリックをしたらclikedを実行ではなくて、 左クリックをすると イベント値をclickedにわたすということでしょうか? クリックをしたら関数を実行みたいにしたいのですがbindを使うのが間違ってる? >>404 ありがとうございます。 なんとかなりそうです。 >>403 execをつかう 要するに、「python 変数 動的 生成」と検索すると答えは出る Python - pythonでname0,name1,name2・・・のように変数を宣言したい|teratail https://teratail.com/questions/9130 pythonで動的に変数を定義する - Qiita https://qiita.com/ytsumura/items/917de811c023ee9f3709 pythonの教科書でevalが全然説明されてないのも問題だ こういう便利なヤツはバンバン使えばいいのに そもそもevalとapplyは最重要項目でしょう そもそもlist/dictに勝る点がないので、便利でも何でもない。 デバッグのし辛さとか変なコードの実行などなど。 execなんかよりストレートにglobals/locals使う方法もあるが、 globals()["hoge"] = "Hoge" print(hoge) これもexecと同様デバッグがめんどくさくなる。 >>410 すいません自己解決しました。 button1 = tk.Button(root1, text='1データを分析', font=20,command = clicked) でOKでした。 ずっとanacondaからvscodeでpythonいじってたんですが、 プログラムの規模が大きくなってきたため、統合開発環境をインストールして開発しようかと思っています。 無料の統合開発環境でいいのってないですか? 2次元配列のリストと辞書(一次元)は同じ様に思えるのですが、違いはありますか? (3.7以前、辞書が順序を保存しなかったときは大きな違いがあったと理解しています。) それぞれの仕組みが書いてあるサイトはあるのですが、何が違うのかを調べても見つけることが出来ませんでした。 書くのが面倒であれば、説明が書いてあるサイトを貼っていただく形でもありがたいです。 >>412 ありがとうございます。試してみます。 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) グラフをプロットしたらこのようなエラーが出ました。解決方法を教えてください > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw Pythonさえろくにできないバカチョンのくせに できるとほざくクソチョンw 日本で強姦と窃盗を繰り返す 犯罪者在日のクソチョンw 今どきWindowsに直でPython入れてる馬鹿はくたばっとけよ >>417 1.Spyderを1回でも起動するとホームフォルダに「.spyder-py3」というフォルダができています。 Windowsの方は、ご自分のデフォルトのホームフォルダに「.spyder-py3」ができていることがわかります。 OSXの方は、ホームフォルダ直下に、不可視フォルダとして存在しています(見えません)。Finderの「移動」メニュー→「フォルダへ移動」をクリックして、「フォルダの場所を入力」に「.spyder-py3」と入力し、Returnキーを入力します。 2.このフォルダの中に、「spyder.lock」というファイルを探してください。このロックファイルは通常Spyderの起動時に自動的に作成され、終了時に自動的に消去されます。ところが、何らかの理由でこれが残ってしまった場合、spyderを新たに起動できなくなります。 3.spyder.lockをゴミ箱に入れて削除します。 4.再びspyderの起動をおこなってください。 >>417 >>1 をよめ まもれ はなしはそれからだ >>403 n行目のリストにlists[n]でアクセスできれば十分だと思うんだけど どうしてそれぞれの行にわざわざ変数名を付けたいの? >>424 webからpytonで取得したデータをcsvかxmlで出力して、 他のデータと合わせて処理したいというのが今の狙いです。 今の所excelで最終的に処理しようと思っていますが、もう少し勉強しないとそのアプローチが正しいのかもわからないです。 プログラム自体完全初心者で、初めて1週間程度なので分かっていない部分が非常に多いことは自覚してます。 pandaとかnumpyとか色々あるようですが、その辺りが理解できれば別のアプローチを考えるかもしれません。 質問にキチンと答えられていなかったので補足すると、 csvで出力した場合に他のデータとマージしたりする時に、 各行ごとに順番で名前がついていれば処理しやすいと思った、というのが理由です。 根本的な発想が間違っている可能性もありますが、その点は申し訳ないです。 単純に順番でなのであれば、>>424 が言う様に2次元配列でいいと思う >>> list=[["a","b","c"],[0,1,2],["あ","い","う"]] >>> list[0] ['a', 'b', 'c'] >>> list[1][1] 1 >>426 変数名そのものを変数で定義したり外部に出すのはとてもむずかしい (できなくはないが普通はやらないので特別な方法をとる必要がある) dictを使うのが正解で それならitems()で変数名と中身の両方にアクセスできる 変数名っていうかキーね まぁ普通はそういう変数を変数で命名するのはpython以外の言語でもしない 皆様、色々教えて頂きありがとうございます。 >まぁ普通はそういう変数を変数で命名するのはpython以外の言語でもしない なるほど。 それでも世の中うまく回ってるってことは、私みたいなアプローチをする必要がないんでしょうね。 辞書とか多次元リストを試してみます。ありがとうございました。 >>425 それで、それぞれの行に変数名を付けたい/付けたほうがよさそうと思った理由は? >>426 そういう理由であれば変数名じゃなく値として行番号を持つデータ構造を選ぶか csvに出力するときにlists[n]のインデックス値を行番号として出力するようにすればいい 変数名は入れ物の名前で 基本的にプログラムに固定値として書く(ハードコーディングする)ものなので 動的に変わるような値は変数名にはしない (メタプログラミングとかやや特殊な使い方をしたい場合は除いて) しかし初めて1週間にしてはやろうとしてることがハイレベルだな。 才能あるんじゃない? conda activate "C:\Users\takashi ishida\Anaconda3" conda : 用語 'conda' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識 されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから 、再試行してください。 >>436 すいません。途中で送信しました。 anacondaのvscodeで開発したプログラムを他で実行しようとするとこういうエラーがでます。 condaコマンドって使った覚えがないのですが・・・。 >>437 同じディレクトリに.vscodeってあって、それまでコピーしてきてないか? >>435 才能があるとは思わないですが、面白さにハマって一気に勉強してます。 あと10年早くプログラミング開始してれば絶対にエンジニアに転職してたと思います。 キチンと使えるようになれば相当色んなことが出来ますね。 暇つぶしにゲームとかやってないでpythonやってりゃ良かった・・・ >>392 既に米付いてるけどもうひとつ Button1.bind("<button1-1>", lambda : print('click')) >>436-437 「他」とやらに .pyだけもってきていて anaconda入ってないとかいうオチじゃねーの? >>439 オラも 暇つぶしにプログラミングなんてしてないで ボカロの調教か3Dモデリングしてればよかったとか そも建築学科いってればとか いろいろ思うだーよ > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw Pythonさえろくにできないバカチョンのくせに できるとほざくクソチョンw 日本で強姦と窃盗を繰り返す 犯罪者在日のクソチョンw ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる