くだすれPython(超初心者用) その38
■ このスレッドは過去ログ倉庫に格納されています
このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その37 http://mevius.5ch.net/test/read.cgi/tech/1521271945/ GPU不明 import os import platform import multiprocessing l=platform.system() r=multiprocessing.cpu_count() lr=len(os.sched_getaffinity(0)) print(l,r,lr) >>488 >>489 ありがとうございます。 まだすぐには理解できませんが、 理解できるまで記述いただいた内容や公式リンクをよく勉強します。 >>482 本格的とはいえないけど、 PyScripterはとにかく軽くていい。 エディター部分が少し弱い気もするけど、 一応IDEらしいことができるし、重宝してる。 >>482 皆さん沢山レスくださりありがとうございました 是非参考にさせていただきます >>487 makefile書いてmake -j4でいいよ >>> x = int(input("整数を入れてください;")) 整数を入れてください;44 >>> if x < 0: x = 0 print("負数はゼロとする") elif x ==0: SyntaxError: inconsistent use of tabs and spaces in indentation "オライリー Python チュートリアル第3版”本の通りにテストしようとすると、 途中でエラーが出てしまう。 実行環境は Windows10 x64, python は以前3.6でうまくいかないので、3.7しました。 Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. SyntaxError: inconsistent use of tabs and spaces in indentation このエラーの通りだろ インデントに タブ と スペース が混在している >>497 インデントが矛盾してますってエラーなんだけど注意して見てみたら? 前から思ってたけど、文頭の空白が削除されて2ちゃんはPython向けじゃないなぁと...。 専ブラなら大丈夫なんすか? コードが崩れるからideoneとか投稿して貼れと>>1 に書いてあったと思ったが 誰か消したのか >>502 コードが崩れるからとは書いてないけど くだすれPython(超初心者用) その32 http://echo.2ch.net/test/read.cgi/tech/1486173667 までは ◆関連リンク Python の Home Page ttp://www.python.org/ ◆長いコードはこういうところにはってください ttp://ideone.com/ ttp://codepad.org/ ttp://pastebin.com/ ttp://dpaste.com/ ttps://try.jupyter.org/ ◆まとめwiki ttp://python.rdy.jp/ って書いてあった で、 くだすれPython(超初心者用) その33 http://echo.2ch.net/test/read.cgi/tech/1490424742/ で無くなってる(>> 2以降に移したのかも知らんが…) とりあえず次スレ立てる人は復活してほしいな まぁ、スペース4つを全角スペースに置換してここに貼ればいいだけなんだけどな。 ところで、 if hoge == 1: #数値 と if hoge == '1' #数字 では、どちらが速いんだ? 後者は2文字分余計にパース時間がかかるし、文字列の最後まで比較が完了したかチェックが必要なので、理論的には前者が早いが、 ボトルネックを調べるまではそんなこと気にしても意味がない。 >>505 それぞれを1000万回繰り返すコードを書いて 開始時間と終了時間を測ればいいんじゃね >>498 ,499ff,500 ありがとうございます。 pythionのIDELなのですが 設定でタブを2にしても4にしても、なぜか下の段の インデントは8位になり、うまくいきません。 >>509 IDLEはめんどうだから anaconda入れてjupyter notebook または google colab使おう >>505 ipythonの%timeitでそういうのを調べられる ものすごく僅かな差だが、数値のほうが早い あと変数名が短いほうが早い %timeit if a==1: pass 52.9 ns ± 0.122 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each) %timeit if a=="1": pass 56.7 ns ± 0.513 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each) %timeit if hoge==1: pass 53.9 ns ± 0.365 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each) %timeit if hoge=="1": pass 57.5 ns ± 0.084 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each) >>513 調べてくれてありがとう。 変数名の長さについては予想通りの結果ではあるんだけど、 数値と数字の差がそれ以上に大きかった(前者が平均でおよそ6.5%速い)ということに驚いた。 VBAをそれなりに使えるようになったからPython始めてみたいんだが、やっぱり全然難しい? VBAの難易度を10としたらPythonはどのくらい? あと、この関数はVBAで言ったらコレ!みたいな早見表みたいのないよね? なにをしたいかによるが 5くらいじゃね?w ないよ >>515 既にVBAを使えるなら簡単だよ くどい型宣言、配列のみの貧弱なデータ構造といった VBAの使いづらい点が、Pythonでは全て解決されている ただしWebやネットワークの世界には手を出すなよ Python以外にも必要な知識が爆発的に増えていくら時間があっても足りない Pythonはローカルのテキストデータをいじくる用途で輝く言語だ >>515 ナカーマ! 俺もVBAは随分とマスターしつつあるのでPythonに手を出し中…。 入門書からコツコツやっててイメージが湧きつつある!! >>516-517 まじで?すげー難しいイメージあったんだが本格的に学んでみようかな >>518 (゚∀゚)人(゚∀゚)ナカーマ VBAはやりたいことがあってそれを調べてる内にできるようになったクチだから、Pythonは何ができるか分からんからとっつきにくいわ 記法について教えてください。 https://qiita.com/pumbaacave/items/942f86269b2c56313c15 上記のサイトのマルチプロセス実行関数を定義している箇所に下記のように記述があるのですが、 なぜカンマ以降空欄なのでしょうか? process_pool = Pool(processes=n, ) そのカンマは有っても無くても変わらんから消し忘れだろう それで納得行かないならコメント欄で本人に聞いてこい ここは著者の気持ち推測スレじゃないからな 毎週得意先から10くらいのPDFが送られてくるのですが。 PDFを全て選択→コピー→貼り付け→ボタン押してVBA発動(社内で見たい数字に変換)→次のPDFを開く…手作業で繰り返しています。 これをPDF自動で開かせてコピーペーストしてVBAを動かす、、までPythonでやりたいのですが、可能でしょうか? >>522 今流行りのRPA導入したら? 悪いけどPythonには不向きなタスク 課題解決において、本当に優れたソリューションは有効性や実現性だけでなく応用性・永続性・再現性を備えている ・PDFのフォーマットが変わったらどうするのか? ・自分が今の仕事から離れたらどうするのか? ・他の業務にも広く展開できないか? Pythonで他の誰にも分からないもの作るより、522が率先してRPA入れて展開したほうが遥かに522は評価される そういう思考と行動ができればCIOにだってなれるぞ 普通ににPythonのRPAフレームワークあるが… うんこ漏らしながら、、答えると PDFMiner.six 使え。 すっ、すいません。 先程まで咥えてたボっぼくのおちんぽっぽ知りませんか? トイレに行ったら、どこに行ったか分かりません。 コンピューターの未来予測で解決して下さいwww https://eurekalert.org/multimedia/pub/173001.php 皆さん、回答ありがとうございます。 もう少し自分の方で調べてから、再度質問させて頂きます。 >>530 マジでやばいな ウィルスだらけで、PC壊れた。 弁償してくれ。 今更だけど>>447 に自己レス os.renameだと移動先がない場合、FileNotFoundErrorになる os.renamesだと移動先がない場合、自動生成してくれる Pythonの標準ライブラリはsのある・なしで動作が変わるものがあるから気をつけないといかんね Pythonのファイル操作関連機能は 複数ライブラリに散らばってたり重複があったりと カオスなことになってて非常に使いづらい 一度自分用の早見表を作ったんだけど紛失してしまった 3で互換性なくなる時にpathlibあたりに一元化すれば良かったのに 複雑だが頻繁に使うなら自分専用にラップしただけのライブラリでも作ればいい 自分専用にラップといえば、 re.searchはマッチしたものを直接返せないと思って関数作ってたけど ↓みたいににすれば直接返せると最近知った txt="123456" mat=re.search("12(.*?)56",txt).group(1) マッチオブジェクトを返すってなんだよ使いにくいなぁと思ってたけど 使い方を知ったらなかなか便利だと感心した そういえばGuidoがBDFL辞めるらしいな PEP572関係でdisられたのが原因らしいが、ML追っかけてないからよく分からん まあ、辞めたところで何がどうなることもないと思うがね >>539 >使い方を知ったら 正しくない使い方だろ… 使い捨てスクリプトだろうから止めないけど >>539 オブジェクトなんだからメソッドあるだろうよ ちゃんと説明は読もうな >>541 俺もずっとこの使い方してたけどどこがまずいのか教えて >>534 sortに対するsortedのつもりで、reverseに対するreversedを使おうとするとハマる。 こちらはイテレータを返すので、もう一度リスト化しないと同じにならない。 >>543 たぶん以下のように正規表現パターンをコンパイルして使えってことだと思う 同じパターンで繰り返し何度も検索する時に速度的に有利・・・らしいが これを使わないのは正しくない、というのは言い過ぎ txt="123456" r = re.compile("12(.*?)56") mat = r.search(txt).group(1) >>543 searchでヒットしなかった場合Noneが返ってきて groupメソッドなんて知らないって怒られる >>545 ちょっと説得力が弱いような… >>546 そういう意味なら納得です >>548 だよなあ くだすれの質問コードにどんだけ厳格さを要求するんだか >>548 ミスマッチの結果、二次的に発生した例外を捕まえてエラーハンドリングするのは意図が伝わりにくいしピタゴラスイッチかよって気がする そのままsearchして(この時点で例外とはならない)、 try-catchでgroup(1)すればいいのでは? 製品のプルリクに入ってたら直せって言うけど 個人のコードだったらどうでもいいわ >>551 いや普通に戻り値チェックしてください… match = re.search(pat, text) if match: . s = match.group(1) webスクレイピングは、サイトの仕様変更である日突然マッチしなくなる可能性があるけど それを想定して例外処理を作っとくのは面倒だし、作り忘れが発生する可能性も高いから あえて>539のやり方を使って、エラーで止まるようにしたほうがわかりやすいかもしれん 仕様変更なのか 一時的な障害なのか たまたまエラーになるデータだったのか 他の理由なのか そういうの分析しないといけないから リクエスト、レスポンスのダンプと処理のログは残したほうがいいよ 教えてって書いてあるから横から思うところを言っただけだが >>549 みたいなこと言われるんだったら二度と教えねえわ >>556 すまん、俺が悪かったよ ちょっとイライラしててごめんな >>553 の方法でNoneじゃないことを確認すれば何の問題もないんだよな 間違った方法ではない >>556 教えたくないなら教えなければいい義務ではないのだから >>559 間違っている箇所(戻り値チェック)を直せば、「間違った方法ではない」のは当たり前ですけどね… def func(): a,b=・・・ return a,b の戻り値aだけが欲しい時にa=func()[0]などとせずa=func()だけで可能にする方法ある? この手の質問たまに見るけどなぜそう言うことをしたいのかいつもわからん >>562 def func(): a,b=・・・ return a >>565 matlabだとそれができるから、matlabから来た人は重要な戻り値を先頭にしてたまにだけ欲しい戻り値を後ろに書きたくなる pythonでそれ同じようにすると、a,_=func()とかa=func()[0]とか書かなきゃならないのを忘れてどこかでエラー出ることが頻繁に発生する >>567 俺もそれ思ったけど、質問者の意図はreturn a,bとした上でaだけ返すって意味みたい。 なんでそんなことしたいかは分からんけど >>539 None で Exception 出ないか? ああ違うか yeald a yeald b ydald c ... >>568 そのために > a=func()だけで可能 なんてされたら迷惑だよ 自分だけで使うと言うならPythonの処理系弄ればいいと思うよ >>545 txt="123456" r1 = re.compile("12(.*?)56") mat = r.search(txt).group(1) と r2 = "12(.*?)56" mat = re.search(r2, txt).group(1) 結果は同じになるけど、 オブジェクトにするかしないかで、細かい違いはどういうところで出てくるの? 最初の方(r1)間違った txt="123456" r1 = re.compile("12(.*?)56") mat = r1.search(txt).group(1) r2 = "12(.*?)56" mat = re.search(r2, txt).group(1) >>578 じゃあ書き込むなよ。 沸点低すぎだわ。面倒くせ >>576 読んで字の如くコンパイルされるので高速化が期待できる。 >>597 コンパイルされるから高速化ぁ? それじゃ説明になってないんだよボケ >>580 答えないんだから書き込まなくていいって。ROMに徹してなよ。 >>545 に答え書いてるだろうが日本語読めないのか? >>581 今日限りでこんな所ROMすらしなくなるから安心しろ 煽られて反応するのは方向性が違うだけで、沸点の低さについては同レベル >>579 ,>>583 やはりオブジェクトにコンパイルすると効率が上がるという点が全てみたいだね。 あとは、コンパイルのコストとの比較になるのかな。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる