[過去ログ] Pythonのお勉強 Part74 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
639: (ワッチョイ 7f6e-HfJw) 02/15(土)00:03 ID:7QZxROg40(1)調 AAS
>>638
dollar_とかatmark_とか変数に付ければいいのでは?
640
(1): (ワッチョイ ef54-r5n3) 02/15(土)00:09 ID:nmEKbiHe0(1)調 AAS
指し示す時は%varとか@varだけど、使う時は$var{}とか$var[]なのは、
普通に混乱するよな
同じ名前が使えるのはやばすぎるので、敢えて使わないようにしてた
641
(1): (ワッチョイ 0701-Wuzd) 02/15(土)00:24 ID:Ff6IMwfd0(1)調 AAS
>>636
右のint()はintにキャストしたい時に使う
左のintも大半の箇所では不要

数値リテラルで初期化する場合に明示的に型を書く必要があるケースはあまりない
上で書かれてるdataclassのfieldなんかは例外
642: (ワッチョイ 1a8b-RGTj) 02/15(土)01:12 ID:8VzqP0+T0(1/2)調 AAS
type aliasでwin32 apiみたいに狂ったようなヘッダーファイルのimportとかになったら嫌だな
643: (ワッチョイ 7f32-pSVK) 02/15(土)02:36 ID:jP/E47uy0(1)調 AAS
型ヒントないとやだやだ
644: (ワッチョイ 8edb-u07z) 02/15(土)03:01 ID:uBYSxski0(1/2)調 AAS
>>641
ありがとうございます
645: (ワッチョイ 8edb-u07z) 02/15(土)03:03 ID:uBYSxski0(2/2)調 AAS
>>640
なるほど
646
(1): (ワッチョイ bbe4-1V4e) 02/15(土)09:21 ID:PDHi7G9/0(1/2)調 AAS
一括代入の左辺って、正確にはタプルではないよね。タプルに引き付けて考えるより、代入文の構文の1類型として整理しておく方が良いんじゃないかと思うが。
647
(1): (ワッチョイ ab62-5zF4) 02/15(土)10:22 ID:FKA6BWJy0(1)調 AAS
>>> x = a, b = 2, 3
>>> type(x)
<class 'tuple'>
よくわからんな
648: (ワッチョイ 1e2a-pN73) 02/15(土)10:51 ID:HEvUb6VY0(1)調 AAS
>>646
タプルとおもっていたが、正確には何なの?
649: (ワッチョイ 0601-Wuzd) 02/15(土)13:22 ID:j/KKg+ui0(1)調 AAS
タプルだよ
a, b = 1, 2 は(a, b) = (1, 2)と同じ

内部的にも一旦タプルとして扱われてunpackingが行われる
[a, b] = 1, 2とかにすれば左辺はリストになるけど
括弧省略したカンマ区切りの場合はタプル
650: (ワッチョイ 6aeb-12Ab) 02/15(土)14:36 ID:0rXlrcS60(1/2)調 AAS
たとえば、タプル (3, 4) では、(要素0の)3を指すポインタと(要素1の)4 を指すポインタとはメモリ上隣接した位置に配置されるけど、
a = 1 b = 2 の後に a, b = 3, 4 と一括代入をしても、(一旦タプルが作られるのかどうかはともかく)そういうことにはならないんじゃない?

