- 1 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 18:52:26.67 ID:VqLViKoX0.net]
- !extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024 ↑スレ立てる毎に減るので、減ってたら3つに補充すること。 ・当スレにRubyのソースコード類を書くことを禁ず ・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止 ・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨 ・エラーを解決したいときは、かならず エラー文(勝手に省略orスクショうp等の横着禁止)と おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。 ★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、 ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止) ttps://techiedelight.com/compiler/ Run Code機能あり。 ttp://ideone.com/ デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ◇Pythonオフィシャルサイト www.python.org/ ◇Pythonドキュメント https://docs.python.org/ja/3/ ◇まとめwiki ttp://python.rdy.jp/ ●関連スレ● 自称初心者は↓へ 【まず1嫁】くだすれPython(超初心者用) その57 mevius.5ch.net/test/read.cgi/tech/1653225908/ 〇前スレ〇 Pythonのお勉強 Part67 https://mevius.5ch.net/test/read.cgi/tech/1653540315/ 次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった) ### END of TEMPLATE ### VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
- 715 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 19:12:07.27 ID:/sng0JalM.net]
- 可読性考えるとクラスのほうが良いわな
自分だけが使うなら好きに作ればいい
- 716 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 19:17:47.15 ID:tUNuHkwK0.net]
- 自分だけが使う場合でも後々困る
読みにくくていいのは再利用しないと判ってる場合
- 717 名前:デフォルトの名無しさん [2022/11/10(木) 19:47:31.93 ID:eS5awfmL0.net]
- >>705
689だが、トランプはクラスを作った方が(少なくともnamedtuple,dataclass)便利だと思うぞ >>706 記号クラス、番号クラスなんて作らない 記号はenum、番号はそのまま1~13でいい が、どの記号が黒だ赤だ、どの番号が絵柄か(JQKA) みたいなのはたとえインスタンスが一個でもメソッドになってた方が便利だと思うけどなあ。 カードは内部表現とUI上の表現が異なるのが自然だし、そういう意味でもクラスにしておくのは悪くないと思うが クラスにしすぎてもしょうがないというのは、ゲームのルールをクラスにして共通のインタフェース持たせて、バリエーションを切り替えられるようにしても大抵は仕方ないみたいなことだよ もちろん、どんなゲームシステムを作るかによるし、ルールを共通インタフェースで入れ替えられるようにするメリットがある場合もあるけど
- 718 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 20:15:59.37 ID:1wmpgP/ea.net]
- >>706
ちょっと発想が変だよ
- 719 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 20:18:11.54 ID:TQxJo3Q4M.net]
- 全てユースケース次第じゃね
13×4のブール配列で持っていたほうが都合がよい場合もあるだろうし
- 720 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 21:05:35.45 ID:tUNuHkwK0.net]
- とりあえず作って、必要に応じてリファクタリングしていけばいい
- 721 名前:デフォルトの名無しさん [2022/11/10(木) 22:35:47.17 ID:SvDTIviz0.net]
- カード型のインスタンスを生成するデッキクラスを作りたいやん
deck.suffle() hands = deck.draw(5) みたいなさあ あとは各ゲームで処理つくろ
- 722 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 22:41:30.18 ID:tUNuHkwK0.net]
- カードのリストでよくね
- 723 名前:687 mailto:sage [2022/11/10(木) 23:28:06.08 ID:ofaAiG0L0.net]
- 多くのレスを頂き、ありがたく思います
ちょっと自己顕示欲が強い気もしますが、俺のGitHubを公開させて頂くので、 よろしければご覧下さい https://github.com/masa-gh/practice のblackjack_3.pyがそれです これでもクラス使わないで書けるのかな…
- 724 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 00:15:20.89 ID:ajyQllPs0.net]
- 力作だね
友人のアドバイスは痛いほどよく分かる クラス云々よりも「ここからメインの処理」以降の各処理を関数にまとめるほうがずっと大事だよ
- 725 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 00:21:32.63 ID:gNt5qX/T0.net]
- 1関数がでけえ
ということを言いたかったんだろう
- 726 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 00:23:24.86 ID:Zi2NVkwv0.net]
- マサくん
- 727 名前:デフォルトの名無しさん [2022/11/11(金) 00:52:49.95 ID:5ErmYwLs0.net]
- 何のためにでっかい関数の中にクラス作るのか分からん
この設計センスなら友人のアドバイスは正しいな
- 728 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 00:55:17.73 ID:n0j9oGtca.net]
- blackjackで囲むのって意味あんのかね
- 729 名前:687 mailto:sage [2022/11/11(金) 01:14:49.41 ID:9Wk/PRlY0.net]
- レスありがとうございます
>>688 クラス使った方が見通し良くなりますよね? スッキリJavaにもそう書いてありました(Pythonの本ではないですが) >>689 複雑にならない方がいいからだそうです >>690 ええ、ですので皆さんの意見をお聞きしたんです >>691 うーん、明らかにプロと思われる方の書き込みもありますし、 信じられるレスはあると思います >>696 ただ彼の主張では、なるべくクラスは使うな、ということでした Javaを独習した経験がある俺からすると、少し疑問符が付くのです
- 730 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 01:21:10.00 ID:n0j9oGtca.net]
- クソクラスをクソと認識できるためにもそれなりの能力が要るからね
- 731 名前:687 mailto:sage [2022/11/11(金) 01:28:18.01 ID:9Wk/PRlY0.net]
- >>704
そうですよね カードのクラス作りました >>706 複数枚のカードを持つCardクラスです ブラックジャックなので、A・J・Q・Kの値は別に決める必要があります >>707 可読性は重視したいです >>716 そう言って頂けると大変ありがたいです やっぱりそこは1つの関数にまとめた方がいいんですね >>717-720 それも友人に、グローバル変数は少なければ少ないほどいい、と言われたのを 受けてのことです
- 732 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 01:39:45.03 ID:tK9Svk7P0.net]
- >>715
ざっと見た感じ、そりゃ色々言われるわ クラス云々言ってるのに、blackjackっていうデカい関数の中にクラス切ってる時点で吹いたわ あとクラスの役割分担というか、所属してる関数もおかしく感じるわ プレイヤークラスっていう名前なのに、にルール関係のスコア計算、バースト判定とかが入ってるし それこそblackjackのルールを管理をするクラスを作る方が自然だべ あともうし自分で書くとしたら、ルールクラスにis_winっていう関数作って、そこで勝利判定してtrue/falseで返すわ 最後に全パターンで人間/CPUに対して勝利判定かけてるけど、参加プレイヤー/CPUが増えた時の勝利判定の実装とか これベースだと面倒だろうなって思った
- 733 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 01:43:33.89 ID:tK9Svk7P0.net]
- >>723
>グローバル変数は少なければ少ないほどいい これはまず変数のスコープは狭い方が良い、っていう話だぞ (グローバル変数だとそれこそスコープが広くてどこで書き変わるのかが不明瞭になるから、なるべく使うなって言われてる) バカデカい関数を作るって何の解決にもなってねえwwwwwww
- 734 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 05:10:58.43 ID:dIH3TsNBM.net]
- 使い回さないのに関数化やクラス化する意味ってあるんだろうか
- 735 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 06:45:32.82 ID:fLgBQpEC0.net]
- is_<動詞> ってたまに見るけどどこかで流行ってるの?
- 736 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 07:35:28.77 ID:BuWtLPbxM.net]
- >>726
この業界には、「一処理は100行に収めるべし」という格言があってな つまり100行以上の処理があったら、100行以内にぶった切って関数にして順次呼ぶべしってことなんだよ 理由は知らん
- 737 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 08:51:38.78 ID:QYmFVFm/a.net]
- まあ分割っていうか処理に名前つけろやって感じだな
抽象的に書こう
- 738 名前:デフォルトの名無しさん (ワッチョイ 7247-GkOZ) mailto:sage [2022/11/11(金) 09:56:03.89 ID:gNt5qX/T0.net]
- でかい関数はあれもやってこれもやってになってるから、
それを機能毎に分割すればいいだけ 1箇所からしか呼ばれない関数がいくつもできるけど、それは問題ない うまく作ってあれば、関数の戻り値を次の関数に渡すだけ、みたいなシンプルな構造に自然となる それぞれの機能が変数をいろいろ共有していて切り分けられなかったら、元々の書き方が悪い
- 739 名前:デフォルトの名無しさん (ワッチョイ 927e-THRA) mailto:sage [2022/11/11(金) 10:26:37.58 ID:XH1qJoq+0.net]
- pythonではクラスをあまり作らないほうがいい、じゃなくて
お前にクラスは百年早い、って言いたかったんだろその友人は。 碌に関数も作れないのだからクラスなんて無用の長物。
- 740 名前:デフォルトの名無しさん (ワッチョイ 9263-zlm6) mailto:sage [2022/11/11(金) 10:31:34.23 ID:PAETAgDl0.net]
- 昔、関数ごとに仕様書作成が必要な現場があって、それを嫌って
ほとんどの関数が200行を超えるサイズで書かれる様になった
- 741 名前:デフォルトの名無しさん (ワッチョイ 7247-GkOZ) mailto:sage [2022/11/11(金) 11:00:27.63 ID:gNt5qX/T0.net]
- テストができんやろ
- 742 名前:デフォルトの名無しさん (ワントンキン MM62-76so) mailto:sage [2022/11/11(金) 11:32:04.24 ID:dIH3TsNBM.net]
- 文書をアウトライン化するような感じで使うのね
メンテのときに不要な部分を読み飛ばせるのがメリットか
- 743 名前:デフォルトの名無しさん (ワッチョイ 36a6-BGGY) mailto:sage [2022/11/11(金) 11:49:07.64 ID:VSBKZoKf0.net]
- 何か楽をするためのプログラムを作るのはいけるけど、
サイトの仕様変更で動かなくなったときの修正が苦痛だな、、 そのまま放置になりがち、、
- 744 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 11:59:14.38 ID:gNt5qX/T0.net]
- スクレイピングはそのうち廃れる気がする
元データがあって人間用に加工して表示したものをまた元データに戻さなくても、 最初から元データで公開した方がお互い楽なことに気づき始めた
- 745 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 12:00:41.38 ID:L/uUC/Rw0.net]
- C++でキー処理が数百行で、しかもファンクションキー毎に少しづつ違う
という構成のものを改修させれて辟易したことある もしや、行数で成果が評価される現場だったのか
- 746 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 13:05:05.34 ID:XH1qJoq+0.net]
- >>736
人間向けのHTMLを解析すれば無料なのにAPI経由は有料ってのも多いしな。
- 747 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 13:20:52.45 ID:wT5HNNmtr.net]
- Python勉強してるけどどうやって初心者の粋を超えたらいいのかが分からない
何か作りたいけどその何かが思い浮かばないし 自動で巡回してエロビDLするとか電子書籍自動でスクショとかできるんだっけ?
- 748 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 13:23:31.34 ID:RyfBFStrM.net]
- やってから聞けばいいのに
- 749 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 14:22:12.06 ID:Pyb1B8zp0.net]
- >>739
早速思い浮かんでるじゃん 誰かができないと言うからやらないというなら何の勉強にもならない 明確な目的が無く勉強自体が目的なら機能しないゴミしか作れなくても意味があるし思い浮かんだもの全部作ればいい
- 750 名前:デフォルトの名無しさん [2022/11/11(金) 14:23:36.91 ID:JQ5LhQOs0.net]
- >>736
もしかして、APIが存在しない世界から来た方ですか?
- 751 名前:デフォルトの名無しさん [2022/11/11(金) 14:29:46.62 ID:JQ5LhQOs0.net]
- 別に既にあるものでも構わないから、何か作りたいというモチベーションがある内に色んなものを作った方がいい
独学は特に大事
- 752 名前:デフォルトの名無しさん [2022/11/11(金) 14:34:12.48 ID:JQ5LhQOs0.net]
- 途中で奥ちゃった
そしたら、次に何か新しいもの作りたくなった時に何が足りないか自分で調べられるぐらいにはなってると思う
- 753 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 15:20:48.12 ID:KvbVlUc20.net]
- 奥り人なんだな
- 754 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 19:48:45.92 ID:acI+Bjnd0.net]
- クラスを設計するのはものすごく難しい
作り始めないとわからないことも多いし 途中で仕様が変わったりしたら 簡単に破綻する 大きなプロジェクトでは 途中でクラス構成を変えることは 困難なので しばしば大変なことになる
- 755 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 21:01:39.50 ID:BuWtLPbxM.net]
- >>739
この前も同じこと言ってる人がいたよ 作りたいものがないのでなんかアイディアないですかって まず、何のためにPythonを勉強しているのか聞きたい 普通は作りたいものがあったり、仕事だから、課題だからという 動機があるはずなんだ 動機もなく身に着けられるものじゃないよ。プログラミングは一応専
- 756 名前:門技能だから []
- [ここ壊れてます]
- 757 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 21:43:58.80 ID:zIrG+C10M.net]
- 自分探しして働かない奴と同じだよな
- 758 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 21:51:56.55 ID:7hjsWVqY0.net]
- >>746
最初から完璧な要件・設計で開発なんて不可能だから 途中で構成変わる前提で組み立てるんだよ クラスに限った話じゃないけど
- 759 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 22:08:17.04 ID:dIH3TsNBM.net]
- インスピレーションを得るなら多くの作品に触れることでしょ
- 760 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 22:16:07.93 ID:PAETAgDl0.net]
- プログラムやりたいと思った動機ってそれぞれあるだろう
- 761 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 22:26:55.54 ID:6yLWq/6IM.net]
- ズボラほど上達が早いように思う
やりたくないことは全部コンピュータにやらせたい
- 762 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 23:18:07.02 ID:ywa4HP4la.net]
- 現実は必死に努力してQiitaにちょっとやってみたーみたいなこと書いてるやつばっかりだけどな
- 763 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 23:19:39.80 ID:ywa4HP4la.net]
- 部品の置き換えが利くってのは完璧なプログラムとほとんど同義だね
具体的にねっちょりと書くしか無いこともあるけど
- 764 名前:デフォルトの名無しさん [2022/11/12(土) 11:00:15.35 ID:jZf8/3In0.net]
- 質問です。
これをヘッドレスモードで動かしたいのですがどうするといいでしょうか? from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager browesr = webdriver.Chrome(ChromeDriverManager().install())
- 765 名前:デフォルトの名無しさん (ワッチョイ 2389-UXd1) [2022/11/12(土) 11:41:37.67 ID:jZf8/3In0.net]
- すいません。
解決しました。 from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.options import Options options = Options() options.add_argument('--headless') browesr = webdriver.Chrome(ChromeDriverManager().install(), options=options) browesr.quit()
- 766 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 13:03:04.39 ID:FJxDQgNh0.net]
- ちゃんと終わってる筈なのにタスクマネージャに残るんだよな
- 767 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 14:06:44.73 ID:QoJFyqg+0.net]
- async関数の終了を2箇所で待つ方法は無いですか?
普通にawaitを2回使うと既にawaitedした処理だぜってエラーが出ます。
- 768 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 14:23:25.37 ID:ToW7pe8/0.net]
- 答えは持ち合わせてないけど同じことを考えたことあるな
- 769 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 14:24:45.91 ID:T1+EK47n0.net]
- エラーなんか無視する
- 770 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 15:22:28.94 ID:QoJFyqg+0.net]
- >>760
エラー握り潰しても、肝心な処理待ちが出来ないので駄目です。
- 771 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 15:46:37.70 ID:AXYSbt7W0.net]
- メモ化する関数でラップ
頻発するならデコレータ書く
- 772 名前:デフォルトの名無しさん [2022/11/12(土) 15:58:01.40 ID:pkT2sKDg0.net]
- >>736
廃れないよ。Webって広告で成り立っている基本人間向けの情報発信ツールなんだから、人間向けのデータ(文章とかね)のスクレイピングは依然として残る。 APIは有料というのは広告収入につながらないから割と当たり前の話で。 利益を目的としないデータ公開はオープンデータ化していくだろうけれど、そういうのって政府や自治体のデータ公開、大学などぐらいしか基本的にはないだろう。
- 773 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 15:59:27.93 ID:QoJFyqg+0.net]
- >>762
メモ化だと結果は再利用できますが、同時に待つことができないように思います。
- 774 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 16:11:11.71 ID:2L2Z04CZ0.net]
- >>758
task = asyncio.create_task(async_fn()) result = await task result = await task
- 775 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 17:58:24.29 ID:QoJFyqg+0.net]
- >>765
うまく行きました! ありがとうございます! TaskというのがJavaScriptのPromiseみたいな事してくれるんですね!
- 776 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 15:06:45.34 ID:mAjRS9pi0.net]
- なんでOpenCVはちょっとしたことでぶっ壊れるんですか?
- 777 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 19:56:00.79 ID:S7gZHHW/.net]
- _max=7
_min=3 a=2 if a>_max: a=_max elif a<_min: a=_min print(a) これってもっとスマートに書けませんでしたっけ
- 778 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 20:10:07.19 ID:S7gZHHW/.net]
- ちなみに0を含む自然数で
range(_min,_max,1) です これの範囲外は判定できるのですが _minより小さく外したのか、_maxより大きく外したのか って一行で短く書けなかったかな、と。 記憶違いかもしれません、無かったような気がしてきました
- 779 名前:デフォルトの名無しさん [2022/11/13(日) 20:12:10.16 ID:cgKyROyF0.net]
- a=max(min(a,_max),_min)
- 780 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 20:16:44.58 ID:S7gZHHW/.net]
- >>770
できました!! そうですこれです! _max=7 _min=3 for i in range(10): print(i,max(min(i,_max),_min)) ありがとうございます!!
- 781 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 20:31:52.48 ID:J0JT7kUN0.net]
- >>767
それ依存関係が壊れてるからじゃね?
- 782 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 20:32:48.89 ID:xH4HHaxN0.net]
- 最近excelで、答えがマイナスなら0にする、という処理がめんどくさいと思ったけど、
max(0,x)でシンプルに書けた
- 783 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 20:47:55.89 ID:ZI0YVyVbM.net]
- >>770は一見何をやっているのか、やりたいのかわからんし
メンテナンス性が悪そうだ >>768の方はわかるし改造しやすい コードは短ければ良いというものではないな
- 784 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 21:04:49.96 ID:xH4HHaxN0.net]
- やりたいことをまず自然言語で書く
minとmaxの範囲内ならそのまま出力 範囲外ならばminとmaxでガードする これだけの情報量があるので、コードがそれなりの長さになって当然
- 785 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 21:55:42.10 ID:tnJyg4LP0.net]
- コードゴルフは面白いけどコミットはしないで欲しい
- 786 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 22:26:40.02 ID:0j2qr49h0.net]
- >>768
np.clip(array, _min, _max)
- 787 名前:デフォルトの名無しさん [2022/11/13(日) 22:58:00.99 ID:6O/r8caVM.net]
- 何がコードゴルフかはジャンルにもよるよなあ。シェーダーなんかだとminmaxみたいなのは常套句みたいなものだし、
pythonの内包表記もちょっと凝り出すとコードゴルフ的になる。コーディングガイドラインがあればいいけどね。
- 788 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 23:21:42.99 ID:m9TsWVuY6.net]
- >>774
さすがにこのくらいはグラフ考えて分かってよ
- 789 名前:デフォルトの名無しさん [2022/11/13(日) 23:47:29.33 ID:6O/r8caVM.net]
- まあ、minmaxの良くないところは、慌てて順番反転させたりする事故が起きると何もクリップしてくれなくなるところなんだけど(良く使うなら関数化しておくべき)
とはいえ、minmax的なのNGって、関数型言語全否定に近いものがあると思うんで、その立場でいいのかは考えるべきだと思うけど。 もちろん手続き型メインのPython使ってるんだからPythonではそんなのお門違いだという意見も否定はしないけど
- 790 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 00:16:33.72 ID:RdGM128m0.net]
- maxとminでもいいと思うけど
頻繁に使うならclamp(val,lo,hi)みたいな関数作ればいい
- 791 名前:デフォルトの名無しさん [2022/11/14(月) 02:35:12.38 ID:Msnzn9MH0.net]
- 初コメです。質問させてください。
ウィジェットに、押すとnotepad.exeを起動するボタンを作ったのですが、起動したテキストに文字を書き込む(テンプレート)ボタンを作りたいのですが、どのようにすれば良いでしょうか…
- 792 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 06:45:05.17 ID:gWXr0Wl00.net]
- >>782
PyAutoGUI 内容次第ではPythonやめてAutoItだけの方が楽
- 793 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 08:17:37.42 ID:z4y/4erZ0.net]
- AutoItとかAutoHotKeyとかキーボードやマウスをプログラムから操作して
自動化するツールはいろいろあるけど、 どれが最強なのか今ひとつ判らない 簡単にする為に出来ることを減らしていたり、 いろいろできるけど言語仕様が原始的すぎたり pythonと同じ書き方ができて出来ないことがないのが理想
- 794 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 11:56:34.09 ID:EWF0SvAna.net]
- 対象のプログラムやウィンドウが背面に行ったり最小化されててもちゃんと動くかどうかで選べばいい
- 795 名前:デフォルトの名無しさん (アウアウウー Saa9-OAfI) mailto:sage [2022/11/14(月) 12:07:38.76 ID:K3emCbowa.net]
- 対象プログラムが背面にあっても動くってウインドウハンドルにSendMessageを直接送る感じ?
- 796 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 13:25:46.58 ID:99fRleugr.net]
- windowsのアプリをバックグラウンドで起動して動かすようなのが出来たらなぁ
マウス取られるから他の作業できないんだよね
- 797 名前:デフォルトの名無しさん [2022/11/14(月) 15:23:33.25 ID:yiG7YfVR6.net]
- WindowsをVMに入れるか、リモートデスクトップ複数人ログイン対応のWindowsならフォアグラウンドでも実質バックグラウンドにできるから困らなさそうだ
Win32APIを直で叩きまくればバックグラウンドでも動かせるような気がしないでもないけど、イベント処理のメインループが回るかは謎だね。全然詳しくないや。
- 798 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 21:26:19.81 ID:LuassWmg0.net]
- >>770 がメンテ性悪いとか言う人は
プログラマー向いてないと思うの
- 799 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 21:33:59.91 ID:z4y/4erZ0.net]
- temp = min(input, upper_limit)
output = max(temp ,lower_limit) これを合体させただけなんだけどな
- 800 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 21:55:04.23 ID:aUHlXgrZ0.net]
- 関数化せずにインラインでそれ書いてきたらレビューでハネる
- 801 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 21:57:02.78 ID:CWXyQGgF0.net]
- 頻度次第
- 802 名前:デフォルトの名無しさん mailto:sage [2022/11/14(月) 22:11:36.21 ID:gxurLVtj0.net]
- >>789
まあ適宜空白入れろよとは思う a = max(min(a, _max), _min)
- 803 名前:デフォルトの名無しさん (テテンテンテン MM4b-SGX1) mailto:sage [2022/11/14(月) 22:20:44.64 ID:xHaIXgz6M.net]
- >>790
そもそもmaxの中にminがある時点で頭がおかしくなる俺の場合
- 804 名前:デフォルトの名無しさん (ワッチョイ 2379-zDZ1) mailto:sage [2022/11/14(月) 22:25:56.00 ID:SUeRZblV0.net]
- import ctypes
SendMessage = ctypes.windll.user32.SendMessageW hWnd = ごにょごにょ pos = (y << 16) + x SendMessage(hWnd, 513, 0, pos) # WM_LBUTTONDOWN SendMessage(hWnd, 514, 0, pos) # WM_LBUTTONUP >>786 こんな感じかな どのみち、どう処理されるかは相手次第になってしまうけど 背面とか最小化とか、最悪トップに出てきたり
- 805 名前:デフォルトの名無しさん (ワッチョイ 4b10-TWxH) [2022/11/14(月) 22:50:26.22 ID:dRHiUVHI0.net]
- >>793
それは自動整形機能の仕事で人間が気遣うことではない
- 806 名前:デフォルトの名無しさん [2022/11/14(月) 23:20:28.77 ID:XZXiqJkqd.net]
- >>783
pyautoguiで一歩進みました!ありがとうございます!
- 807 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 01:47:11.37 ID:qykSWSRkM.net]
- >>790
その2行なら受け入れるけど合体させるのは意味はないじゃんって思うよ
- 808 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 01:54:09.53 ID:JTzzJATw0.net]
- 関数名と変数名を工夫すれば良いと思う
_付けるだけでそれを区別するのはちょっと
- 809 名前:デフォルトの名無しさん [2022/11/15(火) 01:57:43.67 ID:7joAI/8k0.net]
- >>798
それは、+=や、f.write(','.join([若干長い内包表記]))が許されるかみたいな話とも繋がっていて、 ぶっちゃけ何度も出て来ればこんな簡単なのは1行にしたくなると思うよ 内包表記だって1行で書きたいから書くって側面もあるわけじゃない。
- 810 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 04:53:39.40 ID:Ohwd0nE10.net]
- >>796
掲示板に書く時におまえが気遣えよって言う指摘だぞw
- 811 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 05:06:14.63 ID:9j9A/xThM.net]
- a = range_ni_osameru(_min, a, _max)
どや!
- 812 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 07:01:01.67 ID:+rxWDVlZ0.net]
- def range_ni_osameru(_min, a, _max):
return _min if a < _min else a if a < _max else _max こうかな!
- 813 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 07:23:39.25 ID:GEd0aXfXa.net]
- >>803
俺なら return _min if a < _min else _max if _max < a else a って書くかな
- 814 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 07:58:14.56 ID:gBqAZwZY0.net]
- 行数というよりは、中間の変数を登場させたくない
合体させるにしても、後ろに繋げていく方式とネストを深くしていく方式があって、 ネストだとどうしても可読性を損なう
- 815 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 09:57:28.98 ID:8PAOVKkjr.net]
- 普段可読性重視だけどリスト内包表記だけは速度変わりすぎるから超複雑にしちゃう
|

|