!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。
※前スレ
Pythonのお勉強 Part74
https://mevius.5ch.net/test/read.cgi/tech/1726881242/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
Pythonのお勉強 Part75
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 33d8-PysV)
2025/04/04(金) 01:47:04.18ID:UMpXJcmx0959デフォルトの名無しさん (ワッチョイ 0d54-DOAI)
2025/10/03(金) 22:38:05.98ID:1oQXd5ev0 こんな風に理解できない人がいるだろうなという懸念
960デフォルトの名無しさん (ワッチョイ 43de-MlPs)
2025/10/03(金) 23:23:20.38ID:aZVU66UK0 いやー、一応理解しているつもりでも、zipとか * はかなり頭こんがらがるけどなぁ。
zip( *array )は、arrayがiterableのiterable(たとえば、[ [1, 2, 3, 4, 5], [6, 7, 8, 6, 10 ] ])だとすると、① * によるiterable unpacking によりarrayは2つのiterable の並び([1, 2, 3, 4, 5], [6, 7, 8, 9, 10 ] )へと展開される。② 組み込み関数zip は、引数として与えられた複数のiterable から並行的に要素を取得して作ったtuple を逐次的に返すgeneratorを返す((1,6), (2, 7), (3, 8), (4, 9), (5, 10) を逐次的に返すgeneratorを返す)……ってことよね。
さらに添字参照とかsum とかと組み合わせるようなケースだともっと大変。
zip( *array )は、arrayがiterableのiterable(たとえば、[ [1, 2, 3, 4, 5], [6, 7, 8, 6, 10 ] ])だとすると、① * によるiterable unpacking によりarrayは2つのiterable の並び([1, 2, 3, 4, 5], [6, 7, 8, 9, 10 ] )へと展開される。② 組み込み関数zip は、引数として与えられた複数のiterable から並行的に要素を取得して作ったtuple を逐次的に返すgeneratorを返す((1,6), (2, 7), (3, 8), (4, 9), (5, 10) を逐次的に返すgeneratorを返す)……ってことよね。
さらに添字参照とかsum とかと組み合わせるようなケースだともっと大変。
961デフォルトの名無しさん (ワッチョイ 05f2-ebMX)
2025/10/04(土) 02:20:54.79ID:1nnmOYkp0 なんかzshみたいな漢字科
962デフォルトの名無しさん (ワッチョイ 258f-MlPs)
2025/10/04(土) 10:53:29.11ID:lfhYKLud0 printはPytnon3になるときに文から関数になったってことだけど、assert とか raise とかは文のまま。関数にすると余計なオーバーヘッドが生じてしまうとかそういう理由なのかな。
963デフォルトの名無しさん (ワッチョイ 1b03-TYAr)
2025/10/04(土) 11:13:46.38ID:Dyjoms350 assertやraiseはそもそも関数にできるんかい?
964デフォルトの名無しさん (ベーイモ MM2b-G6c+)
2025/10/04(土) 11:24:37.65ID:Lrd6UCHyM >>962
raiseはプリミティブな操作だから
raiseが関数だったとして、じゃあraise関数をどうやって実装する?
結局Pythonのインタプリタに直接組み込むしかないだろう。だから意味がない。
assertについては、assertを無効にする場合は式の評価自体を飛ばさなければならない。そんなことは普通の関数では実現できない。
raiseはプリミティブな操作だから
raiseが関数だったとして、じゃあraise関数をどうやって実装する?
結局Pythonのインタプリタに直接組み込むしかないだろう。だから意味がない。
assertについては、assertを無効にする場合は式の評価自体を飛ばさなければならない。そんなことは普通の関数では実現できない。
965デフォルトの名無しさん (ワッチョイ 258f-MlPs)
2025/10/04(土) 13:03:57.65ID:lfhYKLud0 >>964で指摘されている点は、インタプリタ上で特別扱いしないと対応できない(通常の関数の枠内では処理できない)というのは分かるんだけど、逆にいうと、インタプリタが特別扱いをするのであれば、関数呼び出しのインターフェイスをすることもできなくはないわけでしょう。
assert文の2つ目の式にAssertionErrorに渡す引数を指定するという構文は直感的に分かりにくいなと以前から思っていて、仮に関数呼び出しのインターフェースで呼べるならそんなに違和感ないなとちょっと思っただけ。積極的にそうした方がいいとかそうすべきと主張するつもりはないよ。
assert文の2つ目の式にAssertionErrorに渡す引数を指定するという構文は直感的に分かりにくいなと以前から思っていて、仮に関数呼び出しのインターフェースで呼べるならそんなに違和感ないなとちょっと思っただけ。積極的にそうした方がいいとかそうすべきと主張するつもりはないよ。
966デフォルトの名無しさん (ベーイモ MM2b-G6c+)
2025/10/04(土) 13:49:26.07ID:Lrd6UCHyM >>965
Pythonだと通常の関数呼び出しになってたら特別扱いは難しい
別のraise関数が定義されてるかもしれないからな
じゃあraiseという名前だけをキーワードとして特別扱いするか?それraise文と何が違うの?
ってこと
Pythonだと通常の関数呼び出しになってたら特別扱いは難しい
別のraise関数が定義されてるかもしれないからな
じゃあraiseという名前だけをキーワードとして特別扱いするか?それraise文と何が違うの?
ってこと
967デフォルトの名無しさん (ワッチョイ 25c4-MlPs)
2025/10/04(土) 14:08:02.28ID:lfhYKLud0 仮に特別扱いするなら、raise を一種のキーワードとすることになるんだろうね。raise文との違いは構文。もともとraise文の構文ってちょっと分かりにくくないかというのが元の発想だからね。
どちらかというと、raise文の構文は直感的にちょっと分かりにくいので関数呼び出し風の構文糖があったら良かったのに……という方が言いたいことに近いかもしれない。
どちらかというと、raise文の構文は直感的にちょっと分かりにくいので関数呼び出し風の構文糖があったら良かったのに……という方が言いたいことに近いかもしれない。
968デフォルトの名無しさん (ワッチョイ 0d54-DOAI)
2025/10/04(土) 14:18:48.32ID:ZS4Jz9di0 そんな形式上のものはシンタックスシュガーでどうにでもなる
969デフォルトの名無しさん (ワッチョイ 3d01-UAuC)
2025/10/04(土) 15:12:23.29ID:cv59dmAz0 仮にraiseを関数化するとしたらビルトイン関数になるわけでキーワードとして特別扱いするのとは違う
ビルトイン関数を別のraise関数で上書きしたならその時の動作は上書きした人が責任を持てばいい
ただraiseとassertを同じカテゴリで話すのはどうかと思う
raiseはreturn, break, continue, yieldなどと同じcontrol flow statementなので通常関数とは別のカテゴリとして扱うのが言語を使う側にとっても作る側にとっても自然かつ楽
raiseと違いassertはprintなどと同じでビルトイン関数のほうが使う側には自然
コンパイラを改良する労力をかけたくなかったからステートメントのままなんだと思う
ビルトイン関数を別のraise関数で上書きしたならその時の動作は上書きした人が責任を持てばいい
ただraiseとassertを同じカテゴリで話すのはどうかと思う
raiseはreturn, break, continue, yieldなどと同じcontrol flow statementなので通常関数とは別のカテゴリとして扱うのが言語を使う側にとっても作る側にとっても自然かつ楽
raiseと違いassertはprintなどと同じでビルトイン関数のほうが使う側には自然
コンパイラを改良する労力をかけたくなかったからステートメントのままなんだと思う
970デフォルトの名無しさん (ワッチョイ 25c4-MlPs)
2025/10/04(土) 15:56:42.08ID:lfhYKLud0 assert と raise とで区別すべきというのは同感(>>967ではボケていてraiseって書いちゃっているけど、965に書いたとおりこの話は基本的にはassertを想定している)。
ビルトイン関数にするかキーワードにするかというのは正直そんなに意識はしていなかったかな。仮にビルトイン関数にするとしても通常の関数とは異なりインタプリタによる特別扱いが必要なら、いっそキーワードにしてしまう方が簡単なような気もするけど、まぁ、どちらでも良いのかなと。
Pytnonの場合、yieldのような前例があるから同じ構文の中の一定の場合だけを特別扱いするということに比較的抵抗がない文化なのかなとも思うけど、assert に関しては文のままでいい(処理系に手を入れてまで関数っぽいインターフェイスを提供する必要はない)というのが現時点までの開発陣の判断ということよね。個人的にはちょっと残念だけど、まぁ仕方ないのかなとは思う。
ビルトイン関数にするかキーワードにするかというのは正直そんなに意識はしていなかったかな。仮にビルトイン関数にするとしても通常の関数とは異なりインタプリタによる特別扱いが必要なら、いっそキーワードにしてしまう方が簡単なような気もするけど、まぁ、どちらでも良いのかなと。
Pytnonの場合、yieldのような前例があるから同じ構文の中の一定の場合だけを特別扱いするということに比較的抵抗がない文化なのかなとも思うけど、assert に関しては文のままでいい(処理系に手を入れてまで関数っぽいインターフェイスを提供する必要はない)というのが現時点までの開発陣の判断ということよね。個人的にはちょっと残念だけど、まぁ仕方ないのかなとは思う。
971デフォルトの名無しさん (ワッチョイ 0d54-DOAI)
2025/10/04(土) 16:09:30.50ID:ZS4Jz9di0 raiseのノリでexitと書いて何故か終わらない
972デフォルトの名無しさん (ワッチョイ 3d01-UAuC)
2025/10/04(土) 17:51:28.50ID:cv59dmAz0 >>970
今後の拡張でコンパイラが利用可能なアノテーションを関数に付与できるような仕組みでもできればそれを活用してassertを関数化する可能性は個人的には十分あると思う
逆にassertだけのためにそういう仕組みを追加したり内部的にもassertという名前縛りで関数呼び出し箇所のbytecodeを出力しないようにする変更は費用対効果的にまずないと思う
今後の拡張でコンパイラが利用可能なアノテーションを関数に付与できるような仕組みでもできればそれを活用してassertを関数化する可能性は個人的には十分あると思う
逆にassertだけのためにそういう仕組みを追加したり内部的にもassertという名前縛りで関数呼び出し箇所のbytecodeを出力しないようにする変更は費用対効果的にまずないと思う
973デフォルトの名無しさん (ワッチョイ 43de-MlPs)
2025/10/04(土) 19:23:00.85ID:MKE3mvtR0 まぁ、yield と assert とでは色々違うもんね。
974デフォルトの名無しさん (ワッチョイ ae60-9taF)
2025/10/05(日) 05:42:31.29ID:Wx5pDard0 仮想環境をゴリゴリ作るという観点からanacondaは優秀だと思う。
それ以外は…
それ以外は…
975デフォルトの名無しさん (オッペケ Sr75-SPhl)
2025/10/05(日) 07:52:01.85ID:75RY5Ni2r 俺はminiconda
976デフォルトの名無しさん (ワッチョイ ae02-GsXg)
2025/10/05(日) 08:44:09.44ID:/6a5ZxIp0 時代はUV何ですよ!!(´・ω・`)
977デフォルトの名無しさん (ワッチョイ 3133-gAFJ)
2025/10/05(日) 09:26:26.39ID:DxOKijn50 >>974
もうuvがいいぞ
もうuvがいいぞ
978デフォルトの名無しさん (ワッチョイ 0154-vC9d)
2025/10/08(水) 06:55:25.58ID:lcCd82qT0 ファイル削除にimport osとかするのがなんか抵抗あったけど、
pathlib使ってるならp.unlink()で良かったんだな
pathlib使ってるならp.unlink()で良かったんだな
979デフォルトの名無しさん (ワッチョイ 05f9-lCgs)
2025/10/08(水) 13:40:49.01ID:XrXXkqZa0 unlinkって名前わかりにくい気がするけどそういうもんなんかな
980デフォルトの名無しさん (ワッチョイ 0154-vC9d)
2025/10/08(水) 13:48:26.60ID:lcCd82qT0 deleteとremoveの違い
deleteするとなくなってしまうけど、removeは消えるだけで実体はある
unlinkはもっと明示的にいつでも復活できそう
deleteするとなくなってしまうけど、removeは消えるだけで実体はある
unlinkはもっと明示的にいつでも復活できそう
981デフォルトの名無しさん (ワッチョイ 762a-8Ckq)
2025/10/08(水) 14:07:17.26ID:UyQ1K/rS0982デフォルトの名無しさん (ワッチョイ 0154-vC9d)
2025/10/08(水) 14:17:47.05ID:lcCd82qT0 pathlibは神ライブラリだから
openするだけだとしてもPathオブジェクトにしとくと後々役に立つ
openするだけだとしてもPathオブジェクトにしとくと後々役に立つ
983デフォルトの名無しさん (ワッチョイ d5b5-ri6y)
2025/10/08(水) 20:10:03.79ID:PPRPrFFf0984デフォルトの名無しさん (ワッチョイ 3115-jQt6)
2025/10/08(水) 21:22:40.69ID:a5q/Ytzw0 スラッシュで文字列とPath結合できるの好き
985デフォルトの名無しさん (ワッチョイ 0154-vC9d)
2025/10/08(水) 21:27:24.89ID:lcCd82qT0 パスを文字列で持つこと自体が恐らくアンチパターン
986デフォルトの名無しさん (ワッチョイ 0a66-qIC/)
2025/10/08(水) 23:11:40.46ID:DEFvJ9Zk0 ファイル操作が多い場合にはpathlibが便利なのかなとは思うんだけど、そもそもファイル操作自体あまりしないから、いつもpath =r'...' みたいな感じで文字列にしちゃっているわ。
987デフォルトの名無しさん (ワッチョイ 0154-vC9d)
2025/10/08(水) 23:14:49.71ID:lcCd82qT0 読み込む用のファイルがあって、拡張子だけ変えたいとか、
ファイル名の部分に-oldと付けたいとか、別のディレクトリに同じ名前でコピーしたいとか、
そういう操作を正規表現とか駆使しながら頑張って文字列操作するのは、
めんどくさいし読みにくいしバグる
人間がやるべきではない
ファイル名の部分に-oldと付けたいとか、別のディレクトリに同じ名前でコピーしたいとか、
そういう操作を正規表現とか駆使しながら頑張って文字列操作するのは、
めんどくさいし読みにくいしバグる
人間がやるべきではない
988デフォルトの名無しさん (ワッチョイ 7610-qIC/)
2025/10/09(木) 00:23:35.01ID:YJJHW0Xm0 そういう処理が必要になったら、その時点で検討するって感じかな。もちろん、パスならとりあえずPathオブジェクトにしとけっていう流儀もあると思うけどね。
989デフォルトの名無しさん (ワッチョイ ee02-hOow)
2025/10/09(木) 22:53:20.67ID:QQVMS2V+0 言ってしまえば「動けばよい」「分かればよい」だと思うが
扱おうとしているものを扱うための機能があるのなら、
それは使ってみたいじゃないの
扱おうとしているものを扱うための機能があるのなら、
それは使ってみたいじゃないの
990デフォルトの名無しさん (ワッチョイ 716e-5Sj8)
2025/10/14(火) 05:03:55.10ID:CT5W8cc20 ゲームの中でコーディング・実行するんじゃなく
VSCodeからコーディング・実行するようなのないの?
Turtle的な
Steamで20% OFF:農家は Replace() されました
https://store.steampowered.com/app/2060160/_Replace/
VSCodeからコーディング・実行するようなのないの?
Turtle的な
Steamで20% OFF:農家は Replace() されました
https://store.steampowered.com/app/2060160/_Replace/
991デフォルトの名無しさん (ラクッペペ MMeb-Na5b)
2025/10/14(火) 12:39:23.72ID:QgKXwP6qM 外部エディタで変更すると自動反映するって書いてあるぞ
992デフォルトの名無しさん (ワッチョイ 7154-qsnq)
2025/10/14(火) 22:11:58.01ID:BWpaqpg00 ライブラリ追加できない環境でpdf読みたいので、
仕方なく構造調べてるけど複雑すぎる
仕方なく構造調べてるけど複雑すぎる
993デフォルトの名無しさん (ワッチョイ c940-pEGx)
2025/10/16(木) 01:35:31.23ID:b1XJiiUu0 新たにpy installなんてコマンドができてそれで管理というが
使いやすいものかどうか
uvが流行ってるの見て乗ってきたのか
でもこれでライブラリ間のバージョンコンフリクト防げるかどうかには特にまだ情報が無かったなあ
使いやすいものかどうか
uvが流行ってるの見て乗ってきたのか
でもこれでライブラリ間のバージョンコンフリクト防げるかどうかには特にまだ情報が無かったなあ
994デフォルトの名無しさん (ワッチョイ 7ba0-BZc0)
2025/10/18(土) 22:03:59.48ID:RYa38xSb0995デフォルトの名無しさん (ワッチョイ 13ad-KFK9)
2025/10/18(土) 22:15:15.24ID:nI8EUje/0 おつpy
996デフォルトの名無しさん (ワッチョイ 8e94-teMw)
2025/10/19(日) 23:04:42.61ID:QtdWq4TO0 ちゃんと1000まで使いなさい
997デフォルトの名無しさん (ワッチョイ 992a-H8q4)
2025/10/20(月) 08:13:00.14ID:qJ5Vu7Mi0 Py千
998デフォルトの名無しさん (ワッチョイ 55d9-Ru9p)
2025/10/20(月) 10:15:14.05ID:pvJXdOVW0 injectorってinjector.bindしてから使うものなの?
@injectアノテートでproviderから自動的に登録されるものと思っていた。
C#のDependency Injectionと同じなのね。
@injectアノテートでproviderから自動的に登録されるものと思っていた。
C#のDependency Injectionと同じなのね。
999デフォルトの名無しさん (ワッチョイ d62a-H8q4)
2025/10/20(月) 18:11:33.94ID:6H6JHLyc0 C千 武田
1000デフォルトの名無しさん (ワッチョイ 5568-Komq)
2025/10/21(火) 23:31:14.13ID:z5jgx7Ie0 質問どうぞ
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 200日 21時間 44分 11秒
新しいスレッドを立ててください。
life time: 200日 21時間 44分 11秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【芸能】長嶋一茂 高層ビル住民にパラシュートのススメ 香港火災を例に「理性を最後まで失わずに対処できる…」 [冬月記者★]
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 [ぐれ★]
- 石破茂氏、「高市さんよくぞ言った」の空気に待った 存立危機事態…考えてはいても「公の場で言うことか」:東京新聞 ★2 [少考さん★]
- 25年の食品値上げ、2年ぶり2万品目超え [少考さん★]
- 【おっぱい】「女性を見つけた瞬間に揉みたいという衝動にかられ…」路上で25歳女性に不同意わいせつ行為か 21歳土木作業員の男を逮捕 [nita★]
- 【芸能】一青窈「久しぶりに間違われました」 病院での名前の“誤字”に『窃×→窈です』 [冬月記者★]
- 中国「誠意を見せる気があるなら高市早苗は辞任しろ。」キタ━(゚∀゚)━! [153490809]
- 【高市悲報】中国富裕層「売ろうかな」タワマンバブルが弾ける [709039863]
- 【悲報】橋下徹「高市氏自身は反省したが、熱烈支持者は発言を絶対正当化し続ける。その声に左右される国家運営は非常に危険 [733893279]
- ゲーミングノート買ったんだがムカついてる
- アップル、低価格ノートパソコン「MacBook Japan」を発売か、日本のギガスクールを想定か [422186189]
- 【高市悲報】中国、統一教会を邪教と位置付け、日米政界が統一教会に牛耳られているとみなしていた🏺😭 [359965264]