*[a, b], c = 1, 2, 3 のようないわゆるスター代入も、イテラブルのunpackではないと思うし。
651: (ワッチョイ 1379-JmS7) 02/15(土)16:45 ID:yy3Wu/gg0(1)調 AAS
return文の複数値の返却もタプルだけど、
なぜかカッコを省略することが多い
まぁ、あくまでカンマがタプルの肝だからということか
652: (ワッチョイ ef54-r5n3) 02/15(土)17:05 ID:0vZBBpUh0(1/3)調 AAS
リストの内包表記の[]を()にすると、
タプル内包表記ではなくジェネレータ内包表記になる罠
653: (ワッチョイ 1a8b-RGTj) 02/15(土)17:06 ID:8VzqP0+T0(2/2)調 AAS
カッコの用途と意味が多くて初学者にはきついと思うわ
( ) はタプルとGenerater
{ } は辞書と集合
[ ] はリストと内包表記
654: (ワッチョイ ef54-r5n3) 02/15(土)17:09 ID:0vZBBpUh0(2/3)調 AAS
空の集合で初期化しようとしてs = {} とか書いてしまう罠
(1,) とか class_ とか苦し紛れいろいろ
655: (ワッチョイ 6aeb-12Ab) 02/15(土)17:33 ID:0rXlrcS60(2/2)調 AAS
丸括弧は関数・クラス等の呼び出し、角括弧はリスト、波括弧は辞書および集合。
リストと辞書と集合には内包表記があって、generator式は内包表記の仲間。
そうやって整理する分には、(単要素タプルの書き方がちょっと不格好なところを除けば)そんなに違和感はないけどなぁ。
辞書についてリテラル表記は波括弧なのに参照は角括弧なのはちょっと引っかかりを憶えないでもないけれども、これは他の言語でもそうだし。
他の言語と比べて特に複雑ということはないと思うけど。

むしろVBAみたいに、配列の添字指定に丸括弧を使わされたりする方が嫌だわ。
656: (ワッチョイ bbe4-1V4e) 02/15(土)19:13 ID:PDHi7G9/0(2/2)調 AAS
immutableなタプルの要素にはそもそも代入ができないはずなので、それだけでも一括代入の左辺がタプルでないのは明らかなのでは。
一括代入の左辺に丸括弧や角括弧が使えるのは、入れ子構造になっているときにその構造を明確にするために過ぎず、リストやタプルとは全く関係ないって考えた方が分かりやすいように思う。
657
(1): (ワッチョイ 0601-Wuzd) 02/15(土)23:10 ID:DkQLiBFd0(1/2)調 AAS
左辺と右辺で違いがあるのは当たり前
右辺の値としてのタプルと左辺の言うなればパターンとしてのタプルが
全く同じように評価・実行されるわけがない

タプルじゃないとしたほうがわかりやすいならそうすればいいとは思うけど
言語的には左辺の(a, b)もタプルという扱い
658
(2): (ワッチョイ 0601-Wuzd) 02/15(土)23:12 ID:DkQLiBFd0(2/2)調 AAS
ASTで見るとこうなる

import ast
expr = ast.parse("a, b = 1, 2")
print(ast.dump(expr, indent=4))

Module(
 body=[
  Assign(
   targets=[
    Tuple(
     elts=[
      Name(id='a', ctx=Store()),
      Name(id='b', ctx=Store())],
     ctx=Store())],
   value=Tuple(
    elts=[
     Constant(value=1),
     Constant(value=2)],
    ctx=Load()))])
659: (ワッチョイ ef54-r5n3) 02/15(土)23:29 ID:0vZBBpUh0(3/3)調 AAS
a = 1
b = 2
t = (a, b)
print(t) # (1, 2)
a = 3
b = 4
print(t) # (1, 2)

