Pythonのお勉強 Part68
■ このスレッドは過去ログ倉庫に格納されています
!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オフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/
●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その57
http://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 エラトステネスの篩みたいなまともなアルゴリズムを使え >>635
range(2, n//2 + 1) を range(2, int(n**0.5)+1)
にするだけで速くなると言うのは違うか。
n**0.5 は math を import するのが面倒だっただけ。。。 >>637
言語間の速度差を埋めたいという文脈で
片方により効率的なアルゴリズム使えというのは筋が違うと思う
それやったら相手のCも早くなるやん それはそうだけどPythonをできるだけ速くしようというのは徒労に終わるんだよな >>640
> 言語間の速度差を埋めたいという文脈で
そうか、単にPythonで高速化したいだけに見えるけど?
> pythonではどうやって高速化できますか? >>635
そもそもこのプログラムは一行で済む
print(sympy.primepi(250001)) 公式のドキュメント読むと
「pip は推奨されるインストーラ・プログラムです。 Python 3.4 からは、 Python バイナリ・インストーラに最初から付属するようになりました。」
とか見るけど、触る環境どれも最初からインストールされてた試しがなくて手動インストールばっかなんだが >>648
どこのバイナリインストーラ使ってるの? >>648
たぶん入ってるけど実行ファイルのパスが通ってないんだよ debianとかはOSのスクリプトを実行するための環境なので
最小限になるようパッケージが分かれている
不便にみえるけどユーザが使う場合はパッケージ外で導入した方が
特定のバージョンも好きにえらべてシンプル npm/yarn, Ruby のbundler などは、デフォルトでコマンド実行できるけど
多分これらは、デフォルトで環境変数PATH にあるフォルダにインストールされるのだろう >>648
python -m pipするのが安全やで(pipコマンドだと、複数バージョン入ってると意図したpythonに紐づいてないpipが実行される場合がある) pythonつかって紙に書いた文字判別するとかって簡単にできますか? >>655
無料のライブラリなんかありませんかね?無いんなら諦めます >>654
判別とはどういうことをしたいのかよくわからんけどとりあえず python ocr とかでぐぐればいいんじゃね?
https://gammasoft.jp/blog/ocr-by-python/ pythonでなんかかっこいいことがしたいです
でもやることが見つかりません。どうしたらいいですかね
今までポイントサイトをseleniumで自動化したりdiscordのbot作ったり動画編集自動化したりしてきたんですが先というか続きが見えません PyPIザッピングして良さそうなモジュールみつけてかっこいい応用を書く ラズパイでIoT
リアルの物を動かせると、やれる事の幅が広がるよ >>660
壁に落書きしてくるのがかっこいいと思ってるんなら大間違いだわw PyPIで良さそうなモジュール見つけるってどうやるの?
PyPI サイト見てtrend moduleみたいなの適当に選んで説明見ても詳しい使い方がわからない 電子工作もそうだけど、環境は整いすぎに整ってて、やりたいことがあれば何でもすぐにできる
でもやりたいことが見つからない
さてはみんな環境を整えることを目的にしているな アホな質問だな~
まずやりたいことがあって、それからツールを探すものだろ その通りだけどやりたいことが見つからないんだわ
もしかすると勉強からの逃避のためにプログラミングという逃げ場を作りたいのかもしれない。やりたいことが自然と出てきたらやることにするよ >>654
EasyOCR は?
pytorch必須だが 使い物になるOCRはみんなAIで有料なんだよな
客はDXしたい企業だから高い 料金みたことある?業務で考えたらめちゃ安いとおもうが 有料OCR知ってる俺スゲー君なんて相手にすんなよ... OCRしたい書類なんて有限だから、あらかた終わったら需要が無くなる
そしたらgoogle様が無料開放してくれる筈 AIだから教育が必須で、それなりにコストがかかる
こんなもんは公共事業で、どこかが代表してやって、コスト回収できたら無料化する
各国で自分のとこの言語についてやるのが筋だけど、
どうせ日本はやらないのでgoogleがやる 似たようなので、音声からテキストへの変換も金かかる
あれが無料で出来たら過去の膨大な音声や動画の資料が検索したり分析可能になって、
文化が大きく前進するだろうに金がブレーキかけてる
国の事業としてやれば一人頭の負担なんて微々たるものなのに >>677
つまり文字起こし言いたいんだろ?
なんかクソ認識悪いAPIだったら何かあった気がする 有料と言ってもgoogleAPIってかなり安いと思うんだけど
手持ちの本数十冊OCRして1,000円いかなかった気がする 某有名ゲーム会社で働いてる友人が、「Pythonではあまりクラスを使うべきではない。
それほど高度なプログラムでなければ関数を使えばいい」と言っていたんですが、
そうなんでしょうか?
皆さんの意見を聞かせて頂きたいです 関数でできればいいけど、引数たくさん渡したり、グローバル変数で渡してたり、
みたいな汚いことするくらいならクラスがいい Javaのようになんでもかんでもクラスを作る感じじゃないというのは事実。
でも、dataclassとかnamedtupleとかは使うかな。
とはいえやることによると思う。 状態を持つオブジェクトを扱うならクラスは必然なのでは pythonはメンバ変数にself必須なのがダルい
メインプログラムまでクラス化する必要はないと思う
規模が小さければモジュール変数をグローバル変数のように使うのが便利
vscodeならインテリセンス利くし >>687
プログラム水準(?)の高低でなく、実行速度の遅速でそう言われるのを聞いたことはある。大昔ね。
事実かは知らぬ。 >>687
使うべきでない理由をなぜ聞かなかったのか?
それを書けば話は終わる
君の友人ほどスキルのある人はここにはいないからな >>687
必要になるまで不要なもので汚すな
シンプルに書けってことかと >>691
だなselfを二文字くらいの別名に出来ないのかな? perlから来たからselfは当たり前だと思ってる 開発者間で同意取れるなら
ただの関数の引数だから好きに変えられはする グローバル変数用のファイルを作ってas gでインポートってのをqiitaで見たけどかなり便利
g.nameみたいにアクセスする それは他に影響しないというだけで、グローバル変数の欠点は何も解決しない
作って使ってすぐ捨てるならいいけど、保守が必要なら時間かけてシンプルにしとかないと グローバル変数はプログラム全体を通した設定値とかに使うもんじゃない?
それこそメインプログラムにとってのselfよ
変に引数取りまくるより可読性高いと思う
規模にもよるんだろうけど configを読んでグローバルに格納してmain()を呼ぶ
みたいな作りになってるのが多い
うちのスクリプト 設定値の保持ならぜんぜんOK
状態を丸見えで管理できないとこに置くなってことでしょ 関数の中に下請け関数があって、
なんかごちゃごちゃしてきたからリファクタリングだと外に出したらスコープから外れたので、
じゃあみんなグローバル化したれ、みたいにglobal付けて誤魔化す >>687
どうせ、いたずらにclassを多用したゴミトランプゲームを
見せたんだろ?いつまでも練習だからって言って、設計もしないで
ゴミコードを見せ続けるから嫌われかけてるんだよ。 クラス化するのは、言語のタイプやプロジェクトの規模ではなくて
データ同士の相関を元に、見通しをよくすることが目的だと思う
あるいは自分用ライブラリとしてカプセル化しておきたいとか
そういう話を置いて、やらない方がいいレベルの問題があるのかw >>687
おまいは友人に言われた事を何でも信じるのか?
この洗剤飲めるの。by アム・○○ぃ 匿名掲示板で聞いて得た答えを信じるというのもどうかと思う レスしてくれた皆さんありがとうございます
参考にさせて頂きたいと思います
>>689
CUIの簡単なカードゲームではどうでしょうか?
>>693
失礼しました
曰く「クラスを下手に使わない方がコードが無駄に複雑にならなくてよい」
からだそうです
>>694
まさにそんな感じです
>>698
ちょっと彼に悪いかなって…
>>707
ゴミときたもんだ
彼の人柄はそんな感じじゃないよ ねえ、openpyxlとかでオンライン上のExcelファイルを修正できないの? どこかのクラウド(どこ?)に置いたファイルの意味なのか
Office365で作成したファイルなのか どっちにしても手元に持ってこないと厳しいんじゃないかねえ 関数とクラス両方使えるのがpythonのメリットなのだから、常に適切な方を選べってことじゃないかと。 abcを使わないとできんことはあまりやりたくないねえ >>716
> 関数とクラス両方使えるのがpythonのメリットなのだから、常に適切な方を選べってことじゃないかと。
なら初めからそう言えや
まあそう言われたら適切な方の決め方について小一時間は問い詰めたいけどなw >>722
teamsに申し込んでoffice365に申し込めばクラウド上でエクセルが使えます >>712
カードゲームならカードクラスは作ったほうがよさそう。
あとはカードゲームのルールによる。 >>724
687が戒めたいのがまさに724みたいな馬鹿野郎なんだろうな。
目的と手段が入れ替わってclass考えて作るのに必死になる馬鹿。 カードクラス作ってもいいけど、同じカードが存在しない、記号4つと数字1〜13の組み合わせの
ものにクラスがいちいちいるかな。
カードクラスはカード1枚を表して、なにができればいいんだ?
記号クラスがあって、各記号クラスがあって、ナンバークラスがあって、
is_MarkMatchとかis_NumberMatchとかもってんの?
idとprintがあればいいのかな。まあいいけど、そんだけのために
classいちいち用意するのめんどくない?
複数枚のカードを扱うcardsクラスなのかな?機能はいろいろ持てそうだけど
ゲーム固有すぎてどうなのかな? 可読性考えるとクラスのほうが良いわな
自分だけが使うなら好きに作ればいい 自分だけが使う場合でも後々困る
読みにくくていいのは再利用しないと判ってる場合 >>725
689だが、トランプはクラスを作った方が(少なくともnamedtuple,dataclass)便利だと思うぞ
>>726
記号クラス、番号クラスなんて作らない
記号はenum、番号はそのまま1~13でいい
が、どの記号が黒だ赤だ、どの番号が絵柄か(JQKA)
みたいなのはたとえインスタンスが一個でもメソッドになってた方が便利だと思うけどなあ。
カードは内部表現とUI上の表現が異なるのが自然だし、そういう意味でもクラスにしておくのは悪くないと思うが
クラスにしすぎてもしょうがないというのは、ゲームのルールをクラスにして共通のインタフェース持たせて、バリエーションを切り替えられるようにしても大抵は仕方ないみたいなことだよ
もちろん、どんなゲームシステムを作るかによるし、ルールを共通インタフェースで入れ替えられるようにするメリットがある場合もあるけど 全てユースケース次第じゃね
13×4のブール配列で持っていたほうが都合がよい場合もあるだろうし とりあえず作って、必要に応じてリファクタリングしていけばいい カード型のインスタンスを生成するデッキクラスを作りたいやん
deck.suffle()
hands = deck.draw(5)
みたいなさあ
あとは各ゲームで処理つくろ 多くのレスを頂き、ありがたく思います
ちょっと自己顕示欲が強い気もしますが、俺のGitHubを公開させて頂くので、
よろしければご覧下さい
https://github.com/masa-gh/practice
のblackjack_3.pyがそれです
これでもクラス使わないで書けるのかな… ■ このスレッドは過去ログ倉庫に格納されています