- 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 ###
- 396 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 14:40:11.78 ID:HHxHBIIc.net]
- >>382
つまりprintは時間がかかってないわけだよね で、普通のforより内包表記のほうが速い分だけ速くなってると それは何の実験なんだい?
- 397 名前:デフォルトの名無しさん [2022/07/19(火) 14:49:08.31 ID:Dd2ngZhk.net]
- 内包表記でもインデントしていいんですよ
可読性高めていけ
- 398 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 14:
]
- [ここ壊れてます]
- 399 名前:52:21.67 ID:COa8jHBw.net mailto: >>384
進捗を大雑把に表示したい場合、内包表記でprintするのも有りという実験 俺は開発中以外では使わんけど 完成したコードにこんなの書いてたらやだ [] - [ここ壊れてます]
- 400 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 15:07:57 ID:COa8jHBw.net]
- printは時間がかかってないのではなく回数を少なくしてる
他の人が指摘してるように、進捗を細かく表示したい場合、内包表記もforループも時間差はほぼ無くなる printはやはり時間がかかる
- 401 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 15:17:30 ID:kjnFmzM9.net]
- 時間差は4秒で変わらないんじゃないの
printに時間がかかるから4秒の割合が小さくなってほとんど意味ないじゃんってことでしょ
- 402 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 15:40:36.31 ID:COa8jHBw.net]
- >>388
そういうことです 進捗を細かく表示したい場合、ほとんど意味ないってこと 完成状態で内包表記にprintはおすすめできない テスト中に内包表記にprintを入れるのはお好みで
- 403 名前:デフォルトの名無しさん [2022/07/19(火) 15:40:46.26 ID:bdrM7/md.net]
- a=[]
… a.append(str(i)) でなくて、 a=[0]*100000000/100 … a[i]=str(i) だとますます変わらなそう
- 404 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:01:31.52 ID:Ao+3qyOr.net]
- >>377
そんな差でる? むしろforループのほうが3~5%程度速いんだが
- 405 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:03:31.06 ID:/jGGKkxp.net]
- >>389
であれば、可読性より速度を重視する場合、内包表記にprintを入れたほうがいいということですよ 意味は4秒ぶんあるわけです
- 406 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:18:19 ID:COa8jHBw.net]
- >>391
こちらは化石PCで測定したので。 誤差じゃない充分な時間差が開く程度にrangeの値を大きくしてみて
- 407 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:28:38.52 ID:L7UUhMht.net]
- そもそも内包表記は可読性良いよ、ギュッと1行にまとまりつつも分かりやすい
for文見る方がダルイわ、内包表記にできないものを仕方なくfor文にしているよ 慣れだよ慣れ、最近だと二重ループの内包表記も全然苦じゃない、美しいとさえ感じる
- 408 名前:デフォルトの名無しさん [2022/07/19(火) 16:31:26.97 ID:RISkfx3J.net]
- >>394
ですよね。集合論的な表記に似ています。
- 409 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:40:41.64 ID:wHnodxSw.net]
- forループのほうが内包表記より速いなんてことあるの?
- 410 名前:デフォルトの名無しさん [2022/07/19(火) 18:36:04.44 ID:paq2dZhq.net]
- それこそ、内包表記で呼ぶ関数の回数をカウントして確認たいならデコレーターとかでtqdm使うようにした方が良くないかな?
内包表記の中をごちゃごちゃにするのは基本的には避けた方がいいと思うんだよな。 シンプルに書くために内包表記を使ってるのであって、Zコンビネーターとか使ってへんなことするなら普通のforとかにした方がいいよね 遊びとしては否定しないけどね
- 411 名前:デフォルトの名無しさん [2022/07/19(火) 19:06:26 ID:xA31LZ9f.net]
- code golf で言うと
打数多い方が自慢してるような 糞な流れ もうやめませんか
- 412 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 19:27:22 ID:w0DVg8Bk.net]
- 自治厨久しぶりに見た
- 413 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 19:55:09.64 ID:z/It7jZN.net]
- >>397 に一票
こういうのこそデコレーターの出番だと思う
- 414 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 20:20:06.84 ID:n8OVMrsb.net]
- つまり具体的にはどういうこと?
- 415 名前:デフォルトの名無しさん [2022/07/19(火) 22:29:55.85 ID:Dd2ngZhk.net]
- 一行にまとめた内包表記より、インデントした内包表記の方が可読性が下がる
- 416 名前:デフォルトの名無しさん [2022/07/19(火) 22:32:42.31 ID:Dd2ngZhk.net]
- の?
- 417 名前:デフォルトの名無しさん [2022/07/19(火) 23:31:48.45 ID:paq2dZhq.net]
- >>401
こんな感じ imgur.com/a/UsKhUuD tqdm使いたくなかったらpbarの初期化やpbar.updateの代わりにカウント変数とprintでも使っておいて
- 418 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 00:25:50.52 ID:sLuJt4wx.net]
- >>404
rangeの100で100回ループさせるから tqdm_wrapperに100を渡してるんだよね?
- 419 名前:デフォルトの名無しさん [2022/07/20(水) 01:30:58.07 ID:aFoX4Dx/.net]
- >>405
そうそう、その辺はもっといい方法があるかもしれないが、ちょっと思いつかなかったのでそんな感じ。 回数が決まってないときは棒グラフは出せないけど1秒に何イテレーションできてるとかはわかると思う。
- 420 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 03:27:59.73 ID:vTCCBmkT.net]
- @tqdm_wrapper(total_count)ってできればいいんだけど、そういうのは無理なのかな?
- 421 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 06:19:50.33 ID:uVwid/eb.net]
- printなしでやってもforループのほうがほんの少し内包表記より速いんだけどなぜだろう
- 422 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 07:14:30.03 ID:vC0V/6Za.net]
- PEP
pythonは描き方がひとつ(キリっ
- 423 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 07:58:53 ID:rNnuNQ69.net]
- >>408
計測結果は何秒だったの メモリが少なくてスワップ発生してるとか?
- 424 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 09:48:14.82 ID:53g3nF67.net]
- Pythonのネット記事読んでるとAnacondaを入れてどうこう、というチュートリアルばっかりあるんだけど
肝心のAnacondaはどういう状況下で使うものなのか、説明省かれててよくわからないんだよな ライブラリとpythonのバージョンが合わないと使えないことがあるからそれを避けるため、って認識でいいの? 不具合無かったらAnacondaつかわなくていいのかな?
- 425 名前:デフォルトの名無しさん [2022/07/20(水) 11:17:28.13 ID:wWIP1AbD.net]
- anacondaはAnaconda社の計算科学のための商品で学生の方など教育や学術目的、または趣味の用途であれば無償でご利用いただけます
入門書とかで使われてるのは、色々と最初から入ってるから開発やデプロイ先の環境構築を解説しなくて済むからだよ anacondaに依存しないやり方覚えた方が楽っていうか、むしろその方が必須になる
- 426 名前:デフォルトの名無しさん [2022/07/20(水) 11:22:56.97 ID:wWIP1AbD.net]
- 退屈なことは Python にやらせようを書いた人も同じような事言ってた
- 427 名前:デフォルトの名無しさん [2022/07/20(水) 11:27:11.69 ID:wWIP1AbD.net]
- アナコンダを否定してるわけじゃないよ。素晴らしい商品ですし、選択肢の一つとして選べるのは良いことだと思います
- 428 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 11:55:51.53 ID:L6JCmqAC.net]
- あえて、IronPythonに手を出して茨の道をw
- 429 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 13:27:25 ID:SSFD7/IV.net]
- 今Twitterなどで話題になってる仮想通貨のbotを作りたいです
年間で1億円ぐらい稼ぐには何の勉強すればいいですか?
- 430 名前:デフォルトの名無しさん [2022/07/20(水) 13:38:38 ID:pMrjs46b.net]
- 経済と仮想通貨
- 431 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 13:38:57 ID:ShYgaPwJ.net]
- デッサン力
- 432 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 14:14:10.83 ID:hOJNeZde.net]
- これからのキーワードは仮想環境
anacondaもIronPythonもPyTorchも欲しい環境をコンテナ一発でドーン! ってやりたいからDocker勉強しようかと思っている
- 433 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 15:00:19.03 ID:qJwz0nM8.net]
- ぶっちゃけ
docker の anaconda 版とか docker の 標準 python 版とか そういうので良いんだわ 解説書あっても各々インスコ時にバージョンガーとかおま環とか だるいサポートにみんな疲れたんだろ
- 434 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 15:29:51 ID:djIfGOxS.net]
- windows10 + python3.9 では生ソケットを扱う事ができないのでしょうか
import socket s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP) ソケット作成のとこでエラーがでます [WinError 10013] アクセス許可で禁じられた方法でソケットにアクセスしようとしました とエラーメッセージがでます ログインしているユーザはadministratorの権限も持っています
- 435 名前:
英語のサイトで調べるとprohibitというワードもありました 識者の方ご指導願います [] - [ここ壊れてます]
- 436 名前:421 [2022/07/20(水) 15:40:01 ID:djIfGOxS.net]
- 421です
コマンドプロンプトを管理者権限で実行する事が必要であると学びました
- 437 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 16:51:36.92 ID:rnlV1uw8.net]
- anacondaはまああれだけどspyderはなんか好きだ
- 438 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 17:04:37.61 ID:rNnuNQ69.net]
- a=[]
append = a.append for i in range(30000000): ____append(i) のように、メソッドをあらかじめ変数に入れると高速化できるという情報をよく見かけるけど本当なの? 何回計測しても誤差程度の差しかなく、速くなってるのか確認できないんだけど
- 439 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 17:27:44.50 ID:Lx4+ezqp.net]
- https://wandbox.org/permlink/xE2gHLprP4RKuqf0
- 440 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 17:49:55.19 ID:ZOYHOoJs.net]
- このくらい最適化してよと思っちゃうんだが無理なんかな?
- 441 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 17:50:04.72 ID:rNnuNQ69.net]
- >>425
ありがとうございます 計測方法のミスに気づきました 関数を作らず計測していたので、append = a.append のところがグローバル変数になって遅くなり、 その結果、高速化していなかったようです
- 442 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 18:01:43.03 ID:D9vTvaEa.net]
- これの出所は概ね公式Wikiだけど、2が全盛期に書かれた物なので
https://wiki.python.org/moin/PythonSpeed#Take_advantage_of_interpreter_optimizations 属性を検索したり、インスタンスを紐付けてバウンドメソッドを返す様な https://docs.python.org/ja/3.7/howto/descriptor.html#invoking-descriptors こういった機構を回避するので多少速くなるけど、現行のPythonでは比較的小さい ローカル変数がグローバル変数より読み書きが速いのも実際そう >>426 型がないダックタイピングな以上は都度解決するしかないであろうなぁ…
- 443 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 18:58:09.37 ID:QlVkmKZp.net]
- anaconda入れたけど、avastがなぜかウイルス扱いしていて、anaconda立ち上げるとすぐ落ちて使えなくて、あきらめてvscにした
- 444 名前:デフォルトの名無しさん [2022/07/20(水) 20:09:39 ID:eRSlBPBh.net]
- pythonで質問なんですがコンソールに表示される数値の横に量を表したバーを表示させたいのですが
300 ■■■ 20 ■ 150 ■■ ぐぐっても進捗率をあらわすプログレスバーのtqdmが出てきてしまいどうやって数字に連動した量を表示させるのかわかりません 何かヒントがあればお願いします
- 445 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 20:21:54 ID:hglVd79x.net]
- pbar.update(1) ←これの数字をいじる
- 446 名前:デフォルトの名無しさん [2022/07/20(水) 21:24:08.50 ID:npea7ePl.net]
- >>431
ありがとうございます、おかげさまでなんとかできそうです 素敵なお方だ
- 447 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 22:26:00.73 ID:rNnuNQ69.net]
- >>432
「tqdmが出てきてしまい」て書いてるので、静的に表示するだけだからtqdmは使いたくないのかと思った 静的に表示したい人用おもちゃ def print_bar(n, max, expansion): ____box = "▏▎▍▌▋▊▉█" ____rate = (n * expansion * 100) // max ____bar = "" + box[7] * (rate//8) + box[rate%8] ____print(bar) print_bar(50, 100, 1) print_bar(55, 100, 1) print_bar(100, 100, 1) print_bar(100, 200, 1) print_bar(100, 200, 3) 今書いた書いたらちゃんとテストしてない
- 448 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 22:32:08.75 ID:rNnuNQ69.net]
- >>433
バグってた すぐ直します
- 449 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 22:42:20.27 ID:rNnuNQ69.net]
- def print_bar(n, max, expansion):
____box = "█ ▏▎▍▌▋▊▉" ____rate = (n * expansion * 100) // max ____bar = "" + box[0] * (rate//8) ____if rate%8 != 0: ________bar += box[rate%8] ____print(bar) print_bar(0, 100, 1) print_bar(1, 100, 1) print_bar(2, 100, 1) print_bar(3, 100, 1) print_bar(4, 100, 1) print_bar(5, 100, 1) print_bar(6, 100, 1) print_bar(7, 100, 1) print_bar(8, 100, 1) print_bar(50, 100, 1) print_bar(55, 100, 1) print_bar(100, 100, 1) print_bar(100, 200, 1) print_bar(100, 200, 3)
- 450 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 22:53:43.67 ID:JXXlHdvc.net]
- Ruby on Rails なら、VSCode, WSL2, Vagrant, Virtual Box でも出来るけど、
Python は依存モジュールが多いから、Docker が普通 自宅ではじめるDocker入門[改訂版]、浅居 尚、2021/4 この本が最も簡単
- 451 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 23:38:31.06 ID:hOJNeZde.net]
- >>435
barだけだとやっぱり分かりにくいですね数字も必要だと思いました もしくはbarの到達位置の表示が必要
- 452 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 23:59:09.30 ID:hOJNeZde.net]
- >>436
Dockerの書籍でているのね、レビュー評価もメチャいいじゃん でもネット上に公式?の日本語ドキュメントがあるからこれでいけるんじゃないかな??どうかな?w ttps://matsuand.github.io/docs.docker.jp.onthefly/ ttps://docs.docker.jp/index.html
- 453 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 01:17:04.66 ID:dz51dLzk.net]
- >>437
値、開始位置、最大到達位置を表示しました def print_bar(n, max, expansion): ____box = "█ ▏▎▍▌▋▊▉" ____rate = (n * expansion * 200) // max ____bar = "" + box[0] * (rate//8) ____if rate%8 != 0: ________bar += box[rate%8] ____print(f"{n:{len(str(max))}d} | {bar:{expansion*25}s} |\n") print_bar(8, 100, 4) print_bar(50, 100, 4) print_bar(90, 100, 4) print_bar(100, 100, 4)
- 454 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 03:59:00 ID:c34Fgnuj.net]
- PythonでAI作り始めてから電気代が2000円以上高くなった
- 455 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 08:50:46 ID:nja0E+A7.net]
- >>439
すばらしい全部入っている! けども200とか25とかなんだろう?ああ小数点がイヤだから2倍しているのか となったので、計算式が分かるようにした方が可読性とメンテナンス性があがると思いました 以下計算式を明示した改良版 import math def print_bar(n, max, expansion): ____box = "█ ▏▎▍▌▋▊▉" ____rate = (n * expansion * 100) // max ____bar = "" + box[0] * (rate//8) ____if rate%8 != 0: ________bar += box[rate%8] ____print(f"{n:{len(str(max))}d} |{bar:{math.ceil(expansion*100/8)}s}|\n")
- 456 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 11:05:44.45 ID:nja0E+A7.net]
- さらに良くなった
import math def print_bar(n, max=100, expansion=1): ____box = "█ ▏▎▍▌▋▊▉" ____rate = (n * expansion * 100) // max ____bar = box[0] * (rate//8) ____if rate%8 != 0: ________bar += box[rate%8] ____print(f"{n:{len(str(max))}d} |{bar:{math.ceil(expansion*100/8)}s}|\n")
- 457 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 19:29:07 ID:dz51dLzk.net]
- やっぱりmath.ceil使ったほうがいいよな
importを減らしたがる癖が抜けず2倍してしまった
- 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
|

|