変数でもそのオブジェクトでもなく、
中に入ってるものでタプルを作る
だから、(a, b) がタプルというのも不正確
660
(1): (ワッチョイ cb10-+v22) 02/16(日)00:53 ID:wh5aR4tC0(1)調 AAS
>>657-658
ASTでタプルとされているからタプルなのだ、それが言語上の定義なのだと言われればそうですかと言うしかないのだけれど、メモリレイアウトがどうなっているかは気になるな。a, bはメモリ上隣接した位置に配置されるのか、それとも、離れた位置に配置されるけれども代入文の左辺である限りはタプルと呼んでいいということなのか。
661: (ワッチョイ c579-o6Hv) 02/16(日)07:14 ID:ThFtPuZc0(1/2)調 AAS
メモリ上隣接はCPythonの話?
それこそはいそうですかだけど
662: (アウアウエー Sa13-9cJ9) 02/16(日)12:09 ID:rAQQ2/+ca(1/4)調 AAS
(a, b): (int, int) = (0, 0)
663: (ワッチョイ fd01-/GLU) 02/16(日)13:10 ID:24lkekzA0(1)調 AAS
>>660
a, b = 1, 2とすればaとbが個別のローカル変数としてスタックフレームに追加されるだけ
CPythonでは定義順になるから内部の配列内で隣接してる場合もあればしてない場合もある
スタック上の変数でかつそれぞれ直接アクセスしかしないんだから隣接してるかどうかは実用上はどうでもいいこと
664: (ワッチョイ e3bf-CQxi) 02/16(日)13:51 ID:dLfK62nh0(1/4)調 AAS
そうでしょ、やっぱりメモリレイアウトが全然違うよね。
一括代入の左辺の場合には、その後もタプルとして使われることは全くなく個別的にしかアクセスしないのだから、メモリ上隣接しているかどうかがどうでもいいというのはある意味当然のことで、それは、通常の意味でのタプル(固定長でimmutableなコレクション・コンテナとしてのタプル)でないことの裏返しだと思うけど。
言語仕様上はそれもまたタプルとして定義されているということであれば「タプルではない」というのは正しくないことになるしそれはそれで構わないのだけれど、重要なのは通常の意味でのタプルとは全く別物だという点であって、その点の認識はあった方が良いんじゃないかなぁ。
665: (アウアウエー Sa13-9cJ9) 02/16(日)13:58 ID:rAQQ2/+ca(2/4)調 AAS
a, b = 0, 0
構文解析上の文法は
(a, b) = (0, 0) の略
ではなく
a, b = (0, 0) の略
じゃないかな
代入前(右辺)はタプルで代入後(左辺)はタプルではなく個別
もし左辺がタプルならbindされた名前が無いので利用出来ない
666: (ワッチョイ e318-+v22) 02/16(日)14:30 ID:dLfK62nh0(2/4)調 AAS
一括代入の左辺のターゲット並びは、丸括弧や角括弧で囲うことも全く囲わないこともできる。
角括弧で囲った場合はリストになり、丸括弧で囲った場合や全く囲わない場合はタプルになるということはできるけれども、通常の意味でのリストやタプルとはまったく別物だし、その後もリストやタプルとして利用されることはないので、それがリストやタプルであるということにどれほどの意味があるのか、むしろ通常の意味でのリストやタプルと混同してしまう人が出かねない弊害の方が多いのではないかというのが個人的な感想。
むろん、言語仕様上、リストやタプルとして定義されていますということであれば、あえて逆らうつもりはないけれども、リストやタプルの概念の中に異質なものを抱え込むことになって概念内容が拡散するように思うし(e.g.要素に代入できるタプル)、概念整理としては、一括代入の左辺については、リストやタプルのリテラル構文の形式を借用した代入構文の一形式であって、それ自体としてはリストでもタプルでもないという形で整理した方が遥かに分かりやすいのではないかと思っている。
667: (アウアウエー Sa13-9cJ9) 02/16(日)15:20 ID:rAQQ2/+ca(3/4)調 AAS
>全く囲わない場合はタプルになるということはできるけれども

