- 1 名前:デフォルトの名無しさん [2024/09/21(土) 10:14:02.15 ID:ZHy4g+PL0.net]
- !extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024 ↑スレ立てる毎に減るので、減ってたら3つに補充すること。 ※前スレ Pythonのお勉強 Part73 https://mevius.5ch.net/test/read.cgi/tech/1717631290/ VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
- 701 名前:デフォルトの名無しさん mailto:sage [2025/02/19(水) 07:46:07.12 ID:ouE8cAfi0.net]
- いきなり参照してエラーになるのは嫌なので、
いつもgetを使うようにしよう というのは必ずしもいい考えじゃないんだよな エラーにならない筈のものがエラーになるなら異常なので捕まえるべき 本気で何が入ってるか予想できないケースではgetを使うしかないけど、 そんな状況になるのも何か間違ってる
- 702 名前:デフォルトの名無しさん mailto:sage [2025/02/19(水) 08:27:04.14 ID:mSxUrXXi0.net]
- noneが帰るならそれキャッチしとけば同じじゃない?
- 703 名前:デフォルトの名無しさん mailto:sage [2025/02/19(水) 09:44:18.83 ID:tY+HC/mE0.net]
- 新しいキーが挿入されるのはsetdefaultやcollections.defaultdictであって、getは別に新しいキーは挿入されないんじゃなかったっけ?
- 704 名前:デフォルトの名無しさん mailto:sage [2025/02/19(水) 16:01:59.58 ID:7/rbEKea0.net]
- 想定していないことは例外にする
局所的に意図してフォールバックさせたいときはget 恒常的にはdefaultってだけよ
- 705 名前:デフォルトの名無しさん (ワッチョイ cd54-3IcV) mailto:sage [2025/02/19(水) 20:05:14.43 ID:O180uynF0.net]
- 継承したクラスにあった__repr__()をそのまま使って欲しいのにうまく行かない
- 706 名前:デフォルトの名無しさん mailto:sage [2025/02/19(水) 21:58:33.63 ID:S2Edg5gIM.net]
- keyerrorとかindexerrorとか事前にかわせるやつも例外にするのどうなの?
なんかコスト高そうな印象だけど
- 707 名前:デフォルトの名無しさん mailto:sage [2025/02/19(水) 22:19:23.68 ID:7/rbEKea0.net]
- VMといえど高いし気になるならin (__contains__)を使えばとしか
オレはコードの意図がつかみやすいかで使い分けてる
- 708 名前:デフォルトの名無しさん mailto:sage [2025/02/19(水) 22:48:10.15 ID:/AQQIY230.net]
- Rustとか最近の言語って例外ないらしいじゃない。そっちの方が優れているというのがコンセンサスになったらPython4とか5とかのメジャーパージョンアップのときにそちらに舵を切るということもありうるのかな? 自分は3以降でPythonを知ったので、2→3のときの大改革ってのは未経験なんだけど。
- 709 名前:デフォルトの名無しさん mailto:sage [2025/02/19(水) 22:56:14.91 ID:O180uynF0.net]
- 3での変更点って、ええー2ではまだそんなこと考えてたのという、
3が先進的というよりは2が後進的で、 pythonなら当然そうするでしょという感じなんだよな 2の頃はまだperlをメインに使ってた
- 710 名前:デフォルトの名無しさん mailto:sage [2025/02/19(水) 22:59:08.90 ID:aJXoRfiD0.net]
- 2はprintがステートメントで
ステートメント?!と驚いた と思ったら3でもdelがステートメントでまた驚いた
- 711 名前:デフォルトの名無しさん mailto:sage [2025/02/20(木) 00:52:57.36 ID:laXgRgOS0.net]
- パイチョンはインタプリタが全然頑張らないアホの子
- 712 名前:デフォルトの名無しさん mailto:sage [2025/02/20(木) 04:49:24.69 ID:2izZplM70.net]
- 毎日が新鮮な驚きに溢れて楽しそうですね
- 713 名前:デフォルトの名無しさん (ベーイモ MM2b-gW//) mailto:sage [2025/02/20(木) 11:00:03.67 ID:gDWkqRFJM.net]
- >>697
Pythonは、ぼくこんぴゅーたのむずかしいことわかんないけどえーあいあぷりつくるんだもん!な子を満足させる使命があるから例外は必要 彼らが例外を放置してもアプリが止まってしまわないのはフレームワークが最終的にケツを拭いてくれているおかげ
- 714 名前:デフォルトの名無しさん mailto:sage [2025/02/20(木) 19:27:27.78 ID:qCo+divFH.net]
- 例外処理って必要?
書かなくてもPython自身が例外を出して止まるよね
- 715 名前:デフォルトの名無しさん mailto:sage [2025/02/20(木) 19:58:06.02 ID:YvSU5J1d0.net]
- 変な値が入力されたらエラーを表示したい
でも入力部分はずっと下の階層の処理なので、 エラーの情報を上までバトンリレーしないといけない 例外なら言語がやってくれる
- 716 名前:デフォルトの名無しさん [2025/02/21(金) 06:33:27.06 ID:dPC4thbz0.net]
- ギャンブルのデータ分析?とai予想したいのですが、どういう環境がいいんでしょうか?
anacondaが定番のような気がしますが、ローカルだとマシンパワーがどうなのかなと。 unityみたいなゲームエンジン上でも出来たりしますか?
- 717 名前:デフォルトの名無しさん mailto:sage [2025/02/21(金) 10:53:50.45 ID:ebrhUf4S0.net]
- GoogleのColabでええよ
- 718 名前:デフォルトの名無しさん [2025/02/21(金) 11:17:38.16 ID:0EY3V3nR0.net]
- >>703
例外処理っていうのは例外が発生した場合にリカバリー可能な処理を書くんだぞ その辺わかってなくて単純に例外の時にって思ってる奴が多い 具体例で言うと通信 ゲームとかのアップデート想像してみればいい 大容量データダウンロードしてる時に通信状況が悪くなった 例外処理が無ければそのまま例外吐いて失敗となる ここで例外処理として通信状況が良い所に移動しろ的なメッセージを出して続行ボタン押させたり、数秒から数十秒間隔で通信を再開させるようにした場合は処理がスムーズになるやろ こういう風にリカバリー可能な処理を書くのが例外処理やで
- 719 名前:デフォルトの名無しさん [2025/02/21(金) 11:41:35.66 ID:vI88dzmZa.net]
- >>705
もちろんUnityでも出来るよ
- 720 名前:デフォルトの名無しさん [2025/02/21(金) 13:53:02.83 ID:dPC4thbz0.net]
- >>708
一般的にデータ分析ってアナコンダとか使うんですかね? ゲーム目的じゃないですから
- 721 名前:デフォルトの名無しさん [2025/02/21(金) 15:26:48.94 ID:NDdeWha40.net]
- 現実世界の様子やUIを理解してタスクをこなせるマルチモーダルAIエージェントの基盤モデル「Magma」をMicrosoftが発表
https://gigazine.net/news/20250221-microsoft-magma/ 悪用されている
- 722 名前:デフォルトの名無しさん [2025/02/21(金) 17:14:00.29 ID:0EY3V3nR0.net]
- >>709
anacondaというよりjupyterを使う なのでgoogle colabでも良いしvscodeのプラグイン入れてでも良い
- 723 名前:デフォルトの名無しさん [2025/02/21(金) 18:41:20.24 ID:dPC4thbz0.net]
- >>711
ありがとう jupyterlってのが必要なんすね 機械学習をunityでやろうとしてましたけど、それと別途で用意します
- 724 名前:デフォルトの名無しさん [2025/02/21(金) 18:53:52.10 ID:YTEtnXyW0.net]
- >>712
>>711みたいな馬鹿を信じるなよ
- 725 名前:デフォルトの名無しさん [2025/02/21(金) 19:06:12.50 ID:hCnqiwLw0.net]
- LLM の推論機能を活用する新しいバックドア攻撃「DarkMind」が提唱される
https://gigazine.net/news/20250221-darkmind-chain-of-thought/ AIはチェスで負けそうになるとチートする https://gigazine.net/news/20250221-ai-chess-cheating/
- 726 名前:デフォルトの名無しさん [2025/02/21(金) 23:21:50.44 ID:TllVjNz50.net]
- from datetime import datetime
t_start: str = "23:00" t_end: str = "24:00" t_start_dt: datetime.datetime = datetime.strptime(t_start, "%H:%M") t_end_dt: datetime.datetime = datetime.strptime(t_end, "%H:%M") unix_t_start: float = t_start_dt.timestamp() unix_t_end: float = t_end_dt.timestamp() x = int(unix_t_end - unix_t_start) print(x) t_endが24だと以下のエラーが出ます 24時間表記の時は%Hではないんでしょうか? ValueError: time data '24:00' does not match format '%H:%M'
- 727 名前:デフォルトの名無しさん mailto:sage [2025/02/22(土) 00:07:13.49 ID:Oo9CzgQsM.net]
- >>715
知らんけど時間って 00:00:00~23:59:59 ちゃうの?
- 728 名前:デフォルトの名無しさん mailto:sage [2025/02/22(土) 00:28:58.03 ID:rVspP8iQ0.net]
- 不親切なエラーだよね
- 729 名前:デフォルトの名無しさん mailto:sage [2025/02/22(土) 00:58:09.16 ID:eBlj03Lj0.net]
- 境界値の問題って定番じゃね
テストケースにも必ずいれるだろ
- 730 名前:デフォルトの名無しさん mailto:sage [2025/02/22(土) 07:44:50.26 ID:mdQ5EfsK0.net]
- 閏秒なんか廃止で当然だよな
- 731 名前:デフォルトの名無しさん [2025/02/22(土) 12:10:03.03 ID:kWiPacnr0.net]
- >>716
ありがとうございます このようにしてみましたがもっとスマートな方法ってありますか? from datetime import datetime t_start: str = "23:00" t_end: str = "24:00" if t_end[0:2] == "24": t_end = f"00:{t_end[3:5]}" t_start_dt: datetime.datetime = datetime.strptime(t_start, "%H:%M") t_end_dt: datetime.datetime = datetime.strptime(t_end, "%H:%M") unix_t_start: float = t_start_dt.timestamp() unix_t_end: float = t_end_dt.timestamp() if t_end[0:2] == "00": unix_t_end += 86400 # 24時間足す x = int(unix_t_end - unix_t_start) print(x)
- 732 名前:デフォルトの名無しさん mailto:sage [2025/02/22(土) 12:19:18.21 ID:mdQ5EfsK0.net]
- 何がしたいのか不明だけど、時間の計算にはtimedeltaを使う
- 733 名前:デフォルトの名無しさん [2025/02/22(土) 12:35:47.16 ID:kWiPacnr0.net]
- >>721
ありがとうございます 調べてみます
- 734 名前:デフォルトの名無しさん [2025/02/22(土) 12:42:40.44 ID:kWiPacnr0.net]
- やりたいことはt_startとt_endの中に入ってる文字列の時刻の差分を求めたいです
- 735 名前:デフォルトの名無しさん mailto:sage [2025/02/22(土) 12:44:39.38 ID:mdQ5EfsK0.net]
- といいつつ、日付ではなく時間の長さをhh:mm:ss形式で書きたい時用に、
秒単位のfloatと文字列の相互変換ライブラリを自作した 標準にはいいの無い
- 736 名前:デフォルトの名無しさん mailto:sage [2025/02/22(土) 12:51:12.03 ID:mdQ5EfsK0.net]
- うちのライブラリで書くと、
delta = str_sec(t_end)-str_sec(t_start) print(sec_str(delta)) こんな感じになる
- 737 名前:デフォルトの名無しさん [2025/02/22(土) 13:11:12.71 ID:kWiPacnr0.net]
- 途中経過ですけど今こんな状態です
t_start: str = "23:00" t_end: str = "24:00" dt_now = datetime.now() t_start_dt = datetime(year=dt_now.year, month=dt_now.month, day=dt_now.day, hour=int(t_start[0:2]), minute=int(t_start[3:5])) if t_end[0:2] == "24": dt_d = dt_now.day + 1 # もし現在が月の最終日だとエラーになる "ValueError: day is out of range for month" t_end_dt = datetime(year=dt_now.year, month=dt_now.month, day=dt_d, hour=0, minute=int(t_end[3:5])) else: t_end_dt = datetime(year=dt_now.year, month=dt_now.month, day=dt_now.day, hour=int(t_end[0:2]), minute=int(t_end[3:5])) x = t_end_dt - t_start_dt print(t_start_dt) print(t_end_dt) print(x)
- 738 名前:デフォルトの名無しさん [2025/02/22(土) 13:58:51.98 ID:kWiPacnr0.net]
- 何度もすみません
とりあえずこうなりました なんだが余計に長くなった気がします from datetime import datetime def strToDt(str_dt: str): dt_now = datetime.now() # TODO 25や26の場合があるかもしれないので24決め打ちはやめる if str_dt[0:2] == "24": next_dt = dt_now + timedelta(days=1) dt_dt = datetime(year=next_dt.year, month=next_dt.month, day=next_dt.day, hour=0, minute=int(str_dt[3:5])) else: dt_dt = datetime(year=dt_now.year, month=dt_now.month, day=dt_now.day, hour=int(str_dt[0:2]), minute=int(str_dt[3:5])) return dt_dt t_start: str = "23:00" t_end: str = "24:00" t_start_dt = strToDt(t_start) t_end_dt = strToDt(t_end) x = t_end_dt - t_start_dt print(t_start_dt) print(t_end_dt) print(x) # 時間:分:秒 形式 # TODO xを分形式に変換する
- 739 名前:デフォルトの名無しさん mailto:sage [2025/02/22(土) 14:01:58.99 ID:92tqsAYeM.net]
- 初学者だと思うけど
end>startが保証されてるなら >725
- 740 名前:
みたいに秒に変換して引き算が正解じゃない? [] - [ここ壊れてます]
- 741 名前:デフォルトの名無しさん [2025/02/22(土) 14:16:15.84 ID:kWiPacnr0.net]
- >>728
Endが24までなのか25や26もあるのか、それとも24の次は1なのか確実じゃないのでその辺考えて修正してみます やっぱりタイムスタンプに変換した方が短くなりますか? あと、727のインポートでtimedeltaが抜けてました
- 742 名前:デフォルトの名無しさん mailto:sage [2025/02/22(土) 14:22:19.90 ID:mdQ5EfsK0.net]
- print(datetime.now())
これの出力が 2025-02-22 14:20:40.735896 これになるのが嫌 秒を整数にしてくれたらそのまま使えるのに
- 743 名前:デフォルトの名無しさん [2025/02/22(土) 15:29:44.08 ID:kWiPacnr0.net]
- 何度もすみません
こうなりました 今のところt_startよりもt_endが小さいとエラーになります https://techiedelight.com/compiler/?119b
- 744 名前:デフォルトの名無しさん mailto:sage [2025/02/22(土) 18:46:10.84 ID:/k68f2f30.net]
- pandasなら+“:00”してHH:mm:ss形式に揃えれば25:00や26:00でもパースできるけど簡単な処理だから自分で計算すればいいんじゃないかと思う
def parse_as_minutes(hhmm): hours, minutes = [int(x) for x in hhmm.split(':')] return hours * 60 + minutes
- 745 名前:デフォルトの名無しさん mailto:sage [2025/02/22(土) 18:52:17.77 ID:mdQ5EfsK0.net]
- そんなのを毎回作ってられない
2回くらいは作る 3回目あたりで、本腰入れて部品化する
- 746 名前:デフォルトの名無しさん (ワッチョイ 43ce-qk/j) [2025/02/22(土) 23:02:04.13 ID:eBlj03Lj0.net]
- >>731
https://techiedelight.com/compiler/?96ec これじゃ駄目なのか?
- 747 名前:デフォルトの名無しさん mailto:sage [2025/02/22(土) 23:31:26.22 ID:d1IFpLYA0.net]
- 劣化しとるやないかーい
- 748 名前:デフォルトの名無しさん (ワッチョイ 6e9a-1YEc) [2025/02/23(日) 09:47:38.74 ID:BUMkVt7f0.net]
- 個人レベルで機械学習学んでも意味無いですかね?
例えば競馬予想aiを作りたいとして しかし、けっきょくのところデータがないと、学習モデルだけあっても意味ないですもんね 競馬なら馬場状態を数値化したデータというのがないと、学習させられないですよね
- 749 名前:デフォルトの名無しさん mailto:sage [2025/02/23(日) 10:33:41.64 ID:2+mAKcn80.net]
- >>730
そのくらいは標準で簡単に出来るだろ
- 750 名前:デフォルトの名無しさん mailto:sage [2025/02/23(日) 10:36:52.09 ID:foL9AaqB0.net]
- >>736
自分で学習すりゃいいじゃん データなんていくらでもあるんだし
- 751 名前:デフォルトの名無しさん mailto:sage [2025/02/23(日) 11:58:59.62 ID:uSqDrBD8M.net]
- >>736
他人の後追いするぐらいなら他人のシステム使えばよい 競輪なんて放送でAI予想の倍率出しながら中継してる
- 752 名前:デフォルトの名無しさん mailto:sage [2025/02/23(日) 12:29:42.21 ID:TNVZaLWv0.net]
- オッズの計算に投票だけではなくAI予想も加味したら、
面白さと利益率が上がるのでは
- 753 名前:デフォルトの名無しさん [2025/02/23(日) 13:11:05.65 ID:BUMkVt7f0.net]
- >>739
例えばバンクのホコリっぽさとか、選手の体調とか、そういった不確定要素ってデータがないですよね なので、公式のデータ以外ないとするなら、あまりやる意味がないのかなと
- 754 名前:デフォルトの名無しさん mailto:sage [2025/02/23(日) 13:17:20.60 ID:TNVZaLWv0.net]
- 確率が計算できて、オッズがその確率通りならば、どこに賭けても期待値は同じ
実際には、確率とオッズに乖離が発生する そこに着目して、確率の高いところではなく、期待値の高いところに掛けると儲かるかもしれない
- 755 名前:デフォルトの名無しさん mailto:sage [2025/02/23(日) 14:34:58.45 ID:uSqDrBD8M.net]
- >>741
競輪AIだと雨が降ってると硬い結果になる 選手が雨の中危険な勝負して事故ったりしたくないんだろ
- 756 名前:デフォルトの名無しさん mailto:sage [2025/02/23(日) 15:42:44.26 ID:TNVZaLWv0.net]
- early continue 便利だな
行は増えるけどネストは浅い方がいいので積極的に使おう
- 757 名前:デフォルトの名無しさん [2025/02/23(日) 16:11:59.81 ID:r171NbV30.net]
- >>744
横からだけどサンクスこれいい
- 758 名前:な []
- [ここ壊れてます]
- 759 名前:デフォルトの名無しさん (ワッチョイ cd79-Ro5/) mailto:sage [2025/02/23(日) 16:59:33.82 ID:SH8eoGXi0.net]
- そんな言い方があるんだな
同じように関数で場合分けごとにさっさとreturnしてるけど これもearly returnっていうのを知らなかった
- 760 名前:デフォルトの名無しさん mailto:sage [2025/02/23(日) 17:13:57.05 ID:TNVZaLWv0.net]
- 例えばループで文字列を処理していて
m = re.search(pattern, str) found = m.groups()[0] これだと見つからない時にエラーになる で、 if m := にしたりするけど、見つからなかったら飛ばしたいなら、 else: continue になって、なんか変 最初から m = のままで、 if not m: continue を付ければすっきりする セイウチは絶滅の方向で
- 761 名前:デフォルトの名無しさん mailto:sage [2025/02/23(日) 18:43:24.49 ID:ap5ufkCU0.net]
- それ最初からelse: continue必要ないじゃん
- 762 名前:デフォルトの名無しさん mailto:sage [2025/02/23(日) 19:01:50.10 ID:TNVZaLWv0.net]
- elseをほっとくと、foundの中身が不定になってしまう
事前にNoneを入れておいたりして、後の処理でNoneなら飛ばす みたいなことになる そんなことするくらいなら、continueしてしまった方が後腐れない
- 763 名前:デフォルトの名無しさん (アウアウウー Sa39-c/TO) [2025/02/23(日) 19:46:23.76 ID:CZU86cpwa.net]
- >>709
Unityがゲームしか造れないという考え方は改めるべき
- 764 名前:デフォルトの名無しさん (アウアウウー Sa39-c/TO) [2025/02/23(日) 19:48:54.69 ID:CZU86cpwa.net]
- re.findall(pattern, str)
- 765 名前:デフォルトの名無しさん (ワッチョイ 0154-ePnC) mailto:sage [2025/02/23(日) 20:05:27.12 ID:TNVZaLWv0.net]
- もしかしてfindallって全ての点でsearchに勝ってる?
- 766 名前:デフォルトの名無しさん mailto:sage [2025/02/23(日) 20:54:18.71 ID:ap5ufkCU0.net]
- なんでだよw
めちゃくちゃ要領悪いな
- 767 名前:デフォルトの名無しさん [2025/02/23(日) 22:37:16.02 ID:R0b4DHIEd.net]
- >>749
gotoを多用しそうな人発見
- 768 名前:デフォルトの名無しさん mailto:sage [2025/02/23(日) 23:03:58.66 ID:LVu8ljPH0.net]
- pythonのreはAPI設計に難があるよね
他の言語から戻って来るたびに仕様の確認が必要
- 769 名前:デフォルトの名無しさん mailto:sage [2025/02/23(日) 23:09:23.71 ID:TNVZaLWv0.net]
- perlから来たからsearchばっかり使ってるけど、
findallの方がこなれてそうだな
- 770 名前:デフォルトの名無しさん (ワッチョイ 6e9a-1YEc) [2025/02/24(月) 05:49:40.37 ID:ujJrcFED0.net]
- >>750
tensorflowとかunityで使えるんすか(´・ω・`)
- 771 名前:デフォルトの名無しさん (ワッチョイ 752a-xrb0) [2025/02/24(月) 08:23:49.32 ID:TCszVRfv0.net]
- >>747
> 最初から m = のままで、 > if not m: > continue > を付ければすっきりする > セイウチは絶滅の方向で 話題をよく理解していないのだけれど、 コロンイコールを使って、そのように論理を逆転してやればすっきりする、というハナシとも違うの? if not (m := re.search(pattern, str)): continue
- 772 名前:デフォルトの名無しさん mailto:sage [2025/02/24(月) 12:12:57.30 ID:4WrA9fgL0.net]
- >>758
747じゃないがセイウチはどうもPythonicじゃない感ある 他言語のletみたいにスコープも閉じてないし
- 773 名前:デフォルトの名無しさん mailto:sage [2025/02/24(月) 14:57:43.47 ID:d83yxTtH0.net]
- いくつかのパターンのどれかに合致する、みたいな時は
if m := elif m := elif m := みたいにしか書きようがない パターン検査と結果取得を同時に書かないと、同じことを2回書くことになる
- 774 名前:デフォルトの名無しさん mailto:sage [2025/02/24(月) 15:09:39.96 ID:Jwc6B7rV0.net]
- >>756
ほんとにperl使ってた? gフラグ + リストコンテキストを真似したのがfindallなんだが
- 775 名前:デフォルトの名無しさん mailto:sage [2025/02/24(月) 15:27:48.14 ID:d83yxTtH0.net]
- だからこそ、1行で決まった数キャプチャーする時はsearchで、
全体からいくつあるか判らないけどあるだけ取ってくる時はfindallという使い分け という設計だったけど、 1回しかマッチしないと判っててもfindallして[0]だけ使う方が使いやすいっていう
- 776 名前:デフォルトの名無しさん mailto:sage [2025/02/24(月) 15:29:10.34 ID:4WrA9fgL0.net]
- >>760
人それぞれではあるけども 検査先を単一にしてパターンマッチングに持ち込めないんなら 一緒くたにしないで個別のifと必要なら早期return/continueにする Pythonの簡潔さって表現力があって強力な他言語とは趣がちがう
- 777 名前:デフォルトの名無しさん mailto:sage [2025/02/24(月) 16:51:44.97 ID:Jwc6B7rV0.net]
- >>762
pythonでも使い分けできてないみたいだな 自分の不出来をperlのせいにしたらだめだぞ
- 778 名前:デフォルトの名無しさん [2025/02/24(月) 17:00:02.49 ID:qXEt7oPpr.net]
- C#のLINQは優秀だよな
async/awaitみたいにあれも貰ってきてくれよ
- 779 名前:デフォルトの名無しさん mailto:sage [2025/02/24(月) 18:19:27.76 ID:xkCGwjl20.net]
- >>760
そういうのはパターンとアクションをコレクションにまとめる
- 780 名前:デフォルトの名無しさん mailto:sage [2025/02/24(月) 18:26:57.10 ID:d83yxTtH0.net]
- 具体的に何してるか書くと、日付や時刻をファイル名に含んだいろんなファイルを時系列ソートする
日付時刻の表記方法は10種類あって、どれでもない場合はタイムスタンプで代用する 日付は必ず含むが、時刻は無い場合もある なかなか統一的には書けないので、if m := elifのかたまりになる
- 781 名前:デフォルトの名無しさん [2025/02/24(月) 18:37:53.69 ID:qXEt7oPpr.net]
- 都度ファイル名を解析して時系列ソートするんじゃなくて一発バッチでファイル名を統一してしまうわけにはいかんのか
- 782 名前:デフォルトの名無しさん mailto:sage [2025/02/24(月) 19:03:25.46 ID:Ts/aFZR80.net]
- >>767
そういうのこそコレクションにまとめるべき 10個もif-elseで同じことしない
- 783 名前:デフォルトの名無しさん mailto:sage [2025/02/24(月) 22:53:00.73 ID:Wgnd8zr+0.net]
- 本人は同じ処理を繰り返し書いてる認識自体がないんじゃないかな
すごくベーシックなリファクタリング方法だけどメソッド抽出やクラス分割や統合に比べて認識できない人が多い印象がある
- 784 名前:デフォルトの名無しさん [2025/02/25(火) 09:13:08.75 ID:DokSK96w0.net]
- >>770
コードを例示してあげなよ。 プログラム板でコードで話さないのもどうかと思うよ。ベーシックならそうマル秘でもないのでしょう。
- 785 名前:デフォルトの名無しさん [2025/02/25(火) 09:54:29.03 ID:XzpdRQ1Sa.net]
- 769がwinprocのWM_hogehogeのifelse観ると卒倒するだろうな
- 786 名前:デフォルトの名無しさん mailto:sage [2025/02/25(火) 17:56:27.99 ID:PjrSO8Sc0.net]
- コンテキストが全然違うから比べる意味がない
- 787 名前:デフォルトの名無しさん mailto:sage [2025/02/25(火) 19:31:30.09 ID:z5mNSc8+0.net]
- 数百個のswitch caseは別に見にくいとは思わんのよな
むしろ追加が簡単だからわかりやすい
- 788 名前:デフォルトの名無しさん (ワッチョイ cd01-p51G) mailto:sage [2025/02/25(火) 23:57:48.17 ID:xhjdbHGf0.net]
- >>771
わざわざ例示するのもちょっと恥ずかしいが一例を書いておく for (pattern, func) in rules: if m := re.search(pattern, string): return func(m) 他言語でstatic dispatchが求められる用途ではもちろん使わない
- 789 名前:デフォルトの名無しさん (ワッチョイ 0154-ePnC) mailto:sage [2025/02/26(水) 00:09:16.17 ID:wJOChXEu0.net]
- 各funcがそれぞれ違う内容の筈という前提があるけど、
殆どそっくりなfuncが延々と並んだら、もう少し頭いいやり方があるのでは、と思うだろう
- 790 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 00:50:58.38 ID:xhjdbHGf0.net]
- うーん
そっくりじゃないから違う処理をしてる(と思ってる) 違う処理をしてるから統一的に書けない(と思ってる) というのがまさに「本人は同じ処理を繰り返し書いてる認識自体がない」状態なんだがなぁ
- 791 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 01:45:33.67 ID:TQg7w7Pj0.net]
- argparseとかUIのイベント処理がそんな感じだけど
数が増えたらボイラープレートだらけで美しくないんだよな
- 792 名前:デフォルトの名無しさん [2025/02/26(水) 02:08:13.92 ID:O0INS9IK0.net]
- 日付のパターン 正規表現にして その日付部分を引っ張り出してきて 戻り値にすればいいのでは
- 793 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 07:46:22.98 ID:EieBhFTu0.net]
- あー、それだ
30時間制でhourが23を超えてたら、24引いて1日足す、みたいな処理もあって、 それを各関数でやってられない 最終的に欲しいのはdatetimeのオブジェクトで、その変換も一括でやりたい で、全体を一つの処理にしてたけど、一番プリミティブな抽出部分だけ関数化すればいいのか 日付と時刻をバラバラで返すのは嫌すぎるのでclassにする
- 794 名前:デフォルトの名無しさん [2025/02/26(水) 09:52:35.13 ID:z2nMevLL0.net]
- >>776
もう少し頭いいコードを示すと良いのでは。 10パターンの日時表現を1パターンに収斂、統一させる。殆どそっくりなfuncも収斂させるのだろうか。
- 795 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 12:34:12.97 ID:RZQSvPw/0.net]
- 実際のパターン提示されてないし
一般化したい欲求から来てるのにそんな冗長なコード書くか?
- 796 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 13:24:03.55 ID:XqJTS5Fa0.net]
- 実際でなくていいよ。適当にググったこんなので。
2025-02-26T23:45:12.34.txt Wed 02-26-2025.dat Wed 26 Feb 2025 11:45:12 PM.txt
- 797 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 16:51:32.29 ID:w6olCj090.net]
- その例だけならarrow使えば正規表現使わなくても簡単にできるよ
25時とかは守備範囲外なので別途事前処理が必要
- 798 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 17:07:33.10 ID:n89P36ao0.net]
- ubuntu22.04,python3.10.12でUSBカメラ繋いで撮った動画を保存するプログラム作ろうとしたんだけど保存した動画が再生出来ないや
静止画を結合して動画にする事はできたからコーデック的な問題ではないと思うんだけど import cv2 cap=cv2.VideoCapture(0) width,height=int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) out=cv2.VideoWriter("/home/taro/Videos/result.avi,cv2.VideoWriter.fourcc(*"DIVX"),30.0,(width,height),isColor=True) print("録画を開始します") try: while cap.isOpened(): ret, frame=cap.read() if ret: out.write(frame) cv2.imshow("frame",frame) if cv2.waitkey(1) & 0xFF ==ord("q"): break else: break except KeyboardInterrupt: print("録画を終了します") finally: cap.release() out.release() cv2.destroyAllwindows()
- 799 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 19:37:57.30 ID:j/LMUKKxa.net]
- aiに聞けよ
- 800 名前:デフォルトの名無しさん (ワッチョイ 8d59-D2xv) [2025/02/27(木) 11:58:07.92 ID:80QDg94G0.net]
- jsonファイルが開けません。何が原因でしょうか?
https://techiedelight.com/compiler/?b14b6e 24行目以降はスクリプトの出力結果です TextIOWrapper型はダメと書いてあるようなんですけどどうしたらいいのか分かりません https://jsonlint.com jsonファイルの中はここで念のためチェックしました
|

|