1 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 22:25:08.74 ID:/hGmbW/Z.net] 当スレに★Python以外のプログラミング言語での回答類を書くべからず★ 派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。 「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。 このスレッドは「お勉強」スレのほうには書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。 ★エラーを解決したい場合★は、 表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、 実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。 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公式◇ www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi 〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その56 mevius.5ch.net/test/read.cgi/tech/1640536690/ 次スレたては >>985 あたりが挑戦する。 ### END OF TEMPLATE ###
458 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 20:09:26.68 ID:dz51dLzk.net] 最終型 import math def print_bar(n, max=100, expansion=1, *, cr=2, sep="|", prefix="", suffix="", unit=""): ____box = "█ ▏▎▍▌▋▊▉" ____rate = (n * expansion * 100) // max ____bar = box[0] * (rate//8) + box[rate%8] * bool(rate%8) ____print(f"{prefix}{n:{len(str(max))}d}{unit} {sep}{bar:{math.ceil(expansion*100/8)}s}{sep}{suffix}" + "\n"*cr, end="")
459 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 21:25:09.45 ID:nja0E+A7.net] >>444 すんごーい! crの初期値は1が良いかな、それ以外は全部気に入りました
460 名前:デフォルトの名無しさん [2022/07/22(金) 00:46:45.54 ID:LN4IvGf8.net] >>444 ありがとうございます
461 名前:デフォルトの名無しさん [2022/07/22(金) 11:32:26.12 ID:emgmw9dd.net] >>421-422 runas
462 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 14:53:38.79 ID:hAgOKfi8.net] >>444 数値を非表示にするオプションつけ忘れた
463 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 17:03:59.46 ID:t+dBeaSp.net] >>448 そのオプション名を何にするかでセンスが問われる num, display_num, meter, bar_value, ..etc さあ、キミのセンスを見せてくれ!
464 名前:デフォルトの名無しさん [2022/07/22(金) 17:47:22.62 ID:iaUAG8EO.net] ここはきみの日記帳じゃない
465 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 19:07:18.92 ID:t+dBeaSp.net] >>450 関数や変数の命名はとても重要だよ? 端的で分かりやすくする必要がある それが可読性やメンテナンス性をあげるわけなのだよ プログラミングは名前付けであると言われる所以はそういうことなのだよ 今回の数値の非表示オプション名は非常に難しい、私的にはdisplay_valueがベストかな? と考えつつも彼の意見も参考にしたいわけだ、もちろんtqdmではどうしているのかな? と調べたりもした、tqdmではbar_formatで書式を指定できるみたいだね その中で数値部分はpercentageという変数名のようだ print_barはunit指定ができるわけで%表示固定ではないから、percentageは適切ではない と考えると・・ね?難しいでしょ? 皆の意見も聞きたいじゃん!
466 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 19:43:18.38 ID:bpOnuI9e.net] 名前は重要。 開発が終わった後でも、コードを見る事があるから プログラミングの3割の時間は、分かりやすい名前を考えること 簡潔に説明されている名前なら、 処理を詳しく見なくても理解が進むので、バグも減って高品質になる リファクタリング・メソッド化などは、Rubyist の基本
467 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 19:52:25.71 ID:PdYjn4LX.net] メソッドが長すぎると名付けが難しいから結局は短く作るのがいいのか? でもそれだと分割しすぎとか言われそうだし 「汎用的、抽象的」な名前がいいのか「汎用的な名前を避けて具体的」にすべきなのか
468 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 19:52:35.56 ID:t+dBeaSp.net] >>448 でけた! tqdmのbar_formatを採用 これで数値の表示/非表示はもちろん色々柔軟に対応できる def print_bar(n, max=100, expansion=1, *, bar_format="{prefix}{num}{sep}{bar}{sep}{suffix}", ____________ unit="%", sep="|", prefix="", suffix="", cr=1): ____box = "█ ▏▎▍▌▋▊▉" ____rate = (n * expansion * 100) // max ____bar = box[0] * (rate//8) + box[rate%8] * bool(rate%8) ____bar = f"{bar:{math.ceil(expansion*100/8)}s}" ____num = f"{n:{len(str(max))}d}{unit}" ____print(bar_format.format(**locals()) + "\n"*cr, end="")
469 名前:452 mailto:sage [2022/07/22(金) 21:05:54.53 ID:bpOnuI9e.net] 例えば、Ruby のモジュール関数の名前なら、 cancel_button_label_text apply_or_cancel_button インスタンスメソッド名なら、 obj.suspended? 末尾の? で、戻り値がbool 型だと表現できる
470 名前:デフォルトの名無しさん [2022/07/22(金) 21:06:08.18 ID:aVBkeTN2.net] >454 print_bar.update ってできない?
471 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 21:29:43.19 ID:t+dBeaSp.net] >>456 tqdmのupdateみたいなことができるかってこと? クラス化すればできるよ ああ、bar_formatとか呼び出すごとに変数指定するのはアホだよね クラス化してインスタンス生成時にbar_format指定した方がいいよね
472 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 22:27:04.77 ID:t+dBeaSp.net] クラス化できたけど、関数バージョン(>>444 )の方が好きかも class print_bar: ____def __init__(self, max=100, num_format="{num:{max_digit}d}{unit}", ____________ bar_format="{prefix}{num_format}{sep}{bar}{sep}{suffix}", ____________ unit="%", sep="|", prefix="", suffix="", cr=1): ________self.box = "█ ▏▎▍▌▋▊▉" ________self.max = max ________self.max_digit = len(str(max)) ________self.num_format = num_format ________self.bar_format = bar_format ________self.unit = unit ________self.sep = sep ________self.prefix = prefix ________self.suffix = suffix ____def update(self, num, expansion=1, cr=1): ________rate = (num * expansion * 100) // self.max ________num_format = self.num_format.format(num=num, **self.__dict__) ________bar = f"{self.box[0] * (rate//8) + self.box[rate%8] * bool(rate%8):{math.ceil(expansion*100/8)}s}" ________print(self.bar_format.format(bar=bar, **dict(self.__dict__, num_format=num_format)) + "\n"*cr, end="") p = print_bar() p.update(70)
473 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 22:57:55 ID:oFTCo3Qt.net] 日記帳で試行錯誤して、結論が出てから書き込んでください
474 名前:デフォルトの名無しさん [2022/07/22(金) 23:49:56.07 ID:XYg2RZCf.net] boxサーバーに上がっているExcelやcsvのデータってpythonで読み取ることできるのでしょうか? https://app.box.com/file/xxxxxxxxxxxxxのようなURLを指定して ファイル内のデータを読み込みたいのですがうまくいきませんでした。
475 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 06:43:50.22 ID:NAv7kQq5.net] beautifulsoupでいったんダウンロードすれば?
476 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 06:53:36.23 ID:DC0Z
] [ここ壊れてます]
477 名前:GSft.net mailto: ども、print_barの作者です。こんな短いプログラムに作者もくそもないですが・・・ 上記コードを参考させてもらい考えました。私ならこうします import math def print_bar(num, max=100, expansion=1, *, prefix="", display_num=True, unit="", sep="|", suffix="", cr=1): ____box = "█ ▏▎▍▌▋▊▉" ____rate = (num * expansion * 100) // max ____bar = f"{box[0] * (rate // 8 ) + box[rate % 8] * bool(rate % 8):{math.ceil(expansion * 100 / 8)}s}" ____num_formated = f"{num:{len(str(max))}d}" * display_num ____print(f"{prefix}{num_formated}{unit} {sep}{bar}{sep}{suffix}" + "\n"*cr, end="") display_valueのほうがわかりやすいけど長いから好きじゃない。何度も書く名前ならdisp_numに短縮するかも。 bar_formatは付けたい人が自分でつければいい 最低限の機能が付いていて、可読性・カスタマイズの容易性を考えるとこんなところでしょうか [] [ここ壊れてます]
478 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 07:10:57.00 ID:DC0ZGSft.net] >>462 formattedです。恥ずかしいミス
479 名前:デフォルトの名無しさん [2022/07/23(土) 07:22:10.22 ID:ytdxYh/D.net] なんか昨日のアップデートでWindows TerminalがIME勝手にON(英字入力)になる。とっても面倒くさい。 OFFにする方法ない?
480 名前:デフォルトの名無しさん [2022/07/23(土) 09:23:17.53 ID:bR39w9BX.net] >>459 ++ ほんそれ
481 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 09:48:06.05 ID:lkZCuVJ2.net] >>462 おつかれちゃーん、なかなか楽しめたし勉強になったわ 日記帳とか言ってる奴等も参加すれば良かったのに、実際にコード書かないと勉強にならないぞっ!w
482 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 10:20:26.06 ID:zqWGCIwO.net] コード出してあれこれやるのはいいと思うけどここまで引っ張るのはさすがにスレチだわな こっちへ行けよ Pythonのお勉強 Part67 https://mevius.5ch.net/test/read.cgi/tech/1653540315/
483 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 10:32:50.67 ID:lkZCuVJ2.net] >>467 引っ張るとスレチって意味が分からんw そっちのスレも同じじゃん何が違うのよ? うーん、、もしかして自分が質問したレスが埋もれちゃったとか? それは関係ないよ、単に答えられるor答える人が居なかっただけで我々のせいではない
484 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 10:41:14.21 ID:iHVC6bwv.net] 我々…
485 名前:デフォルトの名無しさん [2022/07/23(土) 10:43:44.38 ID:bR39w9BX.net] 自演で自分のレス褒めてるレスとか観ると 他人事乍ら哀しくなるな
486 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 10:59:03 ID:zqWGCIwO.net] >>468 スレタイも読めないのか? ここは超初心者用な >>430 はスレタイに沿ってるけどその後print_bar でグダグダ書くのは違うだろ
487 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:09:30 ID:QCnlUATD.net] スレタイに日記帳って書いてあるスレで試行錯誤すべきだったよな
488 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:18:41.28 ID:lkZCuVJ2.net] >>471 うん?>>433 からすでにスレチってこと? コード出してあれこれは良いとか>>467 に書いてるし 何が言いたいのか意味が分からん、どこからスレチなのかレス番号かけや
489 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:21:00.46 ID:Q9mI3iQv.net] しつこい
490 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:29:25.91 ID:zqWGCIwO.net] >>473 スレチかどうかの閾値なんて人によって違うからここからスレチなんて言うことはできない それでも「ここまで引っ張ったら」多くの人がスレチって感じるだろって話
491 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:31:58.41 ID:lkZCuVJ2.net] >>475 ほえぇぇぇぇえぇぇええええええええ〜〜〜〜〜〜〜〜!! ボクちゃんが気に食わなかったからスレチですってことですかぁああああ??? びっくりしましたぁぁああああああwwww
492 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:38:20.58 ID:3Ek+JvxJ.net] 3回までよくて4回目がだめなんてことはない 3回でだめな人もいるし、4回はアウトだろうという人もいる だが10回までくるとさすがに全員がアウトと感じる そういう状況
493 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:49:34.23 ID:lkZCuVJ2.net] >>477 うん?10回は全然良いよ、っていうかスレに沿っているなら何回でもええがな 全員がアウトと感じるとかウソつくなよw 君たちのお気持ちの表明がまさにスレチw なぜならPythonと全く関係ございません!これが完璧なスレチの指摘というものだよ お気持ちとか何だよww 脳みそ付いてんのか?w
494 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:49:41.79 ID:Py93vpAm.net] >>476 > ボクちゃんが気に食わなかったからスレチですってことですかぁああああ??? ダメな理由は前に書いてあるだろ... > スレタイも読めないのか? > ここは超初心者用な > びっくりしましたぁぁああああああwwww お前の無能さにこっちがびっくりだよw
495 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:51:51.55 ID:NAv7kQq5.net] >>478 そう、君たち、この言葉がすべて おまえだけだよいいと思ってんのは
496 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:52:41.39 ID:lkZCuVJ2.net] >>479 ダメな理由は>>475 に書いてあんだろ、スレに沿っていたけど途中で彼の閾値を超えたんだってww 10回はダメでちゅ〜〜ww
497 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:53:42.77 ID:lkZCuVJ2.net] >>480 はい、じゃあ全員じゃないね、答え合わせありがとうw
498 名前:デフォルトの名無しさん [2022/07/23(土) 12:01:36.99 ID:LCkddkGN.net] >>460 460です。beautifulsoupも初めて聞いたレベルなのですが、 チャレンジさせていただきます。 ありがとうございました。
499 名前:デフォルトの名無しさん [2022/07/23(土) 12:01:47.65 ID:LCkddkGN.net] >>461 460です。beautifulsoupも初めて聞いたレベルなのですが、 チャレンジさせていただきます。 ありがとうございました。
500 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:02:11.20 ID:cx+wDCne.net] >>482 そうだね 一人だけ空気読めないやつがいる これが正確な言い方
501 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:12:16.70 ID:zqWGCIwO.net] 今日の様に暑いとID:lkZCuVJ2みたいな奴が犯罪にはしらないか心配になるw
502 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:12:53 ID:DC0ZGSft.net] 462です。 スレ見なおしたけど反省するようなレスしていない 449で予想外のツッコミ受けて驚いたが。 自治厨の相手はしたくないので、この件のコメントはこれが最初で最後
503 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:13:10 ID:Sr9KJy9/.net] 絶望的に適性ないやつがいるな そんな無駄なことは今すぐやめろ 限りある人生をもっと有意義なことに使え
504 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:16:15 ID:cx+wDCne.net] まあ反省できるようなやつだったら最初からこんなことしないわな
505 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:39:52 ID:zqWGCIwO.net] コード出して色々言うのはいいけど適切なスレでやってねって話なんだけど自治厨とか言い出してる時点で反省なんてしてないわなw
506 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:46:43 ID:b3gXMMo0.net] 自己中なんだろ 自分以外見えてない
507 名前:デフォルトの名無しさん [2022/07/23(土) 15:41:49.42 ID:FAO+OpS7.net] ネオ麦茶
508 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 17:14:17.68 ID:QCnlUATD.net] >>492 犯罪示唆ですね 通報しました
509 名前:デフォルトの名無しさん [2022/07/23(土) 18:06:21.74 ID:KR63qUqp.net] 随分とハイコンテクストな犯罪教唆だな
510 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 21:20:29.07 ID:MqDru3I9.net] >>460 例えばRuby では、input.csv が以下の内容として、 a b,c require 'csv' require 'open-uri' url = "localhost:8000/input.csv" CSV.parse( open( url ).string ).each do | row | # 1行ずつ処理する p row end 出力 ["a"] ["b", "c"] または、curl コマンドを使う事もできる。 input_csv = `curl #{ url }`
511 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 22:54:21.58 ID:jIlcufBL.net] 完全自殺なんチャラって本も流行ったなぁ
512 名前:デフォルトの名無しさん [2022/07/24(日) 05:32:21 ID:or5HZl/v.net] 1.適性がない、というその適性を定義してください。 2.適性がない、となぜ判断
513 名前:したのか 1. をもとに詳しく記述してください 3.1.2.が出来ないのではないのならば、あなたこそ、あなたのいう適性をもちあわせていない、と私は判断します 以上 [] [ここ壊れてます]
514 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 10:18:49.14 ID:VDm4wods.net] >>497 非論理的だね 著しく論理的思考能力の低い人はプログラミングの適性がないと言われても仕方ない
515 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 12:33:12 ID:DlP0Pw4T.net] >>498 1.自民党と統一教会の関係を説明してください 2.公明党と政教分離の関係を説明してください 3.おまえは馬鹿
516 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 13:48:43.90 ID:Kadg5L8P.net] >>499 ここで政治の話は止めて頂きたい
517 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:03:28.06 ID:s7YMPwIQ.net] >>500 おまえは馬鹿
518 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:09:01.48 ID:nqGRTr2S.net] プログラミングしてると、 Delete、Enter、BackSpace、半角全角、home、end ここらへんがホームポジションから遠すぎて困るな 半角、全角は無変換と変換に割り当てたんだけど みんなはキーマップカスタマイズとかしてるの?
519 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:12:13.07 ID:s7YMPwIQ.net] それはPythonと関係のある話題ですか?
520 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:14:56.30 ID:QkJUlhBv.net] 手を叩いて大きくすると良い感じになるよ。
521 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:20:46.38 ID:VlRFcd7U.net] >>499 メンバシップ関数を定義するのけ?
522 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:43:22.46 ID:Kadg5L8P.net] >>502 ctrl<->capsの入れ替えくらい
523 名前:デフォルトの名無しさん [2022/07/24(日) 16:12:15.26 ID:ydeGY7xn.net] >>502 親指活用できるエルゴノミクスキーボード使ってる 詳しくはハードウェア板のエルゴノミクスキーボードスレへ kinesis, ergodox, teckあたりかねその辺打ちやすいの
524 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 16:23:06.62 ID:oKMHGzT9.net] 集団自決したはずなのに生きていた人が死去
525 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 19:45:11 ID:e/hljxBO.net] スクレイピングの練習中でリスト内包表記とre.search()について教えてください seleniumとlxmlで取得したデータの変換がうまく行かないです url_list = ['https://www.tekitou'+re.search(r'[^0-9A-Z]dp[^0-9A-Z]([0-9A-Z]{10})([^0-9A-Z]|$)',a.get('href')).group() for a in html.cssselect('#tekitou > div > div > a:nth-child(1)')] html.cssselect('#tekitou > div > div > a:nth-child(1)').get('href')の時点で取得できてるurlは下記のような感じです。 https://www.tekitou/%〇〇%〇〇/dp/(10桁の英数字 英は半角大文字)/ref=zg_bs_10桁の数字_2桁の数字/3桁の数字-7桁の数字-7桁の数字?pd_rd_i=(10桁の英数字 英は半角大文字)&psc=1 https://www.tekitou/music/player/ref=zg_bs_10桁の数字_2桁の数字/3桁の数字-7桁の数字-7桁の数字?pd_rd_i=(10桁の英数字 英は半角大文字)&psc=1 re.search().group()する前のurlが/dp/ありのurlと/dp/なしのurlに分かれるのですが、 re.search(r'[^0-9A-Z]dp[^0-9A-Z]([0-9A-Z]{10})([^0-9A-Z]|$)',a.get('href')).group()の作業の際にエラーがでてしまうため /dp/なしのurlを削除するようにするか、 pd_rd_i=(10桁の英数字 英は半角大文字)&psc=1の(10桁の英数字 英は半角大文字)を取得するようにしたいです。 なにかうまい表記があれば教えてください
526 名前:デフォルトの名無しさん [2022/07/24(日) 19:55:36 ID:IZxLU3+7.net] 秀丸最強
527 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 20:08:14.75 ID:JBPZyDq1.net] アマゾンのURLくらいググったら色々出てきそうだけどクソ見にくい正規表現で無理せずにスラッシュでsplitでifにlengthとアスキー確認くらいでいいんじゃないの?
528 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 23:38:55 ID:GhBFnIe8.net] プログラミングって直感じゃね? 論理は直感を説明するの
529 名前:ノ用いることに有効だけど プログラム書くのにいちいち考えないっしょ 考えるのは設計とテストだけだし [] [ここ壊れてます]
530 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 23:39:26 ID:GhBFnIe8.net] それ以外にもあるかもしれんけど
531 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 23:43:50 ID:nVQ6Xq/p.net] >>509 pd_rd_iから取得 url_list = ['https://www.tekitou/dp/{0}/'.format(re.findall(r'\?pd_rd_i=(\w+)', a.get('href'))[0]) for a in html.cssselect('#tekitou > div > div > a:nth-child(1)')]
532 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 00:22:12.12 ID:kwIPZDW5.net] argparse使って、たとえば1つ目の位置引数(スイッチのようなもの)の違いで、それ以降は全く異なる引数ルールになるような場合はどのような指定をすればよいでしょうか? それともそれぞれ別のルールを定義してパースする必要がありますか? すごく簡単な例ですが、addの場合とlistの場合で指定する引数が違うようなものとか user.py -add name [--prop property] -list [--group group]
533 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 00:41:00.73 ID:YiCqNPeZ.net] >>515 1つめの位置引数を読んでから残りをargparseにかければいいんでないの? それかサブコマンド対応してるライブラリを使うか
534 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 00:57:12.30 ID:kwIPZDW5.net] >>516 なるほど。argparseで一度にまとめてできればと思ったんですが、できないってことですね…
535 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 01:00:15.74 ID:gTrk2zFk.net] >>509 例えば、Ruby なら、 URI.split で、URL のパス部分だけを抜き出して、 その文字列内に、/dp/ が含まれているかで条件分岐する require 'uri' dp_url = "example.com/%E3%81%82/dp/a" # あ = %E3%81%82 non_dp_url = "example.com/%E3%81%82/a" p dp_ary = URI.split( dp_url ) p non_dp_ary = URI.split( non_dp_url ) #=> ["http", nil, "example.com", nil, nil, "/%E3%81%82/dp/a", nil, nil, nil] #=> ["http", nil, "example.com", nil, nil, "/%E3%81%82/a", nil, nil, nil] # パス部分 p dp_ary[ 5 ] p non_dp_ary[ 5 ] #=> "/%E3%81%82/dp/a" #=> "/%E3%81%82/a" p dp_ary[ 5 ].match( '/dp/' ) p non_dp_ary[ 5 ].match( '/dp/' ) #=> <MatchData "/dp/"> : 一致する #=> nil : 一致しない
536 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 01:03:04.79 ID:oCKr0yXR.net] add_subparsersでやればいいんじゃない
537 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 09:00:21.95 ID:9Mfr9nvz.net] >>512 うう……設計がプログラミングに含まれてない……うそやろ……
538 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 09:35:32.16 ID:Tcjxae6G.net] >>509 /dp/(10桁の英数字 英は半角大文字)があれば、その(10桁の英数字 英は半角大文字)を取得 ?pd_rd_i=(10桁の英数字 英は半角大文字)があれば、その(10桁の英数字 英は半角大文字)を取得 どちらも無ければ空文字を返しエラーとはならない方法 url_list = ['https://www.tekitou/dp/{0}/'.format(re.search(r'(?<=/dp/)(\w+)|(?<=\?pd_rd_i=)(\w+)|$', a.get('href')).group()) for a in html.cssselect('#tekitou > div > div > a:nth-child(1)')]
539 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 09:43:03 ID:VgpbHR93.net] >>520 Don't think. Feeeel!!
540 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 10:25:41.85 ID:kwIPZDW5.net] >>519 add_subparsers使えばできますね! ありがとうございます。
541 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 12:52:01.49 ID:gFjrq6Gs.net] >>520 設計は人が考えたものを具現化するプロセスまでの事でプログラミングに含まれないよね プログラミングは優秀な言語と開発支援ツールに頼って直感のままに組み立てる作業 人が本来やることは自身の進化とソフトウエアのアップデート対応に強い設計する事と作業を減らす工夫と世界が前進することへの貢献
542 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 12:57:49.15 ID:gFjrq6Gs.net] 簡単そうに言ってる
543 名前:けど かなり時間かけて様々なことを知らないといけないし知らない未知のことへの挑戦もしてかなきゃいけない そーゆー志を持った人がこのスレの中に居てくれたら俺は嬉しい [] [ここ壊れてます]
544 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 13:20:20.14 ID:9Mfr9nvz.net] >>524 (それコーディングじゃない?)
545 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 14:36:18.33 ID:evu7R6rH.net] docker入れてみたけどやっぱ仮想環境だからGB単位でメモリそこそこつかうんだよな アイドル状態で8GB、vscodeで1〜2GB、dockerで2GB、Chromeで動画見ながら作業したら2〜3GBぐらい使うからギリギリで困る やっぱメモリ32GBは入れないとだめか
546 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 15:07:03.89 ID:fmU0SO/o.net] >>526 (ちんこかゆい)
547 名前:デフォルトの名無しさん [2022/07/25(月) 16:14:04.12 ID:GOtCNvAE.net] https://www.youtube.com/watch?v=B5tSZr_QqXw
548 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 19:47:19 ID:GWKUHzSt.net] >>514 >>521 ありがとうございます 行けました!
549 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 19:49:50 ID:GWKUHzSt.net] seleniumで複数ブラウザ立てて並列処理してみたいけど難しそう scrapyで楽天からスクレイピングしてみたら非同期処理?のせいで早すぎて速攻アク禁くらった
550 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 20:11:37.41 ID:NlibKZuA.net] >>531 プロファイルを別にすればいけるよ 高速化目的で同じサイトに並列アクセスするのはやめた方がいい
551 名前:デフォルトの名無しさん [2022/07/25(月) 20:20:18.30 ID:mO6SEFWJ.net] 流石にもういきなり逮捕はされないと思うけど、librahackみたいなことが起こらないとは言えないから怖いよねー。 アクセスログで見ても、ギリギリ人間がアクセスしてるって言い訳できるぐらいの間隔を乱数で作ってsleepしてるわ。
552 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 21:11:33.84 ID:Tcjxae6G.net] >>511 フハハハハハハハハ、>>521 を刮目せよ! 賞賛の声(>>530 )を聞け! 正規表現はクソ見にくいわけはなく、むしろ簡潔であり完璧であり完全無欠なのである 正規表現にできないことはなく、正規表現に代わるものはなし 正規表現はまさに人類の叡智なのである
553 名前:デフォルトの名無しさん [2022/07/25(月) 21:14:45 ID:GF1rw+EH.net] イヤイヤイヤイヤ、普通にクソ見にくいでしょ。 他人が理解できないものを書くほうが偉いって風潮何とかならんの?
554 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 21:44:24 ID:Tcjxae6G.net] >>535 偉いとかじゃなくて便利なんだよ >>521 の正規表現は別に難しい部類じゃない、\wは単語文字という意味で英数字も含まれる \w+で単語文字が1個以上という意味になる、その前の(?<=...)は後読みアサーションで これにマッチした後の\w+をサーチしているわけで基本というか、ちょっと勉強すれば、というか 正規表現の仕様に例が載ってるから、例みたらすぐ理解できるよ https://docs.python.org/ja/3/library/re.html 自分的には最後の|$が工夫した点で、コレでサーチできなかった場合に空文字を取得させることができる 正規表現使わずにスラッシュでsplitでifにlengthとアスキー確認なんかの方が見にくいだろうし 面倒すぎてやっとれんよ
555 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 22:07:08.94 ID:5m9dN2FM.net] (超初心者用)
556 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 22:50:49 ID:Tcjxae6G.net] >>529 最新動画の@cacheがマジ感動した、最後のフィボナッチの高速化がマジ良かった マジでマジでマジだから
557 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 23:03:45 ID:gTrk2zFk.net] WSL2, Docker は、8GB メモリじゃキツイ 16〜3
558 名前:2GBは欲しい [] [ここ壊れてます]