いや出来ないやろ
668: (ワッチョイ e318-+v22) 02/16(日)16:31 ID:dLfK62nh0(3/4)調 AAS
自分は、一括代入の左辺については(通常の意味での)リストやタプルとは区別した方がわかりやすいのではないかという立場だけど、これらもリストやタプルであると考える立場に立つ場合、その中で、丸括弧で囲むか否かによってタプルになったりならなかったりするという考え方はないんじゃない? ASTでは丸括弧がなくてもタプル扱いみたいだし(>>658
669
(1): (アウアウエー Sa13-9cJ9) 02/16(日)16:50 ID:rAQQ2/+ca(4/4)調 AAS
左辺がタプルになる代入は
c = 0, 0
とか
_ = 0, 0
の場合な訳で
(後者は暗黙で名前が付かないbindの例で敢えて描いたけど)
(a, b) = 0, 0
はタプルに代入してる訳じゃないでしょ
という立場ですね
670: (ワッチョイ c57e-o6Hv) 02/16(日)17:02 ID:ThFtPuZc0(2/2)調 AAS
>>669
>>647
タプルでもリストでもない何かとしてもいいけどね
即値だけのコードも正当なのでbinding(assignment?)の有無は根拠にならんかも
671: (ワッチョイ e39c-+v22) 02/16(日)17:36 ID:dLfK62nh0(4/4)調 AAS
c = 0, 0 と _ = 0, 0 は、代入ターゲットが1つしかない単一代入の文だから、今の話題と直接的な関係はないかと。

一括代入として、
ア  a, b = 0, 0
イ (a, b) = 0, 0
ウ [a, b] = 0, 0 の3つの文に実質的な違いは(おそらく)何もなく、あえて左辺がタプルだリストだという必要はないのではないか(少なくとも通常の意味でのタプルやリストではないので、これらがタプルやリストであると考える意味もほとんどないのではないか)、それよりも一括代入の構文として共通のものとして理解する視点の方が有用なのではないかという感覚かな。
言語仕様上、リストやタプルの概念がこれらも含むような形で定義されているかはまた別の問題として。
672: (ワッチョイ 3de8-TCCQ) 02/16(日)22:36 ID:38lJcH0O0(1/2)調 AAS
個人的には一括代入って言葉の方がよっぽど気になるけどな
673: (ワッチョイ e55b-+v22) 02/16(日)22:53 ID:6PRP0OeT0(1)調 AAS
用語法はまったく本質的な部分ではないので、意味が通じれば何でもいいと思うけど。一括代入、複数代入、多重代入、併行代入……好きなのを使えばいいんじゃない? 既に定着している用語法があるならそれに従っておく方が無難だとは思うが。
あとa = b = c みたいなのと語感上、区別しやすい用語だとなお良いね。
674: (ワッチョイ 3de8-TCCQ) 02/16(日)23:06 ID:38lJcH0O0(2/2)調 AAS
じゃ左辺のタプルも意味が通じればなんでもいいんじゃない?
675: (ワッチョイ cb10-+v22) 02/17(月)00:13 ID:S+Nz3ahz0(1)調 AAS
要素に代入できるタプルというものを観念して、いわば特殊なタプルと位置付けてタプル概念に含める方向性で考えるのか、タプルとは区別して整理する方向性を指向するのかというのは、理屈としてはタプル概念の外縁の画定に関する1つの態度決定の問題だから、重要でないとはいえないだろうし、タプルに含める立場をとる場合でも、通常の意味でのタプル(immutableな固定長コンテナとしてのタプル)とは質的に異なるということを意識しておくことは実践的にも意味がある……と自分なんかは思うけど、人の考え方はさまざまだからね。674が、用語法の違いと同程度のどうでもいい問題だと思うのなら、実際674にとってはそうなんでしょ。そのことを否定はしないよ。
676: (ワッチョイ c519-o6Hv) 02/17(月)00:31 ID:ROCyt//h0(1)調 AAS
利用者から観察できんし内部処理知ってると最適化できる類のもんでもなさそう
今の処理系でどういう扱いしてるのか知りたいならわかるけど
個人的にはどうでもいい寄りというかあえて意識したくない話かな
677: (ワッチョイ 3de8-sgke) 02/17(月)11:24 ID:5+w8yWyk0(1)調 AAS
「正確にはタプルじゃない!」とイキった手前どんなに見苦しい言い訳を繰り返してでも自己正当化したいのだろう
678: (ワッチョイ 3dfc-FYiy) 02/17(月)12:14 ID:kwgQ3IwM0(1)調 AAS
タプルオブジェクトではないとでも言っておけば不毛なレスバしなくてよかったのにね
679: (ワッチョイ e327-g3m2) 02/17(月)12:36 ID:Ta1N8VfU0(1)調 AAS
レスバしたという感覚はないし、そんなに間違ったことを書いたつもりもないんだけどな。678のいう「タプルオブジェクトではない」という表現の方が受け入れやすいということなら別にそれで構わないと思うし。
680: (ワッチョイ 438b-UMND) 02/17(月)16:30 ID:33cG7id30(1)調 AAS
5chで細かいところまで正確に伝えるのは難しいんだし
あんまり気にしなくていいんじゃね
SNSは議論に向かないしさ
681
(2): (ワッチョイ 1556-xt5A) 02/18(火)01:50 ID:kyyl/iJD0(1/3)調 AAS
辞書に追加する方法を教えてほしいです
存在しないキーを追加してその中にさらにキーを追加したいです
以下だとエラーになりました

https://pastebin.com/k1VaU5GZ
682
(1): (ワッチョイ b52a-q0RL) 02/18(火)02:55 ID:a4UZNug90(1)調 AAS
>>681
d["tomorrow"] = {"トマト": 70}
ではどうだろう。(未検証)
683: (ワッチョイ 1556-xt5A) 02/18(火)03:32 ID:kyyl/iJD0(2/3)調 AAS
>>682
うまくいきました!
どうもありがとうございます!
684
(1): (ワッチョイ 1556-xt5A) 02/18(火)03:48 ID:kyyl/iJD0(3/3)調 AAS
>>681
この関連ですけど、辞書の中の辞書の一部のキーのバリューを変更するにはどうしたらいいですか?

todayのりんごの値はそのままでみかんだけ40にしたいです
685
(1): (ワッチョイ fd2a-TPdf) 02/18(火)08:18 ID:goEKoJkr0(1)調 AAS
>>684
値の変更はこれで良いのでは。

> d["tomorrow"]["トマト"] = 70 # これだとエラーになる
686
(1): (ワッチョイ c5af-o6Hv) 02/18(火)08:51 ID:aG61gPOQ0(1)調 AAS
混乱させるかもしれんけど標準モジュールcollectionsにあるdefaultdict使えば
from collections import defaultdict
d = defaultdict(dict, {"today": {"りんご": 100, "みかん": 50}})
d["tomorrow"]["トマト"] = 70
でエラーにならない
d["tomorrow"] の時点で {} が自動生成される
687: (ワッチョイ e5b1-+v22) 02/18(火)09:17 ID:UncCeV9C0(1)調 AAS
get, setdefault, collections.defaultdict, __missing__ の違いについては、たしかEffectivePythonで2〜3項目さかれていたね。
688: (アウアウエー Sa13-9cJ9) 02/18(火)11:02 ID:HbHlBTpRa(1)調 AAS
まあうまくいくだろうし便利だろうけど
キーのスペル間違いとかがチェックされない怖さはあるな
689: (ワッチョイ 15df-xt5A) 02/19(水)07:26 ID:if5TaTL20(1)調 AAS
亀レスすみません
みなさんありがとうございます

>>685
これでうまくいきました

>>686
エラーにならず.getのように自動生成されるのはいいですね
690: (ワッチョイ cd54-3IcV) 02/19(水)07:46 ID:ouE8cAfi0(1)調 AAS
いきなり参照してエラーになるのは嫌なので、
いつもgetを使うようにしよう

というのは必ずしもいい考えじゃないんだよな
エラーにならない筈のものがエラーになるなら異常なので捕まえるべき
本気で何が入ってるか予想できないケースではgetを使うしかないけど、
そんな状況になるのも何か間違ってる
691: (ワッチョイ cb32-0vo8) 02/19(水)08:27 ID:mSxUrXXi0(1)調 AAS
noneが帰るならそれキャッチしとけば同じじゃない?
692: (ワッチョイ e57a-+v22) 02/19(水)09:44 ID:tY+HC/mE0(1)調 AAS
新しいキーが挿入されるのはsetdefaultやcollections.defaultdictであって、getは別に新しいキーは挿入されないんじゃなかったっけ?
693: (ワッチョイ c5cf-0vo8) 02/19(水)16:01 ID:7/rbEKea0(1/2)調 AAS
想定していないことは例外にする
局所的に意図してフォールバックさせたいときはget
恒常的にはdefaultってだけよ
694: (ワッチョイ cd54-3IcV) 02/19(水)20:05 ID:O180uynF0(1/2)調 AAS
継承したクラスにあった__repr__()をそのまま使って欲しいのにうまく行かない
695: (ブーイモ MM43-UMND) 02/19(水)21:58 ID:S2Edg5gIM(1)調 AAS
keyerrorとかindexerrorとか事前にかわせるやつも例外にするのどうなの?
なんかコスト高そうな印象だけど
696: (ワッチョイ c5b3-0vo8) 02/19(水)22:19 ID:7/rbEKea0(2/2)調 AAS
VMといえど高いし気になるならin (__contains__)を使えばとしか
オレはコードの意図がつかみやすいかで使い分けてる
697
(1): (ワッチョイ 3576-+v22) 02/19(水)22:48 ID:/AQQIY230(1)調 AAS
Rustとか最近の言語って例外ないらしいじゃない。そっちの方が優れているというのがコンセンサスになったらPython4とか5とかのメジャーパージョンアップのときにそちらに舵を切るということもありうるのかな? 自分は3以降でPythonを知ったので、2→3のときの大改革ってのは未経験なんだけど。
698: (ワッチョイ cd54-3IcV) 02/19(水)22:56 ID:O180uynF0(2/2)調 AAS
3での変更点って、ええー2ではまだそんなこと考えてたのという、
3が先進的というよりは2が後進的で、
pythonなら当然そうするでしょという感じなんだよな

2の頃はまだperlをメインに使ってた
699: (ワッチョイ 438b-UMND) 02/19(水)22:59 ID:aJXoRfiD0(1)調 AAS
2はprintがステートメントで
ステートメント?!と驚いた
と思ったら3でもdelがステートメントでまた驚いた
700: (ワッチョイ ab81-xt5A) 02/20(木)00:52 ID:laXgRgOS0(1)調 AAS
パイチョンはインタプリタが全然頑張らないアホの子
701: (ワッチョイ e5d7-MmBQ) 02/20(木)04:49 ID:2izZplM70(1)調 AAS
毎日が新鮮な驚きに溢れて楽しそうですね
702: (ベーイモ MM2b-gW//) 02/20(木)11:00 ID:gDWkqRFJM(1)調 AAS
>>697
Pythonは、ぼくこんぴゅーたのむずかしいことわかんないけどえーあいあぷりつくるんだもん!な子を満足させる使命があるから例外は必要
彼らが例外を放置してもアプリが止まってしまわないのはフレームワークが最終的にケツを拭いてくれているおかげ
703
(1): (JP 0Hcb-ek9F) 02/20(木)19:27 ID:qCo+divFH(1)調 AAS
例外処理って必要?
書かなくてもPython自身が例外を出して止まるよね
704: (ワッチョイ cd54-3IcV) 02/20(木)19:58 ID:YvSU5J1d0(1)調 AAS
変な値が入力されたらエラーを表示したい
でも入力部分はずっと下の階層の処理なので、
エラーの情報を上までバトンリレーしないといけない
例外なら言語がやってくれる
705
(1): (ワッチョイ 9b9a-MHHu) 02/21(金)06:33 ID:dPC4thbz0(1/3)調 AAS
ギャンブルのデータ分析?とai予想したいのですが、どういう環境がいいんでしょうか?
anacondaが定番のような気がしますが、ローカルだとマシンパワーがどうなのかなと。

unityみたいなゲームエンジン上でも出来たりしますか?
706: (ワッチョイ 9bb9-zHVl) 02/21(金)10:53 ID:ebrhUf4S0(1)調 AAS
GoogleのColabでええよ
707: (ワッチョイ fd7c-JOj3) 02/21(金)11:17 ID:0EY3V3nR0(1/2)調 AAS
>>703
例外処理っていうのは例外が発生した場合にリカバリー可能な処理を書くんだぞ
その辺わかってなくて単純に例外の時にって思ってる奴が多い

具体例で言うと通信
ゲームとかのアップデート想像してみればいい
大容量データダウンロードしてる時に通信状況が悪くなった
例外処理が無ければそのまま例外吐いて失敗となる

ここで例外処理として通信状況が良い所に移動しろ的なメッセージを出して続行ボタン押させたり、数秒から数十秒間隔で通信を再開させるようにした場合は処理がスムーズになるやろ

こういう風にリカバリー可能な処理を書くのが例外処理やで
708
(1): (アウアウウー Sa49-9cJ9) 02/21(金)11:41 ID:vI88dzmZa(1)調 AAS
>>705
もちろんUnityでも出来るよ
709
(2): (ワッチョイ 9b9a-MHHu) 02/21(金)13:53 ID:dPC4thbz0(2/3)調 AAS
>>708
一般的にデータ分析ってアナコンダとか使うんですかね?
ゲーム目的じゃないですから
710: (ワッチョイ a54a-2NqA) 02/21(金)15:26 ID:NDdeWha40(1)調 AAS
現実世界の様子やUIを理解してタスクをこなせるマルチモーダルAIエージェントの基盤モデル「Magma」をMicrosoftが発表
https://gigazine.net/news/20250221-microsoft-magma/

悪用されている
711
(2): (ワッチョイ fd7c-JOj3) 02/21(金)17:14 ID:0EY3V3nR0(2/2)調 AAS
>>709
anacondaというよりjupyterを使う
なのでgoogle colabでも良いしvscodeのプラグイン入れてでも良い
712
(1): (ワッチョイ 9b9a-MHHu) 02/21(金)18:41 ID:dPC4thbz0(3/3)調 AAS
>>711
ありがとう
jupyterlってのが必要なんすね
機械学習をunityでやろうとしてましたけど、それと別途で用意します
713: (ワッチョイ cb81-JFGK) 02/21(金)18:53 ID:YTEtnXyW0(1)調 AAS
>>712
>>711みたいな馬鹿を信じるなよ
714: (ワッチョイ 6555-2NqA) 02/21(金)19:06 ID:hCnqiwLw0(1)調 AAS
LLM の推論機能を活用する新しいバックドア攻撃「DarkMind」が提唱される
https://gigazine.net/news/20250221-darkmind-chain-of-thought/

AIはチェスで負けそうになるとチートする
https://gigazine.net/news/20250221-ai-chess-cheating/
715
(1): (ワッチョイ 15b2-xt5A) 02/21(金)23:21 ID:TllVjNz50(1)調 AAS
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'
716
(1): (ブーイモ MM43-UMND) 02/22(土)00:07 ID:Oo9CzgQsM(1)調 AAS
>>715
知らんけど時間って
00:00:00~23:59:59
ちゃうの?
717: (ワッチョイ 9b01-wm2V) 02/22(土)00:28 ID:rVspP8iQ0(1)調 AAS
不親切なエラーだよね
718: (ワッチョイ 438b-UMND) 02/22(土)00:58 ID:eBlj03Lj0(1/2)調 AAS
境界値の問題って定番じゃね
テストケースにも必ずいれるだろ
719: (ワッチョイ cd54-3IcV) 02/22(土)07:44 ID:mdQ5EfsK0(1/6)調 AAS
閏秒なんか廃止で当然だよな
720: (ワッチョイ 15b2-xt5A) 02/22(土)12:10 ID:kWiPacnr0(1/7)調 AAS
>>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)
721
(1): (ワッチョイ cd54-3IcV) 02/22(土)12:19 ID:mdQ5EfsK0(2/6)調 AAS
何がしたいのか不明だけど、時間の計算にはtimedeltaを使う
722: (ワッチョイ 15b2-xt5A) 02/22(土)12:35 ID:kWiPacnr0(2/7)調 AAS
>>721
ありがとうございます
調べてみます
723: (ワッチョイ 15b2-xt5A) 02/22(土)12:42 ID:kWiPacnr0(3/7)調 AAS
やりたいことはt_startとt_endの中に入ってる文字列の時刻の差分を求めたいです
724: (ワッチョイ cd54-3IcV) 02/22(土)12:44 ID:mdQ5EfsK0(3/6)調 AAS
といいつつ、日付ではなく時間の長さをhh:mm:ss形式で書きたい時用に、
秒単位のfloatと文字列の相互変換ライブラリを自作した
標準にはいいの無い
725
(1): (ワッチョイ cd54-3IcV) 02/22(土)12:51 ID:mdQ5EfsK0(4/6)調 AAS
うちのライブラリで書くと、
delta = str_sec(t_end)-str_sec(t_start)
print(sec_str(delta))
こんな感じになる
726: (ワッチョイ 15b2-xt5A) 02/22(土)13:11 ID:kWiPacnr0(4/7)調 AAS
途中経過ですけど今こんな状態です

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)
727: (ワッチョイ 15b2-xt5A) 02/22(土)13:58 ID:kWiPacnr0(5/7)調 AAS
何度もすみません
とりあえずこうなりました
なんだが余計に長くなった気がします

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を分形式に変換する
728
(1): (ブーイモ MM43-UMND) 02/22(土)14:01 ID:92tqsAYeM(1)調 AAS
初学者だと思うけど
end>startが保証されてるなら
>725
みたいに秒に変換して引き算が正解じゃない?
729: (ワッチョイ 15b2-xt5A) 02/22(土)14:16 ID:kWiPacnr0(6/7)調 AAS
>>728
Endが24までなのか25や26もあるのか、それとも24の次は1なのか確実じゃないのでその辺考えて修正してみます
やっぱりタイムスタンプに変換した方が短くなりますか?
あと、727のインポートでtimedeltaが抜けてました
730
(1): (ワッチョイ cd54-3IcV) 02/22(土)14:22 ID:mdQ5EfsK0(5/6)調 AAS
print(datetime.now())
これの出力が
2025-02-22 14:20:40.735896
これになるのが嫌
秒を整数にしてくれたらそのまま使えるのに
731
(1): (ワッチョイ 15b2-xt5A) 02/22(土)15:29 ID:kWiPacnr0(7/7)調 AAS
何度もすみません
こうなりました
今のところt_startよりもt_endが小さいとエラーになります

