!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のお勉強 Part72
https://mevius.5ch.net/test/read.cgi/tech/1703659345/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
Pythonのお勉強 Part73
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ f610-G7il)
2024/06/06(木) 08:48:10.07ID:DsazphEm0477デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/11(日) 22:12:38.31ID:RDMWd10n0 未定義である、Noneというオブジェクトである
みたいなことが変数に入ってて当然になってるけど、
C言語の時代から見たらミラクルなんだよな
00-ffしか入らない筈のuint8をint16に拡張して-1が返ったらエラー
くらいの苦し紛れしかできなかった
intだろうがfloatだろうがポインタだろうが何でも扱える状態で、
それでも特別な数を扱いたかったらどうしたらいいの
それはもう、全てオブジェクトにするしかない
みたいなことが変数に入ってて当然になってるけど、
C言語の時代から見たらミラクルなんだよな
00-ffしか入らない筈のuint8をint16に拡張して-1が返ったらエラー
くらいの苦し紛れしかできなかった
intだろうがfloatだろうがポインタだろうが何でも扱える状態で、
それでも特別な数を扱いたかったらどうしたらいいの
それはもう、全てオブジェクトにするしかない
478デフォルトの名無しさん (ワッチョイ e52a-Mft2)
2024/08/11(日) 23:18:34.32ID:hIF7GGOd0479デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/11(日) 23:22:10.48ID:RDMWd10n0 それはもう472しか興味ない話
480デフォルトの名無しさん (ワッチョイ 4217-ukzR)
2024/08/11(日) 23:43:17.68ID:kFb5FPwO0 >>440に対するレスかつ、結論の疑問が>同じ関数内で
と言ってるのに、限定されないケース持ち出すバカっているんですね
と言ってるのに、限定されないケース持ち出すバカっているんですね
481デフォルトの名無しさん (ワッチョイ 6e80-ukzR)
2024/08/11(日) 23:55:15.90ID:qxvMX8m80 まぁ決定的なのは
>1つの関数内で3つの変数に明示的にNoneを代入する状況
ほほう、なんで・・?
って部分の説明が一切されることなく
「いいと思うよ」「避けたほうが良い」
と感想レスでぐだぐだ消費してるところだわな
本来1,2ターンで終わる話やろ
>1つの関数内で3つの変数に明示的にNoneを代入する状況
ほほう、なんで・・?
って部分の説明が一切されることなく
「いいと思うよ」「避けたほうが良い」
と感想レスでぐだぐだ消費してるところだわな
本来1,2ターンで終わる話やろ
482デフォルトの名無しさん (ワッチョイ 6e5e-k00U)
2024/08/12(月) 00:03:43.33ID:3e/W6rSq0 もういいよ
483デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/12(月) 00:29:47.69ID:Df7qTgwp0 発端部分はどうでもいいんだよ
ただの戯言
そこは無視して、面白い話題に展開させるのが腕の見せどころ
ただの戯言
そこは無視して、面白い話題に展開させるのが腕の見せどころ
484デフォルトの名無しさん (ワッチョイ 1e01-IiI/)
2024/08/12(月) 17:05:54.78ID:RqyD79my0 >>472
まとめ内容はだいたい合ってるよ
>ひとつは良くて、2つ、3つ、、はだめなの?
>その線引きはどこなの?みたいな
1つなら点滅黄信号
2つなら点滅赤信号
3つ以上なら赤信号
くらいの運転感覚
状態変数は増えれば増えるほど関数が複雑化するので
可読性/保守性を下げない範囲で可能な限り減らしたほうがいいというのが大前提
Optional型の変数はNoneの場合のハンドリングが必要だから余計に複雑度が増す
だからNoneで明示的に初期化が必要な関数ローカルの状態変数が3つもあるのなら
リファクタリングを検討したほうがいいと思ってる
x=y=z=0のようなのも無条件で問題なしということではなくてNoneほどは気にしないだけ
まとめ内容はだいたい合ってるよ
>ひとつは良くて、2つ、3つ、、はだめなの?
>その線引きはどこなの?みたいな
1つなら点滅黄信号
2つなら点滅赤信号
3つ以上なら赤信号
くらいの運転感覚
状態変数は増えれば増えるほど関数が複雑化するので
可読性/保守性を下げない範囲で可能な限り減らしたほうがいいというのが大前提
Optional型の変数はNoneの場合のハンドリングが必要だから余計に複雑度が増す
だからNoneで明示的に初期化が必要な関数ローカルの状態変数が3つもあるのなら
リファクタリングを検討したほうがいいと思ってる
x=y=z=0のようなのも無条件で問題なしということではなくてNoneほどは気にしないだけ
485デフォルトの名無しさん (ワッチョイ 6e5e-k00U)
2024/08/12(月) 17:20:13.21ID:3e/W6rSq0 Optionはモナドがないと単にチェックが面倒なだけなんで要りません
486デフォルトの名無しさん (ワッチョイ 65a0-ukzR)
2024/08/12(月) 17:41:21.72ID:kQJ3Ra+V0 やはり主観の感覚で言ってただけか
487デフォルトの名無しさん (ワッチョイ 06ad-ukzR)
2024/08/12(月) 17:46:09.35ID:t+JXHNsb0 数値型でも無意識にstrに変換されたりするので
むしろ気休めで宣言することでコードの可読性が上がるケースはあるな
むしろ気休めで宣言することでコードの可読性が上がるケースはあるな
488デフォルトの名無しさん (ワッチョイ 8101-mJNK)
2024/08/12(月) 22:12:29.66ID:piSTAl/Q0 >>429
簡単なものならどれも作れるだろ
簡単なものならどれも作れるだろ
489デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/12(月) 22:13:50.74ID:Df7qTgwp0 作れるもんなら作ってみれ
490デフォルトの名無しさん (ワッチョイ 8101-mJNK)
2024/08/12(月) 22:17:45.91ID:piSTAl/Q0 PyQtのデモに簡単なものがありそうなものばかりなんだが
491デフォルトの名無しさん (ワッチョイ d24a-ukzR)
2024/08/12(月) 22:21:04.23ID:/YNzioSd0 何を以て作ったと言えるか定義にもよるよな
ライブラリ使っちゃいけない縛りだったら絶対やろうと思わないわ
ライブラリ使っちゃいけない縛りだったら絶対やろうと思わないわ
492デフォルトの名無しさん (ワッチョイ 8101-mJNK)
2024/08/12(月) 22:30:00.09ID:piSTAl/Q0 Pythonはライブラリが豊富だから使われているんだから、ライブラリを使うことが前提条件だよね
493デフォルトの名無しさん (ワッチョイ 8101-mJNK)
2024/08/12(月) 22:32:25.47ID:piSTAl/Q0 ライブラリの中には、自分のプロジェクトに合わない法的縛りがある場合があるからそういうのは除外しないといけないけど
494デフォルトの名無しさん (ワッチョイ 6219-vl8G)
2024/08/13(火) 05:10:08.20ID:OFJnbVf+0 法的w
495デフォルトの名無しさん (ワッチョイ 92ee-Xdjv)
2024/08/14(水) 01:06:20.97ID:UXFppRKs0 Python初心者に「このライブラリ面白いから入れて遊んでみ」ってやつでおすすめある??
496デフォルトの名無しさん (ワッチョイ 09c8-EAYk)
2024/08/14(水) 01:17:50.66ID:Nyjt3p2D0 sleniumかのう
497デフォルトの名無しさん (ワッチョイ e24b-xVop)
2024/08/14(水) 02:23:20.75ID:W/sfDy9u0 >>495
これが便利だけど、Listboxウィジェットでないと動作しなかったよ
でもListboxで十分
https://office54.net/python/tkinter/file-drag-drop
これが便利だけど、Listboxウィジェットでないと動作しなかったよ
でもListboxで十分
https://office54.net/python/tkinter/file-drag-drop
498デフォルトの名無しさん (ワッチョイ c173-Xp5Y)
2024/08/14(水) 03:01:41.34ID:XIgNdm080 Streamlit
499デフォルトの名無しさん (ワッチョイ 069b-ukzR)
2024/08/14(水) 06:52:49.57ID:JNnpce7i0 1年前くらいにStreamlitでめっちゃ遊んでたが
あれから何か進展あったかな
当時は2段以上のページ遷移の実装がめんどくさかった記憶
あれから何か進展あったかな
当時は2段以上のページ遷移の実装がめんどくさかった記憶
500デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/14(水) 09:36:06.91ID:YQXXxccb0 a系列とb系列の同じ数のデータがあって、
a系列の値でソートしたb系列のデータが欲しい
どういうデータの持ち方をするのが一番適切だろう
a系列の値でソートしたb系列のデータが欲しい
どういうデータの持ち方をするのが一番適切だろう
501デフォルトの名無しさん (ワッチョイ e501-AQgI)
2024/08/14(水) 12:13:31.29ID:iBvZxVPY0 >>500
どういうデータの持ち方をするのが一番適切なのかは
そのデータにまつわるすべてのCRUD操作について
頻度・データ量・性能要件などの詳細を明確にしてから検討するもの
a系列の値でソートしたb系列のデータが欲しいという
一つの操作だけで判断できるものではない
どういうデータの持ち方をするのが一番適切なのかは
そのデータにまつわるすべてのCRUD操作について
頻度・データ量・性能要件などの詳細を明確にしてから検討するもの
a系列の値でソートしたb系列のデータが欲しいという
一つの操作だけで判断できるものではない
502デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/14(水) 12:49:52.86ID:YQXXxccb0 a[i]とb[i]の場合
sorted(range(len(a)), key=lambda x: a[x])
l[i]['a']とl[i]['b']の場合
sorted(l, key=lambda x: x['a'])
l[i].aとl[i].bの場合
sorted(l, key=lambda x: x.a)
もっとすっきりと、
sorted(l, key=a)
みたいに書けないものか
sorted(range(len(a)), key=lambda x: a[x])
l[i]['a']とl[i]['b']の場合
sorted(l, key=lambda x: x['a'])
l[i].aとl[i].bの場合
sorted(l, key=lambda x: x.a)
もっとすっきりと、
sorted(l, key=a)
みたいに書けないものか
503デフォルトの名無しさん (アウアウエー Sa4a-ZlnX)
2024/08/14(水) 14:51:05.74ID:92pG5tQ9a >>500
pandas
pandas
504デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/15(木) 09:30:21.30ID:7XNNm+7n0 a[i]とb[i]の場合は
sorted(zip(a, b), key=lambda x: x[0])
こんなんでもいい
sorted(zip(a, b), key=lambda x: x[0])
こんなんでもいい
505デフォルトの名無しさん (ワッチョイ 2ed6-nIDn)
2024/08/15(木) 09:31:33.49ID:IOoAsN9I0 keyいらん
506デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/15(木) 09:33:42.86ID:7XNNm+7n0 そうだった
1つ目のタプルでソートするんだった
忘れてるくらいだから、暗黙として使うと読めなくなりそう
1つ目のタプルでソートするんだった
忘れてるくらいだから、暗黙として使うと読めなくなりそう
507デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/15(木) 09:44:05.66ID:7XNNm+7n0 そうすると、key要らない個別リストで持つのが一番シンプルだな
格納方法の手間はそれぞれでかなり違ってて、
個別リストは個別にappendするだけ
辞書は準備できたらセットでappend
classは当然classが必要 タイミング等は辞書と同等
要素2個ならリストでいいけど、3個以上のものを個別に持つのは気持ち悪いので、
そんなデータ構造なら他の理由からもclassが楽だろう
でも2個のケースが圧倒的に多い
格納方法の手間はそれぞれでかなり違ってて、
個別リストは個別にappendするだけ
辞書は準備できたらセットでappend
classは当然classが必要 タイミング等は辞書と同等
要素2個ならリストでいいけど、3個以上のものを個別に持つのは気持ち悪いので、
そんなデータ構造なら他の理由からもclassが楽だろう
でも2個のケースが圧倒的に多い
508デフォルトの名無しさん (ワッチョイ c119-Xp5Y)
2024/08/15(木) 09:59:05.23ID:hgBkEHHk0 独自の振る舞い与えたりやインターフェースにしたいならクラスで書いてもいいけど
Pandasが楽でいろいろ手厚い
有名だから他人の理解も得られやすいし
Pandasが楽でいろいろ手厚い
有名だから他人の理解も得られやすいし
509デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/15(木) 10:31:29.70ID:7XNNm+7n0 要は2次元配列を扱おうとしていて、pythonにそんなデータ構造は無いから苦労してるだけなんだよな
numpyを入れれば解決するかというと、
やってやれなくはないけど、逆に複雑なことになってしまう
もう一重被せてpandas、ということなんだけど、pandasはあんまり近寄りたくないんだよな
numpyを入れれば解決するかというと、
やってやれなくはないけど、逆に複雑なことになってしまう
もう一重被せてpandas、ということなんだけど、pandasはあんまり近寄りたくないんだよな
510デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/15(木) 10:48:30.73ID:7XNNm+7n0 polarsの場合
df.select(pl.col('val', 'name').sort_by('val'))
抽象化が進む
selectが要るのは、そういうものなのだろう
df.select(pl.col('val', 'name').sort_by('val'))
抽象化が進む
selectが要るのは、そういうものなのだろう
511デフォルトの名無しさん (ワッチョイ 0925-XFPU)
2024/08/15(木) 13:32:50.80ID:l9rIXl+/0 特定のHPを開くやつ作ったんだけど
こんなエラー出る。 詳しい人意味と対策教えてください
DevTools listening on ws://127.0.0.1:54343/devtools/browser/87ef9d15-6c10-4859-ad8e-0f40190709a3
[4184:21844:0815/132851.755:ERROR:ssl_client_socket_impl.cc(883)] handshake failed; returned -1, SSL error code 1, net_error -107
[4184:21844:0815/132851.760:ERROR:ssl_client_socket_impl.cc(883)] handshake failed; returned -1, SSL error code 1, net_error -100
こんなエラー出る。 詳しい人意味と対策教えてください
DevTools listening on ws://127.0.0.1:54343/devtools/browser/87ef9d15-6c10-4859-ad8e-0f40190709a3
[4184:21844:0815/132851.755:ERROR:ssl_client_socket_impl.cc(883)] handshake failed; returned -1, SSL error code 1, net_error -107
[4184:21844:0815/132851.760:ERROR:ssl_client_socket_impl.cc(883)] handshake failed; returned -1, SSL error code 1, net_error -100
512デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/15(木) 13:42:48.29ID:7XNNm+7n0 Seleniumよりいいの?
513デフォルトの名無しさん (ワッチョイ 6219-vl8G)
2024/08/15(木) 15:02:01.87ID:wvw+pa8M0 >>495
omanko
omanko
514デフォルトの名無しさん (ワッチョイ 4601-+pRy)
2024/08/15(木) 15:10:49.80ID:WrspfLfR0 >>505>>506
sorted(zip(a, b))とsorted(zip(a, b), key=lambda x: x[0])はソート結果が違うので要件を見極めてから使い分けてね
sorted(zip(a, b))とsorted(zip(a, b), key=lambda x: x[0])はソート結果が違うので要件を見極めてから使い分けてね
515デフォルトの名無しさん (ワッチョイ 6273-k00U)
2024/08/15(木) 15:51:14.21ID:FZXdmvv90516デフォルトの名無しさん (ワッチョイ 0910-EAYk)
2024/08/16(金) 14:50:00.96ID:csQM6Qg30517デフォルトの名無しさん (ワッチョイ 92ee-Xdjv)
2024/08/16(金) 16:30:40.64ID:ghvDT0nG0 kindleのアンリミテッド対象でオススメの入門とかある??
518デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 16:52:04.12ID:Lkm5DKgc0 無いだろうな
基礎的なことはネットで足りる
進歩的な内容は金かかる
effective pythonの旧版がamazonで送料込み500円しないので、それをポチる
基礎的なことはネットで足りる
進歩的な内容は金かかる
effective pythonの旧版がamazonで送料込み500円しないので、それをポチる
519デフォルトの名無しさん (ワッチョイ 4202-mJNK)
2024/08/16(金) 18:05:55.70ID:djtLdUd20 python使い始めたが、
配列のdeepcopyじゃなく、copyって何に使うの?
コピー元の値も変わっちゃうけど
配列のdeepcopyじゃなく、copyって何に使うの?
コピー元の値も変わっちゃうけど
520デフォルトの名無しさん (ワッチョイ 6d75-5TJn)
2024/08/16(金) 18:11:44.26ID:6tCTFnFi0 別名
521デフォルトの名無しさん (ワッチョイ 1e01-OaJM)
2024/08/16(金) 18:15:45.87ID:mRy6k/zm0 >>519
shallow copyとdeep copyという一般概念を学んでくれ
ChatGPTにでも聞けば丁寧に教えてくれるはず
それ後に
なぜコピー元の値も変わっちゃうと思っちゃったかを振り返ってくれ
shallow copyとdeep copyという一般概念を学んでくれ
ChatGPTにでも聞けば丁寧に教えてくれるはず
それ後に
なぜコピー元の値も変わっちゃうと思っちゃったかを振り返ってくれ
522デフォルトの名無しさん (ワッチョイ 6219-TmDL)
2024/08/16(金) 18:16:18.01ID:GehV+MKu0 >>519
それは用語のセンスがなかっただけ
それは用語のセンスがなかっただけ
523デフォルトの名無しさん (ワッチョイ 6219-TmDL)
2024/08/16(金) 18:17:23.95ID:GehV+MKu0 >>521
そもそもちゃんとドキュメントや書籍を読めよ!
そもそもちゃんとドキュメントや書籍を読めよ!
524デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 18:38:35.65ID:Lkm5DKgc0 https://i.imgur.com/Jw8AJnB.png
主に自分の理解用教材画像
ただの代入はコピーではなく別名定義
コピー元を変えるとコピー先も当然変わる
copyは別オブジェクトを生成する
コピー元を変えても(浅いレベルなら)コピー先は変わらない
copyであっても、オブジェクトの中身はただのクローンなので変わってしまう
中身も変えたくない場合はdeeocopy
主に自分の理解用教材画像
ただの代入はコピーではなく別名定義
コピー元を変えるとコピー先も当然変わる
copyは別オブジェクトを生成する
コピー元を変えても(浅いレベルなら)コピー先は変わらない
copyであっても、オブジェクトの中身はただのクローンなので変わってしまう
中身も変えたくない場合はdeeocopy
525デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 18:43:15.00ID:Lkm5DKgc0 deepcopy使ったのは、再帰でパズル解いた時くらいだな
分岐先に渡したデータを変更しても戻った時には保存されてないといけない
分岐先に渡したデータを変更しても戻った時には保存されてないといけない
526デフォルトの名無しさん (ワッチョイ b292-6gAB)
2024/08/16(金) 19:06:56.83ID:nKGchtUv0527デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 19:20:56.16ID:Lkm5DKgc0 参照するだけならクローンもコピーも不要なんだよな
わざわざcopyするということは、その後どちらかを書き換える前提な訳で
書き換えるけどshallowしか使わない設計にしてるから大丈夫な筈
という綱渡りをしてるとしか思えない
わざわざcopyするということは、その後どちらかを書き換える前提な訳で
書き換えるけどshallowしか使わない設計にしてるから大丈夫な筈
という綱渡りをしてるとしか思えない
528デフォルトの名無しさん (ワッチョイ 6d0e-u7mq)
2024/08/16(金) 20:09:34.83ID:l1JK1BDI0 >>527
コピーは割とよく使われるぞ
以下のような関数呼び出しでも x から data へのシャローコピーが起きるし
def func(data: list[int]):
print(data)
x = [1, 2, 3]
func(x)
処理を分割することはよくあるので、そうと認識してないかもしれないけど、コピーは自然に使われてる
補足すると、これをコピーでなく参照渡しと思う人もいるかもしれないけど、それはよくある誤解
なぜなら、funcの中で data が指すリストの中身を変更することはできるけど、呼び出し元の x にstr など別の値を代入することはできないため
funcの引数dataは呼び出し元の変数xではなく、xからコピーされたものが渡されている
コピーは割とよく使われるぞ
以下のような関数呼び出しでも x から data へのシャローコピーが起きるし
def func(data: list[int]):
print(data)
x = [1, 2, 3]
func(x)
処理を分割することはよくあるので、そうと認識してないかもしれないけど、コピーは自然に使われてる
補足すると、これをコピーでなく参照渡しと思う人もいるかもしれないけど、それはよくある誤解
なぜなら、funcの中で data が指すリストの中身を変更することはできるけど、呼び出し元の x にstr など別の値を代入することはできないため
funcの引数dataは呼び出し元の変数xではなく、xからコピーされたものが渡されている
529デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 20:11:22.47ID:Lkm5DKgc0 参照しかしないなら怖くもなんともない
530デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 20:15:51.59ID:Lkm5DKgc0 https://i.imgur.com/vnmAGYS.png
こんな風に、簡単に壊れてしまう
こんな風に、簡単に壊れてしまう
531デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 20:19:07.36ID:Lkm5DKgc0532デフォルトの名無しさん (ワッチョイ 2ed6-xIub)
2024/08/16(金) 20:19:17.75ID:HvNqjSRc0 >>528はコピーではない
533デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 20:32:15.57ID:Lkm5DKgc0534デフォルトの名無しさん (ワッチョイ 2ed6-xIub)
2024/08/16(金) 20:35:35.86ID:HvNqjSRc0 参照の値渡しと参照の違いを学んで混同したんだろう
535デフォルトの名無しさん (ワッチョイ 6d0e-u7mq)
2024/08/16(金) 20:45:28.33ID:l1JK1BDI0 すまねえこれは自分の勘違いだ
x = [1, 2, 3]
y = x
z = x.copy()
のyの動作もシャローコピーと看做せると認識してて、関数の引数の挙動はこれと同じであると言いたかった
参照渡しではないというのは、C++やC#にあるような参照渡しはできない (呼び出し元の変数に別の値を代入することはできない) というのが主張
x = [1, 2, 3]
y = x
z = x.copy()
のyの動作もシャローコピーと看做せると認識してて、関数の引数の挙動はこれと同じであると言いたかった
参照渡しではないというのは、C++やC#にあるような参照渡しはできない (呼び出し元の変数に別の値を代入することはできない) というのが主張
536デフォルトの名無しさん (ワッチョイ 6d9a-Ud1O)
2024/08/16(金) 20:49:44.47ID:Z05myL510 pythonに参照渡しは存在しない
というのは暴言か
というのは暴言か
537デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 21:01:45.54ID:Lkm5DKgc0 無いでしょ
全てが、参照の値渡しの筈
全てが、参照の値渡しの筈
538デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 21:16:31.87ID:Lkm5DKgc0 pythonに参照渡しは無いので、参照渡しの挙動で中身を推測すると間違う
値渡し pass by value
参照渡し pass by reference
参照の値渡し(共有呼び, オブジェクト呼び) call by sharing, call by object
アドレスではなくオブジェクトを渡しているというのが最大のミソなんだけど、
何が違うねんという理解でもあまり困らない
値渡し pass by value
参照渡し pass by reference
参照の値渡し(共有呼び, オブジェクト呼び) call by sharing, call by object
アドレスではなくオブジェクトを渡しているというのが最大のミソなんだけど、
何が違うねんという理解でもあまり困らない
539デフォルトの名無しさん (ワッチョイ 6219-TmDL)
2024/08/16(金) 21:19:00.72ID:GehV+MKu0 Pythonの実装はポンコツだから、Pythonそのものは誰も好きじゃない。
いいところは例外が事前に定義されているところ。
いいところは例外が事前に定義されているところ。
540デフォルトの名無しさん (ワッチョイ 6219-TmDL)
2024/08/16(金) 21:21:26.06ID:GehV+MKu0541デフォルトの名無しさん (ワッチョイ c119-Xp5Y)
2024/08/16(金) 21:49:58.00ID:gx6pQUFB0 テキトー書いてるひとは自己申告してくれるとたすかる
いまのところ把握できてるけど
いまのところ把握できてるけど
542デフォルトの名無しさん (ワッチョイ 651f-gA51)
2024/08/16(金) 21:59:20.67ID:ClCJIGxl0 >>533
「基礎的なことはネットで足りるキリッ」からの参照渡しを知らんとかお前は全然足りてないやんw
「基礎的なことはネットで足りるキリッ」からの参照渡しを知らんとかお前は全然足りてないやんw
543デフォルトの名無しさん (ワッチョイ 6d64-Ud1O)
2024/08/16(金) 22:04:19.29ID:Z05myL510 ミュータブルとかイミュータブルとかは
当初は「なんでこんな仕組みなんだ」
って思うけど、値渡しの挙動とか考えると
納得がいくんだよな
当初は「なんでこんな仕組みなんだ」
って思うけど、値渡しの挙動とか考えると
納得がいくんだよな
544デフォルトの名無しさん (ワッチョイ 1984-hgB2)
2024/08/16(金) 22:15:25.83ID:N3uolhZj0 参照渡しの議論をする人は、C++での参照渡しを理解してからか、
そうでないなら独自の「参照渡し」の定義をしている可能性があるので定義を述べてからにしてほしい
def f(x):
x=2
y=1
f(y)
print(y)
で2が出るのがC++でいう参照渡し
そうでないなら独自の「参照渡し」の定義をしている可能性があるので定義を述べてからにしてほしい
def f(x):
x=2
y=1
f(y)
print(y)
で2が出るのがC++でいう参照渡し
545デフォルトの名無しさん (ワッチョイ 1922-ukzR)
2024/08/16(金) 22:28:01.36ID:xH5s9xm90 冷静に考えると、キーボードカタカタと人生の半分以上を
コーディングに費やす人間がこれから先当たり前になるのって
人類史上、初なんだろうな
まぁ近い将来カタカタする必要なくなる世界線もあるだろうけど
コーディングに費やす人間がこれから先当たり前になるのって
人類史上、初なんだろうな
まぁ近い将来カタカタする必要なくなる世界線もあるだろうけど
546デフォルトの名無しさん (ワッチョイ c29a-k00U)
2024/08/16(金) 22:38:18.96ID:sAC4Fqoe0 独自の参照渡しを参照渡しの定義として語る人は何なんだろう
CS勉強してないとこうなるのかな
CS勉強してないとこうなるのかな
547デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 22:40:29.02ID:Lkm5DKgc0 元々参照渡しという言葉があったのに、
C++が新しい参照渡しを追加したからややこしくなっている
値渡しと参照渡しの二択の世界で、別のアドレスにコピーして渡すかポインタを渡すかの違いだった
C++で同じアドレスを指す別の変数の書き方が導入された
*pVar としなくても、Var のままで取り扱えて便利
やってることはポインタ渡しと同じ
C++が新しい参照渡しを追加したからややこしくなっている
値渡しと参照渡しの二択の世界で、別のアドレスにコピーして渡すかポインタを渡すかの違いだった
C++で同じアドレスを指す別の変数の書き方が導入された
*pVar としなくても、Var のままで取り扱えて便利
やってることはポインタ渡しと同じ
548デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 22:50:59.65ID:Lkm5DKgc0 pythonの場合は、f(y)を呼ぶと、xにはyというオブジェクトが入っている
それだけの話なので、xに新しいオブジェクトを入れてもyには何の影響もない
C++だとxはyという変数の別名になる
だから、xに行った操作はyにも影響する
それだけの話なので、xに新しいオブジェクトを入れてもyには何の影響もない
C++だとxはyという変数の別名になる
だから、xに行った操作はyにも影響する
549デフォルトの名無しさん (ワッチョイ 5901-IXBT)
2024/08/16(金) 23:28:02.02ID:DX07HNt80 最近どこかで見た話だと思ったら
くだすれで2ヶ月前にあった話だった
こいつ全く学習してないな・・・
くだすれで2ヶ月前にあった話だった
こいつ全く学習してないな・・・
550デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 23:34:33.12ID:Lkm5DKgc0 「参照の値渡し」という語がうまいこと言ってるかと思えるかというと
全然そんなことはなくて、意味不明すぎる
これがしっくり来る日は永久に来ないだろう
オブジェクト渡しでええやん
全然そんなことはなくて、意味不明すぎる
これがしっくり来る日は永久に来ないだろう
オブジェクト渡しでええやん
551デフォルトの名無しさん (ワッチョイ 6d0e-u7mq)
2024/08/17(土) 00:00:36.88ID:K84lbgy40 C風に言えばポインタの値渡し
552デフォルトの名無しさん (ワッチョイ be06-hgB2)
2024/08/17(土) 02:15:20.99ID:FbxJBc5j0 perlだとリファレンス/デリファレンスとか実体参照って言うな
これはわかりやすい
これはわかりやすい
553デフォルトの名無しさん (ワッチョイ 4202-mJNK)
2024/08/17(土) 04:17:21.85ID:oNvrieZ10554デフォルトの名無しさん (ワッチョイ c29a-k00U)
2024/08/17(土) 04:58:48.74ID:jNc9Eb8A0555デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/17(土) 05:00:58.90ID:eDPa81400 https://i.imgur.com/x4pG7y4.png
intやfloatやstrのような値っぽい変数を渡すと、関数の中でそれを破壊しても呼び元では保存され、
listやdicのようなポインタっぽい変数を渡すと、副作用を持たせることができる
まるで、typeを見て値渡しと参照渡しを切り替えているような、、、
ここに、プログラムなんか全く知らない文系の名探偵を連れてくる
名探偵: 値が保存している関数の処理は全て、"x = "の形式をしている
これが正解であり本質である
intやfloatやstrのような値っぽい変数を渡すと、関数の中でそれを破壊しても呼び元では保存され、
listやdicのようなポインタっぽい変数を渡すと、副作用を持たせることができる
まるで、typeを見て値渡しと参照渡しを切り替えているような、、、
ここに、プログラムなんか全く知らない文系の名探偵を連れてくる
名探偵: 値が保存している関数の処理は全て、"x = "の形式をしている
これが正解であり本質である
556デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/17(土) 05:19:55.19ID:eDPa81400 値とリストの中間みたいなstrでは顕著で、
str.replace() で置換後を返すんじゃなくて破壊的に置換してくれよとか、
str[0] = ' ' みたいにリスト的に扱わせてくれよと思ってもそんな手段は無い
イミュータブルがイミュータブルなのは、ミュータブルな処理が言語仕様のどこにも無いという
悪魔の証明みたいな方法で実現されている
必然的に、イミュータブルなオブジェクトの入った変数の変更は、新しいオブジェクトへの変更になる
str.replace() で置換後を返すんじゃなくて破壊的に置換してくれよとか、
str[0] = ' ' みたいにリスト的に扱わせてくれよと思ってもそんな手段は無い
イミュータブルがイミュータブルなのは、ミュータブルな処理が言語仕様のどこにも無いという
悪魔の証明みたいな方法で実現されている
必然的に、イミュータブルなオブジェクトの入った変数の変更は、新しいオブジェクトへの変更になる
557デフォルトの名無しさん (ワッチョイ c195-Xp5Y)
2024/08/17(土) 06:42:25.04ID:xfy35KhQ0 組み込み関数や標準ライブラリが非破壊・破壊で統一感ないのは
互換性のためだからどうしようもないけど
変数のアサインはシンプル動作で誤解しようがない
イミュータブル・ミュータブルにちがいはなく
イミュータブルは獲得時に同じ実体(id)を返すってだけ
互換性のためだからどうしようもないけど
変数のアサインはシンプル動作で誤解しようがない
イミュータブル・ミュータブルにちがいはなく
イミュータブルは獲得時に同じ実体(id)を返すってだけ
558デフォルトの名無しさん (ワッチョイ 498e-gw8m)
2024/08/17(土) 07:30:01.44ID:S6E7v25U0 馬鹿は用語だけ覚えて理屈を理解しないからいつまで経っても馬鹿なまま
プログラミングだけではなく世の中の真実がこれ
プログラミングだけではなく世の中の真実がこれ
559デフォルトの名無しさん (ワッチョイ 7197-hgB2)
2024/08/17(土) 08:05:31.14ID:aGgOhja70 >>555
3ヶ月でいいからごたくを並べる前にCとC++でコード書きなよ。スッキリするから。
3ヶ月でいいからごたくを並べる前にCとC++でコード書きなよ。スッキリするから。
560デフォルトの名無しさん (ワッチョイ 6db8-u7mq)
2024/08/17(土) 08:08:33.52ID:K84lbgy40 >>553
この質問についていえば、個人的にはcopyを使う場面ってあまり無いと思う
この質問についていえば、個人的にはcopyを使う場面ってあまり無いと思う
561デフォルトの名無しさん (ワッチョイ 0931-EAYk)
2024/08/17(土) 08:56:53.76ID:NsTQR03i0 スマホゲームでレア鉱山というのが沸くんだが
それを内部的に沸いたら即取るみたいなプログラムを
教えてください。
お願いしますぺこり
それを内部的に沸いたら即取るみたいなプログラムを
教えてください。
お願いしますぺこり
562デフォルトの名無しさん (ワッチョイ 4202-mJNK)
2024/08/17(土) 08:58:23.47ID:oNvrieZ10563デフォルトの名無しさん (ワッチョイ 0999-gA51)
2024/08/17(土) 09:46:14.10ID:LklgFq+T0 質問者から見てバカレスに思えるレスが多数つくのは質問内容や質問の仕方がそれ以上にバカっぽいからなんだぞ
反省しろよ
反省しろよ
564デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/17(土) 11:04:30.43ID:eDPa81400 https://i.imgur.com/LR4dCLW.png
数をイミュータブルとする為に、pythonでは全ての数に対して
対応するオブジェクトのidが予め設定されている
なんとなく数学的センスで全ての数なんて相手にしたら無限にメモリが要りそうに思うけど、
何のことはない、
intオブジェクトであることを示すbit列 + intのbit列表現そのもの
で実現できる
python2は本当にそんな感じで、3になって動的にbit数が変わるようになった
数をイミュータブルとする為に、pythonでは全ての数に対して
対応するオブジェクトのidが予め設定されている
なんとなく数学的センスで全ての数なんて相手にしたら無限にメモリが要りそうに思うけど、
何のことはない、
intオブジェクトであることを示すbit列 + intのbit列表現そのもの
で実現できる
python2は本当にそんな感じで、3になって動的にbit数が変わるようになった
565デフォルトの名無しさん (ワッチョイ c29a-k00U)
2024/08/17(土) 14:09:06.79ID:jNc9Eb8A0566デフォルトの名無しさん (ワッチョイ 2ed6-xIub)
2024/08/17(土) 14:17:24.07ID:ReFbJvTn0 だいたいメソッドのほうの.copy()で十分だから
copy.copy()の使いどきはあるのかよくわからない
immutableとmutableを意識せずにコピーする用途なんてあるかな
copy.copy()の使いどきはあるのかよくわからない
immutableとmutableを意識せずにコピーする用途なんてあるかな
567デフォルトの名無しさん (ワッチョイ 6e13-9lcd)
2024/08/17(土) 14:18:31.35ID:SZXysGd00 >>564
馬鹿につける薬はなさそうだなw
馬鹿につける薬はなさそうだなw
568デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/17(土) 15:31:12.95ID:eDPa81400 https://i.imgur.com/LjROLoj.png
strの場合はそんなに厳密ではない
リテラルに書けば同じidになるけど、演算結果が同じになったとしても
わざわざ同じidに集めたりはしない
strの場合はそんなに厳密ではない
リテラルに書けば同じidになるけど、演算結果が同じになったとしても
わざわざ同じidに集めたりはしない
569デフォルトの名無しさん (ワッチョイ e501-OOAr)
2024/08/17(土) 16:21:00.49ID:dSpnymJm0 >>566
任意のオブジェクトをシャローコピーしようとするのがcopy.copy()
基本的にはmutable用
どの型かを意識せずに汎用的にコピーしたいときに使う
copy()メソッドを持つのが確実なら.copy()を呼べばいい
copy.copy()も例えばlistが渡されたら内部的にはlist.copy()を呼んでる
任意のオブジェクトをシャローコピーしようとするのがcopy.copy()
基本的にはmutable用
どの型かを意識せずに汎用的にコピーしたいときに使う
copy()メソッドを持つのが確実なら.copy()を呼べばいい
copy.copy()も例えばlistが渡されたら内部的にはlist.copy()を呼んでる
570デフォルトの名無しさん (ワッチョイ 4202-mJNK)
2024/08/17(土) 17:39:52.82ID:oNvrieZ10571デフォルトの名無しさん (ワッチョイ 7feb-/7EV)
2024/08/18(日) 00:56:03.56ID:qMq0AqVM0 >>544
Pythonの関数の実装が、ただのプログラムのジャンプのような説明になっているんだよ。
Pythonの関数の実装が、ただのプログラムのジャンプのような説明になっているんだよ。
572デフォルトの名無しさん (ワッチョイ 7feb-/7EV)
2024/08/18(日) 00:59:10.22ID:qMq0AqVM0 >>569
Pythonそのものがマシン語、アセンブラでいうところの呼び出しになっていない可能性がある。
関数が後付けだったせいで、コード上の見た目が関数という別のプログラムに見せかけているだけかもしれない。
Pythonそのものがマシン語、アセンブラでいうところの呼び出しになっていない可能性がある。
関数が後付けだったせいで、コード上の見た目が関数という別のプログラムに見せかけているだけかもしれない。
573デフォルトの名無しさん (ワッチョイ 1f54-2rwY)
2024/08/18(日) 01:01:46.95ID:z4/qydmG0 折角中身を隠してあげてるのにCPythonでの実装を知りたがる
でも結局、CPythonのソース読むのが理解の最短距離
でも結局、CPythonのソース読むのが理解の最短距離
574デフォルトの名無しさん (ワッチョイ 9f79-mGB0)
2024/08/18(日) 01:14:18.28ID:mCdxu7x30 コピーの深い浅いにかんしては、
多次元リスト(リストを要素とするリスト)でどうなるかということを考えると、
違いはそんなには混乱しないとは思うんだけどね
シャローコピーはスライス式で(意識することなく)作成されることが多いかも
多次元リスト(リストを要素とするリスト)でどうなるかということを考えると、
違いはそんなには混乱しないとは思うんだけどね
シャローコピーはスライス式で(意識することなく)作成されることが多いかも
575デフォルトの名無しさん (ワッチョイ 1f54-2rwY)
2024/08/18(日) 01:28:14.09ID:z4/qydmG0 何の為にコピーするのか、を考えると、浅いコピーで十分なケースが想像できないんだよな
リストの削除や追加をしたいだけで、要素の中身についてはノータッチな処理
何それ
リストの削除や追加をしたいだけで、要素の中身についてはノータッチな処理
何それ
576デフォルトの名無しさん (ワッチョイ 7feb-/7EV)
2024/08/18(日) 02:28:48.09ID:qMq0AqVM0 このスレは初心者だから、データの大きさを気にしてないんだろうな。
577デフォルトの名無しさん (ワッチョイ 1f56-h5o9)
2024/08/18(日) 05:45:04.91ID:ucdOco2s0 Pythonのコピーについて調べてみて俺もあまり意識せずにリストのコピーとかしてたけど、コピーしたあとにコピーもとをいじくることってないから別に気にせんでいいなって思った
まぁでも知っておくのは大事やね
まぁでも知っておくのは大事やね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★11 [蚤の市★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 【沖縄】開業4ヵ月でこれは…“国民の税金”投入の『ジャングリア沖縄』で見た衝撃的な光景と、モチベーションが低い一部スタッフの現状 [ぐれ★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- __ブルガリア、Z世代の抗議が増税予算と汚職政治への怒りへ、政権が崩壊、若者を無視する政治への警告 [827565401]
- クズ「勉強頑張らなかった奴は一生DQNと一緒に肉体労働しろ」☚勉強頑張れるのも環境と巡り合わせなんだが? [783475554]
- スピッツの4番目の曲、決まらない
- 【時事】立憲民主党、30代の支持率が「ゼロ」😨 [369521721]
- 俺の口癖が「へー」「そう」「どうも」なんだが
- キャッシュレスに対応してない店、手数料が問題ならその分値上げすればいいじゃない、現金の管理や手数料、両替もただじゃない [943688309]