https://techiedelight.com/compiler/?119b
732: (ワッチョイ 9b01-VhW0) 02/22(土)18:46 ID:/k68f2f30(1)調 AAS
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
733: (ワッチョイ cd54-3IcV) 02/22(土)18:52 ID:mdQ5EfsK0(6/6)調 AAS
そんなのを毎回作ってられない
2回くらいは作る
3回目あたりで、本腰入れて部品化する
734: (ワッチョイ 43ce-qk/j) 02/22(土)23:02 ID:eBlj03Lj0(2/2)調 AAS
>>731
https://techiedelight.com/compiler/?96ec
これじゃ駄目なのか?
735: (ワッチョイ fd01-CYpN) 02/22(土)23:31 ID:d1IFpLYA0(1)調 AAS
劣化しとるやないかーい
736
(3): (ワッチョイ 6e9a-1YEc) 02/23(日)09:47 ID:BUMkVt7f0(1/2)調 AAS
個人レベルで機械学習学んでも意味無いですかね?
例えば競馬予想aiを作りたいとして
しかし、けっきょくのところデータがないと、学習モデルだけあっても意味ないですもんね

競馬なら馬場状態を数値化したデータというのがないと、学習させられないですよね
737: (ワッチョイ 31b8-I+dG) 02/23(日)10:33 ID:2+mAKcn80(1)調 AAS
>>730
そのくらいは標準で簡単に出来るだろ
738: (ワッチョイ 3de3-Ek8k) 02/23(日)10:36 ID:foL9AaqB0(1)調 AAS
>>736
自分で学習すりゃいいじゃん
データなんていくらでもあるんだし
1-
あと 264 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.033s