!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
探検
Pythonのお勉強 Part74
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0b4a-lz98)
2024/09/21(土) 10:14:02.15ID:ZHy4g+PL0584デフォルトの名無しさん (ワッチョイ 9a6a-cjCd)
2025/01/30(木) 17:48:17.31ID:VLQDVSyo0 光る君への公式ホームページが31日で消去されるから保存したい
シンプルだしwgetでいけるかと思ったら表示にjavascript使ってるから
それのせいで保存できなかった
調べていくうちにpythonとヘッドレスブラウザを利用する方法があると知った
しかし、プログラミングのプの字もさっぱりです。pythonも昨日インスコしたばっかり
pythonとヘッドレスブラウザを利用した方法、解説されているようなサイトやヒントご存じでしたら教えてください
シンプルだしwgetでいけるかと思ったら表示にjavascript使ってるから
それのせいで保存できなかった
調べていくうちにpythonとヘッドレスブラウザを利用する方法があると知った
しかし、プログラミングのプの字もさっぱりです。pythonも昨日インスコしたばっかり
pythonとヘッドレスブラウザを利用した方法、解説されているようなサイトやヒントご存じでしたら教えてください
585デフォルトの名無しさん (ワッチョイ de01-M74Q)
2025/01/30(木) 18:08:53.47ID:+zNA14SN0 まるっとローカルに保存してくれるツールを買え
586デフォルトの名無しさん (スップ Sd5a-ejc7)
2025/01/30(木) 18:13:37.22ID:x7iBFXJ9d587デフォルトの名無しさん (スップ Sd5a-ejc7)
2025/01/30(木) 18:14:18.23ID:x7iBFXJ9d588デフォルトの名無しさん (ワッチョイ 1a9f-M+tv)
2025/01/30(木) 18:27:40.22ID:lxoi8Hgj0 HTTrackのProxyTrackつかうのがええんでは
589デフォルトの名無しさん (ワッチョイ 8754-5CbQ)
2025/01/30(木) 19:59:08.37ID:rlxtAv1y0 画像だけ全部落としたい、みたいな時も大抵は汎用ツールは使えなくて、
サイト毎に特化したのを作るな
サイトまるごとだとさらに難易度が上がる
リンク先は含めるのかみたいな判断付かない問題が出てくる
外部サイトは含めないとしたくても、ページの内容が複数のサイトで構成されてたりする
サイト毎に特化したのを作るな
サイトまるごとだとさらに難易度が上がる
リンク先は含めるのかみたいな判断付かない問題が出てくる
外部サイトは含めないとしたくても、ページの内容が複数のサイトで構成されてたりする
590デフォルトの名無しさん (アウアウエー Sa52-FFa5)
2025/02/01(土) 12:23:22.67ID:Dm0gVBeEa imgタグもファイル名とかじゃなくてbase64で展開されてたりするよな
591デフォルトの名無しさん (ワッチョイ 3f3d-ZuVD)
2025/02/03(月) 09:45:21.23ID:gwlnb/NB0 data1からdata2に変換したい。
data1=b'Z\x00V\x00-\x00E\x001\x000\x00\x00'
data2="ZV-E10"
data1はバイナリデーターで元はtcpのパケットの一部。
(英数+x00) (英数+x00) (英数+x00) ・・・・
というふうになってる。
data1=b'Z\x00V\x00-\x00E\x001\x000\x00\x00'
data2="ZV-E10"
data1はバイナリデーターで元はtcpのパケットの一部。
(英数+x00) (英数+x00) (英数+x00) ・・・・
というふうになってる。
592デフォルトの名無しさん (ワッチョイ 7f45-+jK0)
2025/02/03(月) 10:56:25.39ID:CGp2zuw30 変換したいのならすればいいじゃない
593デフォルトの名無しさん (ワッチョイ 3f3d-ZuVD)
2025/02/03(月) 12:03:25.53ID:gwlnb/NB0 >>592
どうやって?
どうやって?
594デフォルトの名無しさん (ワッチョイ 3f9f-UQx/)
2025/02/03(月) 12:46:11.42ID:eVgE9/na0 https://docs.python.org/ja/3.13/library/stdtypes.html#bytes
bytesはバイトのシーケンスだから好きにすればいいけど
一見UTF-16LEにもみえるから
data2 = data1.decode('utf-16le', errors='ignore')
でもいけそう
bytesはバイトのシーケンスだから好きにすればいいけど
一見UTF-16LEにもみえるから
data2 = data1.decode('utf-16le', errors='ignore')
でもいけそう
595デフォルトの名無しさん (ワッチョイ 7f45-+jK0)
2025/02/03(月) 12:46:55.10ID:CGp2zuw30 えー
置換すりゃあいいじゃん
文字列短いかいならsplit/joinでもまあいい
置換すりゃあいいじゃん
文字列短いかいならsplit/joinでもまあいい
596デフォルトの名無しさん (ワッチョイ 7f45-+jK0)
2025/02/03(月) 12:48:55.52ID:CGp2zuw30 たよねー
俺もnull終端させたutf16-leだと思う
ignoreせずにstripしてからdecodeかな
俺もnull終端させたutf16-leだと思う
ignoreせずにstripしてからdecodeかな
597デフォルトの名無しさん (ワッチョイ 3f3d-ZuVD)
2025/02/03(月) 14:44:29.24ID:gwlnb/NB0598デフォルトの名無しさん (ワッチョイ 3f9f-UQx/)
2025/02/03(月) 15:00:49.10ID:eVgE9/na0 596さんが書いてるけどignoreだと不正なシーケンスに弱いから
末尾0か確認してスライス[:-1]で削るのが手堅いよ
安価なかったので心配
末尾0か確認してスライス[:-1]で削るのが手堅いよ
安価なかったので心配
599デフォルトの名無しさん (アウアウエー Sabf-J/8e)
2025/02/04(火) 12:24:19.84ID:AbihjpY6a data1=b'Z\x00V\x00-\x00E\x001\x000\x00\x00\x00'
じゃないのは何故なんだぜ
じゃないのは何故なんだぜ
600デフォルトの名無しさん (ワッチョイ 3f86-vucM)
2025/02/04(火) 19:51:38.43ID:Nh0/7bRn0 Google Colaboratoryで自動でカッコやシングルクォーテーション、ダブルクォーテーションを閉じてくれるのはいいのですが
改行するのに右小指を右矢印まで移動させるのが面倒くさいです
この機能を有効にしながらタイピングのホームポジションから極力指を動かさずにプログラムを改行する方法はどういったものがありますか
改行するのに右小指を右矢印まで移動させるのが面倒くさいです
この機能を有効にしながらタイピングのホームポジションから極力指を動かさずにプログラムを改行する方法はどういったものがありますか
601デフォルトの名無しさん (ワッチョイ 0f54-U+zU)
2025/02/04(火) 20:02:33.96ID:Q6BV74Me0 ダイヤモンドカーソル
602デフォルトの名無しさん (ブーイモ MM0f-92nP)
2025/02/04(火) 20:05:48.54ID:Yb/oB3W3M wordmasterですね?
603デフォルトの名無しさん (ワッチョイ 3f9f-UQx/)
2025/02/04(火) 20:15:46.13ID:bltbnC560 キーボードショートカット表示させたら発見多い
vimバインドがあるのにも気づける
vimバインドがあるのにも気づける
604デフォルトの名無しさん (ワッチョイ 0f54-U+zU)
2025/02/04(火) 20:16:37.26ID:Q6BV74Me0 capsキーをモディファイア化して、カーソルとpgup/dn, home, end, ctrl-home, ctrl-end
なんかをそのへんのキーにアサインすると便利
ctrlなんかにするのはもったいない
なんかをそのへんのキーにアサインすると便利
ctrlなんかにするのはもったいない
605デフォルトの名無しさん (ワッチョイ cf3e-fK0e)
2025/02/05(水) 12:03:09.56ID:0aVaPzHU0 textwrap --- テキストの折り返しと詰め込み
https://docs.python.org/ja/3.12/library/textwrap.html
標準ライブラリにこんなモジュールあったの初めてしった
https://docs.python.org/ja/3.12/library/textwrap.html
標準ライブラリにこんなモジュールあったの初めてしった
606デフォルトの名無しさん (アウアウエー Sabf-J/8e)
2025/02/05(水) 14:41:00.30ID:RWIQAOlpa ctrl+J ctrl+M
607デフォルトの名無しさん (ワッチョイ 4f01-NuNG)
2025/02/05(水) 18:14:35.27ID:d15iAK/y0 WindowsだとCtrl+EやCtrl+Aは動かないんだっけ?
608デフォルトの名無しさん (ワッチョイ 3f8b-GcXq)
2025/02/05(水) 18:53:32.47ID:dNg2S/kf0 アンダースコア2個の変数って
VSCodeのデバックでも見えなくなるんだな
そこは値みせろよ
VSCodeのデバックでも見えなくなるんだな
そこは値みせろよ
609デフォルトの名無しさん (ワッチョイ ffb9-UQx/)
2025/02/05(水) 21:07:19.31ID:4wonhmBO0610デフォルトの名無しさん (ワッチョイ 63c4-SXYI)
2025/02/09(日) 17:06:41.88ID:cm7GCNiQ0 スレッド処理できんぞこのポンコツ
611デフォルトの名無しさん (ワッチョイ 1a8b-RGTj)
2025/02/09(日) 17:14:28.12ID:tUOkxeUe0 ThreadPoolExecutor使えば簡単に実装できるだろ
GIL無効のはまだ試したことないけど
GIL無効のはまだ試したことないけど
612デフォルトの名無しさん (ワッチョイ ef54-r5n3)
2025/02/09(日) 22:07:58.46ID:DVKKH7160 enumerate()はindexが追加される、と覚えてるから、
indexを2番目にしてしまうという間違いを繰り返す
大抵は、for val in array: と書いてて、
indexが必要になって追加すると思うので、
前に挿入という変更にも抵抗がある
indexを2番目にしてしまうという間違いを繰り返す
大抵は、for val in array: と書いてて、
indexが必要になって追加すると思うので、
前に挿入という変更にも抵抗がある
613デフォルトの名無しさん (ワッチョイ abfb-5zF4)
2025/02/09(日) 22:42:27.28ID:1H3Dm2g50 使い勝手からするとindexは先頭であってんだけど
tupleやなくクラスだったらよかったかな
挿入という感覚はないな
tupleやなくクラスだったらよかったかな
挿入という感覚はないな
614デフォルトの名無しさん (ワッチョイ ef54-r5n3)
2025/02/10(月) 09:56:50.77ID:JMZMJPbu0 items() が key, valueの順で渡してくるのは納得なんだよな
enumerate() も意味的には似てるんだけど、
dictはforで読んだらkeyが返るけど、listは中身だしな
まあ、複数同時に返して順番意識しないと間違う仕様が全部悪
enumerate() も意味的には似てるんだけど、
dictはforで読んだらkeyが返るけど、listは中身だしな
まあ、複数同時に返して順番意識しないと間違う仕様が全部悪
615デフォルトの名無しさん (ワッチョイ ef54-r5n3)
2025/02/13(木) 17:02:51.99ID:uy7D7eTZ0 windowsでリアルタイムで画像を描かせるとウィンドウが反応なしになる
最初pygameで作って、Pyxelでも駄目で、matplotlibも駄目だった
どう見ても原因はwindows側なんだけど、どうやったら回避できるんだろう
最初pygameで作って、Pyxelでも駄目で、matplotlibも駄目だった
どう見ても原因はwindows側なんだけど、どうやったら回避できるんだろう
616デフォルトの名無しさん (ブーイモ MMc6-3Y69)
2025/02/13(木) 17:53:45.53ID:iuf/njBUM メッセージキューの状態は?
617デフォルトの名無しさん (ワッチョイ 232a-6f6K)
2025/02/13(木) 18:21:00.45ID:gV1L3zya0 型ヒント、どうやって書くとおK?
>>> a:int, b:int = 1, 2
File "<stdin>", line 1
a:int, b:int = 1, 2
^
SyntaxError: invalid syntax
>>> a:int, b:int = 1, 2
File "<stdin>", line 1
a:int, b:int = 1, 2
^
SyntaxError: invalid syntax
618デフォルトの名無しさん (ブーイモ MMaa-RGTj)
2025/02/13(木) 18:50:18.04ID:UcNEd134M >>617
そういう書き方しなければならない理由ある?
そういう書き方しなければならない理由ある?
619デフォルトの名無しさん (ワッチョイ 232a-6f6K)
2025/02/13(木) 20:34:08.66ID:gV1L3zya0620デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl)
2025/02/13(木) 21:07:07.34ID:1OgGkneUp 二ついっぺんに?
621デフォルトの名無しさん (ワッチョイ ef54-r5n3)
2025/02/13(木) 21:41:07.46ID:uy7D7eTZ0 def func(a:int = 0, b:int = 0): # OK
a, b = 0, 0 # OK
a:int = 0, b:int = 0 #NG
ということだな
a, b = 0, 0 # OK
a:int = 0, b:int = 0 #NG
ということだな
622デフォルトの名無しさん (ワッチョイ 1a8b-RGTj)
2025/02/13(木) 23:08:28.29ID:FScSEbGI0623デフォルトの名無しさん (ワッチョイ ef54-r5n3)
2025/02/13(木) 23:20:12.60ID:uy7D7eTZ0 a, b = 0, 0
のケースは、
(a, b) = (0, 0)
というタプルへの代入の省略形だと思うので、
関数定義の引数の列とは本質的に別物
タプルだと思って書くと、
(a:int, b:int) = (0, 0)
これが文法的に許されてるかという個別の話になって、
単純にタプルに型アノテーションは書けません
という誤りに帰着する
のケースは、
(a, b) = (0, 0)
というタプルへの代入の省略形だと思うので、
関数定義の引数の列とは本質的に別物
タプルだと思って書くと、
(a:int, b:int) = (0, 0)
これが文法的に許されてるかという個別の話になって、
単純にタプルに型アノテーションは書けません
という誤りに帰着する
624デフォルトの名無しさん (ワッチョイ 0701-k+Qr)
2025/02/13(木) 23:39:49.88ID:3i0teOTZ0 >>621
>a:int = 0, b:int = 0 #NG
a:int = 0; b:int = 0 #OK
7.2.2. Annotated assignment statements
The difference from normal Assignment statements is that only a single target is allowed.
https://docs.python.org/3/reference/simple_stmts.html#annotated-assignment-statements
>a:int = 0, b:int = 0 #NG
a:int = 0; b:int = 0 #OK
7.2.2. Annotated assignment statements
The difference from normal Assignment statements is that only a single target is allowed.
https://docs.python.org/3/reference/simple_stmts.html#annotated-assignment-statements
625デフォルトの名無しさん (ワッチョイ 0701-k+Qr)
2025/02/13(木) 23:48:39.44ID:3i0teOTZ0 変数の数が多かったりアノテーションが長かったりするのであれば
一旦1つの変数で受けといてからunpackすればいいんじゃないか思う
style guideとかでこの辺りが確立されてるやつがあるのかどうかは知らん
xs: Tuple[Optional[int]] = 1, 2, 3
x, y, z = xs
一旦1つの変数で受けといてからunpackすればいいんじゃないか思う
style guideとかでこの辺りが確立されてるやつがあるのかどうかは知らん
xs: Tuple[Optional[int]] = 1, 2, 3
x, y, z = xs
626デフォルトの名無しさん (ワッチョイ ef54-r5n3)
2025/02/13(木) 23:50:55.54ID:uy7D7eTZ0 a:int = 0, b:int = 0
だと何が不味くてエラーにしたのか、ピンとこないな
誤解の余地はどこにもないと思うけど
だと何が不味くてエラーにしたのか、ピンとこないな
誤解の余地はどこにもないと思うけど
627デフォルトの名無しさん (ワッチョイ 0701-k+Qr)
2025/02/14(金) 00:40:32.45ID:itWJ0HMk0 文法規則に沿ってないからエラーになってるだけでしょ
a:int = 0, の時点でパーサーからすると`0, `はタプルなのに
b:intのコロンようなサポートされてない表現が来てるから文法エラー
a:int = 0, の時点でパーサーからすると`0, `はタプルなのに
b:intのコロンようなサポートされてない表現が来てるから文法エラー
628デフォルトの名無しさん (ワッチョイ ef54-r5n3)
2025/02/14(金) 00:52:13.45ID:kUuP9oE90 いや、言語設計の話ね
引数の列みたいなタプル的なもので許されてるなら、
タプルでも許されるような規則になってる方がコンシスタント
それを許すと別の問題が生じるなら仕方ないけど、
特にそんなのがあるような気がしない
引数の列みたいなタプル的なもので許されてるなら、
タプルでも許されるような規則になってる方がコンシスタント
それを許すと別の問題が生じるなら仕方ないけど、
特にそんなのがあるような気がしない
629デフォルトの名無しさん (ワッチョイ 0701-k+Qr)
2025/02/14(金) 01:53:56.51ID:itWJ0HMk0 54氏に絡んだ私が馬鹿だったみたいだね
630デフォルトの名無しさん (JP 0Hc6-nRXM)
2025/02/14(金) 07:12:48.02ID:P2h4GvQIH 型アノテーションはどう考えてもコードを冗長にするだけの効果しかなかった
次期バージョンからは廃止して欲しい
アノテーションありとなしのコードが混在する世界は誰も得しない
次期バージョンからは廃止して欲しい
アノテーションありとなしのコードが混在する世界は誰も得しない
631デフォルトの名無しさん (ワッチョイ ef54-r5n3)
2025/02/14(金) 07:34:58.64ID:8QRTr0+h0 01氏は相変わらずだのう
よく知らんけど
よく知らんけど
632デフォルトの名無しさん (ワッチョイ bbb2-QNOZ)
2025/02/14(金) 12:40:51.82ID:mTgus/9Q0 型アノテーションしないとvscodeでメソッドとか補完してくれないじゃん~
633デフォルトの名無しさん (ワッチョイ 6317-3fWp)
2025/02/14(金) 12:47:27.45ID:rES5mJq/0634デフォルトの名無しさん (ワッチョイ 0601-X7Ot)
2025/02/14(金) 13:23:14.36ID:6dC8Hfpk0635デフォルトの名無しさん (ワッチョイ ef54-r5n3)
2025/02/14(金) 19:00:49.38ID:y0//4+C60 どうせdataclassで型指定が必須になる
636デフォルトの名無しさん (ワッチョイ 8edb-u07z)
2025/02/14(金) 22:20:16.99ID:zA34SgDn0 age : int = int(9)
右のint()は不要ってことだよね
今だと全部上の文にしようとしていました
右のint()は不要ってことだよね
今だと全部上の文にしようとしていました
637デフォルトの名無しさん (ワッチョイ ef54-r5n3)
2025/02/14(金) 22:27:43.41ID:y0//4+C60 型なんかコンテキストに任せるperlの時代がまた来ないかな
厳密なのはCに任せておいて、手抜き派は限界まで脱力しないと
厳密なのはCに任せておいて、手抜き派は限界まで脱力しないと
638デフォルトの名無しさん (ワッチョイ 8edb-u07z)
2025/02/14(金) 23:33:39.76ID:zA34SgDn0 perlは$@%で変数の中身と参照方法の手がかりがあるの楽すぎる
しかも記号の切り替えでアクセス方法も切り替えられる
初心者の俺だけかもしれないけど
しかも記号の切り替えでアクセス方法も切り替えられる
初心者の俺だけかもしれないけど
639デフォルトの名無しさん (ワッチョイ 7f6e-HfJw)
2025/02/15(土) 00:03:38.48ID:7QZxROg40 >>638
dollar_とかatmark_とか変数に付ければいいのでは?
dollar_とかatmark_とか変数に付ければいいのでは?
640デフォルトの名無しさん (ワッチョイ ef54-r5n3)
2025/02/15(土) 00:09:45.51ID:nmEKbiHe0 指し示す時は%varとか@varだけど、使う時は$var{}とか$var[]なのは、
普通に混乱するよな
同じ名前が使えるのはやばすぎるので、敢えて使わないようにしてた
普通に混乱するよな
同じ名前が使えるのはやばすぎるので、敢えて使わないようにしてた
641デフォルトの名無しさん (ワッチョイ 0701-Wuzd)
2025/02/15(土) 00:24:38.71ID:Ff6IMwfd0 >>636
右のint()はintにキャストしたい時に使う
左のintも大半の箇所では不要
数値リテラルで初期化する場合に明示的に型を書く必要があるケースはあまりない
上で書かれてるdataclassのfieldなんかは例外
右のint()はintにキャストしたい時に使う
左のintも大半の箇所では不要
数値リテラルで初期化する場合に明示的に型を書く必要があるケースはあまりない
上で書かれてるdataclassのfieldなんかは例外
642デフォルトの名無しさん (ワッチョイ 1a8b-RGTj)
2025/02/15(土) 01:12:51.65ID:8VzqP0+T0 type aliasでwin32 apiみたいに狂ったようなヘッダーファイルのimportとかになったら嫌だな
643デフォルトの名無しさん (ワッチョイ 7f32-pSVK)
2025/02/15(土) 02:36:03.74ID:jP/E47uy0 型ヒントないとやだやだ
644デフォルトの名無しさん (ワッチョイ 8edb-u07z)
2025/02/15(土) 03:01:40.24ID:uBYSxski0 >>641
ありがとうございます
ありがとうございます
645デフォルトの名無しさん (ワッチョイ 8edb-u07z)
2025/02/15(土) 03:03:06.76ID:uBYSxski0 >>640
なるほど
なるほど
646デフォルトの名無しさん (ワッチョイ bbe4-1V4e)
2025/02/15(土) 09:21:15.19ID:PDHi7G9/0 一括代入の左辺って、正確にはタプルではないよね。タプルに引き付けて考えるより、代入文の構文の1類型として整理しておく方が良いんじゃないかと思うが。
647デフォルトの名無しさん (ワッチョイ ab62-5zF4)
2025/02/15(土) 10:22:34.31ID:FKA6BWJy0 >>> x = a, b = 2, 3
>>> type(x)
<class 'tuple'>
よくわからんな
>>> type(x)
<class 'tuple'>
よくわからんな
648デフォルトの名無しさん (ワッチョイ 1e2a-pN73)
2025/02/15(土) 10:51:26.01ID:HEvUb6VY0 >>646
タプルとおもっていたが、正確には何なの?
タプルとおもっていたが、正確には何なの?
649デフォルトの名無しさん (ワッチョイ 0601-Wuzd)
2025/02/15(土) 13:22:10.39ID:j/KKg+ui0 タプルだよ
a, b = 1, 2 は(a, b) = (1, 2)と同じ
内部的にも一旦タプルとして扱われてunpackingが行われる
[a, b] = 1, 2とかにすれば左辺はリストになるけど
括弧省略したカンマ区切りの場合はタプル
a, b = 1, 2 は(a, b) = (1, 2)と同じ
内部的にも一旦タプルとして扱われてunpackingが行われる
[a, b] = 1, 2とかにすれば左辺はリストになるけど
括弧省略したカンマ区切りの場合はタプル
650デフォルトの名無しさん (ワッチョイ 6aeb-12Ab)
2025/02/15(土) 14:36:18.19ID:0rXlrcS60 たとえば、タプル (3, 4) では、(要素0の)3を指すポインタと(要素1の)4 を指すポインタとはメモリ上隣接した位置に配置されるけど、
a = 1 b = 2 の後に a, b = 3, 4 と一括代入をしても、(一旦タプルが作られるのかどうかはともかく)そういうことにはならないんじゃない?
*[a, b], c = 1, 2, 3 のようないわゆるスター代入も、イテラブルのunpackではないと思うし。
a = 1 b = 2 の後に a, b = 3, 4 と一括代入をしても、(一旦タプルが作られるのかどうかはともかく)そういうことにはならないんじゃない?
*[a, b], c = 1, 2, 3 のようないわゆるスター代入も、イテラブルのunpackではないと思うし。
651デフォルトの名無しさん (ワッチョイ 1379-JmS7)
2025/02/15(土) 16:45:49.40ID:yy3Wu/gg0 return文の複数値の返却もタプルだけど、
なぜかカッコを省略することが多い
まぁ、あくまでカンマがタプルの肝だからということか
なぜかカッコを省略することが多い
まぁ、あくまでカンマがタプルの肝だからということか
652デフォルトの名無しさん (ワッチョイ ef54-r5n3)
2025/02/15(土) 17:05:56.61ID:0vZBBpUh0 リストの内包表記の[]を()にすると、
タプル内包表記ではなくジェネレータ内包表記になる罠
タプル内包表記ではなくジェネレータ内包表記になる罠
653デフォルトの名無しさん (ワッチョイ 1a8b-RGTj)
2025/02/15(土) 17:06:49.88ID:8VzqP0+T0 カッコの用途と意味が多くて初学者にはきついと思うわ
( ) はタプルとGenerater
{ } は辞書と集合
[ ] はリストと内包表記
( ) はタプルとGenerater
{ } は辞書と集合
[ ] はリストと内包表記
654デフォルトの名無しさん (ワッチョイ ef54-r5n3)
2025/02/15(土) 17:09:49.95ID:0vZBBpUh0 空の集合で初期化しようとしてs = {} とか書いてしまう罠
(1,) とか class_ とか苦し紛れいろいろ
(1,) とか class_ とか苦し紛れいろいろ
655デフォルトの名無しさん (ワッチョイ 6aeb-12Ab)
2025/02/15(土) 17:33:56.56ID:0rXlrcS60 丸括弧は関数・クラス等の呼び出し、角括弧はリスト、波括弧は辞書および集合。
リストと辞書と集合には内包表記があって、generator式は内包表記の仲間。
そうやって整理する分には、(単要素タプルの書き方がちょっと不格好なところを除けば)そんなに違和感はないけどなぁ。
辞書についてリテラル表記は波括弧なのに参照は角括弧なのはちょっと引っかかりを憶えないでもないけれども、これは他の言語でもそうだし。
他の言語と比べて特に複雑ということはないと思うけど。
むしろVBAみたいに、配列の添字指定に丸括弧を使わされたりする方が嫌だわ。
リストと辞書と集合には内包表記があって、generator式は内包表記の仲間。
そうやって整理する分には、(単要素タプルの書き方がちょっと不格好なところを除けば)そんなに違和感はないけどなぁ。
辞書についてリテラル表記は波括弧なのに参照は角括弧なのはちょっと引っかかりを憶えないでもないけれども、これは他の言語でもそうだし。
他の言語と比べて特に複雑ということはないと思うけど。
むしろVBAみたいに、配列の添字指定に丸括弧を使わされたりする方が嫌だわ。
656デフォルトの名無しさん (ワッチョイ bbe4-1V4e)
2025/02/15(土) 19:13:45.78ID:PDHi7G9/0 immutableなタプルの要素にはそもそも代入ができないはずなので、それだけでも一括代入の左辺がタプルでないのは明らかなのでは。
一括代入の左辺に丸括弧や角括弧が使えるのは、入れ子構造になっているときにその構造を明確にするために過ぎず、リストやタプルとは全く関係ないって考えた方が分かりやすいように思う。
一括代入の左辺に丸括弧や角括弧が使えるのは、入れ子構造になっているときにその構造を明確にするために過ぎず、リストやタプルとは全く関係ないって考えた方が分かりやすいように思う。
657デフォルトの名無しさん (ワッチョイ 0601-Wuzd)
2025/02/15(土) 23:10:55.08ID:DkQLiBFd0 左辺と右辺で違いがあるのは当たり前
右辺の値としてのタプルと左辺の言うなればパターンとしてのタプルが
全く同じように評価・実行されるわけがない
タプルじゃないとしたほうがわかりやすいならそうすればいいとは思うけど
言語的には左辺の(a, b)もタプルという扱い
右辺の値としてのタプルと左辺の言うなればパターンとしてのタプルが
全く同じように評価・実行されるわけがない
タプルじゃないとしたほうがわかりやすいならそうすればいいとは思うけど
言語的には左辺の(a, b)もタプルという扱い
658デフォルトの名無しさん (ワッチョイ 0601-Wuzd)
2025/02/15(土) 23:12:46.33ID:DkQLiBFd0 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()))])
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)
2025/02/15(土) 23:29:56.42ID:0vZBBpUh0 a = 1
b = 2
t = (a, b)
print(t) # (1, 2)
a = 3
b = 4
print(t) # (1, 2)
変数でもそのオブジェクトでもなく、
中に入ってるものでタプルを作る
だから、(a, b) がタプルというのも不正確
b = 2
t = (a, b)
print(t) # (1, 2)
a = 3
b = 4
print(t) # (1, 2)
変数でもそのオブジェクトでもなく、
中に入ってるものでタプルを作る
だから、(a, b) がタプルというのも不正確
660デフォルトの名無しさん (ワッチョイ cb10-+v22)
2025/02/16(日) 00:53:20.10ID:wh5aR4tC0 >>657-658
ASTでタプルとされているからタプルなのだ、それが言語上の定義なのだと言われればそうですかと言うしかないのだけれど、メモリレイアウトがどうなっているかは気になるな。a, bはメモリ上隣接した位置に配置されるのか、それとも、離れた位置に配置されるけれども代入文の左辺である限りはタプルと呼んでいいということなのか。
ASTでタプルとされているからタプルなのだ、それが言語上の定義なのだと言われればそうですかと言うしかないのだけれど、メモリレイアウトがどうなっているかは気になるな。a, bはメモリ上隣接した位置に配置されるのか、それとも、離れた位置に配置されるけれども代入文の左辺である限りはタプルと呼んでいいということなのか。
661デフォルトの名無しさん (ワッチョイ c579-o6Hv)
2025/02/16(日) 07:14:20.57ID:ThFtPuZc0 メモリ上隣接はCPythonの話?
それこそはいそうですかだけど
それこそはいそうですかだけど
662デフォルトの名無しさん (アウアウエー Sa13-9cJ9)
2025/02/16(日) 12:09:07.95ID:rAQQ2/+ca (a, b): (int, int) = (0, 0)
663デフォルトの名無しさん (ワッチョイ fd01-/GLU)
2025/02/16(日) 13:10:26.00ID:24lkekzA0 >>660
a, b = 1, 2とすればaとbが個別のローカル変数としてスタックフレームに追加されるだけ
CPythonでは定義順になるから内部の配列内で隣接してる場合もあればしてない場合もある
スタック上の変数でかつそれぞれ直接アクセスしかしないんだから隣接してるかどうかは実用上はどうでもいいこと
a, b = 1, 2とすればaとbが個別のローカル変数としてスタックフレームに追加されるだけ
CPythonでは定義順になるから内部の配列内で隣接してる場合もあればしてない場合もある
スタック上の変数でかつそれぞれ直接アクセスしかしないんだから隣接してるかどうかは実用上はどうでもいいこと
664デフォルトの名無しさん (ワッチョイ e3bf-CQxi)
2025/02/16(日) 13:51:57.18ID:dLfK62nh0 そうでしょ、やっぱりメモリレイアウトが全然違うよね。
一括代入の左辺の場合には、その後もタプルとして使われることは全くなく個別的にしかアクセスしないのだから、メモリ上隣接しているかどうかがどうでもいいというのはある意味当然のことで、それは、通常の意味でのタプル(固定長でimmutableなコレクション・コンテナとしてのタプル)でないことの裏返しだと思うけど。
言語仕様上はそれもまたタプルとして定義されているということであれば「タプルではない」というのは正しくないことになるしそれはそれで構わないのだけれど、重要なのは通常の意味でのタプルとは全く別物だという点であって、その点の認識はあった方が良いんじゃないかなぁ。
一括代入の左辺の場合には、その後もタプルとして使われることは全くなく個別的にしかアクセスしないのだから、メモリ上隣接しているかどうかがどうでもいいというのはある意味当然のことで、それは、通常の意味でのタプル(固定長でimmutableなコレクション・コンテナとしてのタプル)でないことの裏返しだと思うけど。
言語仕様上はそれもまたタプルとして定義されているということであれば「タプルではない」というのは正しくないことになるしそれはそれで構わないのだけれど、重要なのは通常の意味でのタプルとは全く別物だという点であって、その点の認識はあった方が良いんじゃないかなぁ。
665デフォルトの名無しさん (アウアウエー Sa13-9cJ9)
2025/02/16(日) 13:58:47.89ID:rAQQ2/+ca a, b = 0, 0
構文解析上の文法は
(a, b) = (0, 0) の略
ではなく
a, b = (0, 0) の略
じゃないかな
代入前(右辺)はタプルで代入後(左辺)はタプルではなく個別
もし左辺がタプルならbindされた名前が無いので利用出来ない
構文解析上の文法は
(a, b) = (0, 0) の略
ではなく
a, b = (0, 0) の略
じゃないかな
代入前(右辺)はタプルで代入後(左辺)はタプルではなく個別
もし左辺がタプルならbindされた名前が無いので利用出来ない
666デフォルトの名無しさん (ワッチョイ e318-+v22)
2025/02/16(日) 14:30:13.56ID:dLfK62nh0 一括代入の左辺のターゲット並びは、丸括弧や角括弧で囲うことも全く囲わないこともできる。
角括弧で囲った場合はリストになり、丸括弧で囲った場合や全く囲わない場合はタプルになるということはできるけれども、通常の意味でのリストやタプルとはまったく別物だし、その後もリストやタプルとして利用されることはないので、それがリストやタプルであるということにどれほどの意味があるのか、むしろ通常の意味でのリストやタプルと混同してしまう人が出かねない弊害の方が多いのではないかというのが個人的な感想。
むろん、言語仕様上、リストやタプルとして定義されていますということであれば、あえて逆らうつもりはないけれども、リストやタプルの概念の中に異質なものを抱え込むことになって概念内容が拡散するように思うし(e.g.要素に代入できるタプル)、概念整理としては、一括代入の左辺については、リストやタプルのリテラル構文の形式を借用した代入構文の一形式であって、それ自体としてはリストでもタプルでもないという形で整理した方が遥かに分かりやすいのではないかと思っている。
角括弧で囲った場合はリストになり、丸括弧で囲った場合や全く囲わない場合はタプルになるということはできるけれども、通常の意味でのリストやタプルとはまったく別物だし、その後もリストやタプルとして利用されることはないので、それがリストやタプルであるということにどれほどの意味があるのか、むしろ通常の意味でのリストやタプルと混同してしまう人が出かねない弊害の方が多いのではないかというのが個人的な感想。
むろん、言語仕様上、リストやタプルとして定義されていますということであれば、あえて逆らうつもりはないけれども、リストやタプルの概念の中に異質なものを抱え込むことになって概念内容が拡散するように思うし(e.g.要素に代入できるタプル)、概念整理としては、一括代入の左辺については、リストやタプルのリテラル構文の形式を借用した代入構文の一形式であって、それ自体としてはリストでもタプルでもないという形で整理した方が遥かに分かりやすいのではないかと思っている。
667デフォルトの名無しさん (アウアウエー Sa13-9cJ9)
2025/02/16(日) 15:20:14.54ID:rAQQ2/+ca >全く囲わない場合はタプルになるということはできるけれども
いや出来ないやろ
いや出来ないやろ
668デフォルトの名無しさん (ワッチョイ e318-+v22)
2025/02/16(日) 16:31:54.22ID:dLfK62nh0 自分は、一括代入の左辺については(通常の意味での)リストやタプルとは区別した方がわかりやすいのではないかという立場だけど、これらもリストやタプルであると考える立場に立つ場合、その中で、丸括弧で囲むか否かによってタプルになったりならなかったりするという考え方はないんじゃない? ASTでは丸括弧がなくてもタプル扱いみたいだし(>>658)
669デフォルトの名無しさん (アウアウエー Sa13-9cJ9)
2025/02/16(日) 16:50:55.15ID:rAQQ2/+ca 左辺がタプルになる代入は
c = 0, 0
とか
_ = 0, 0
の場合な訳で
(後者は暗黙で名前が付かないbindの例で敢えて描いたけど)
(a, b) = 0, 0
はタプルに代入してる訳じゃないでしょ
という立場ですね
c = 0, 0
とか
_ = 0, 0
の場合な訳で
(後者は暗黙で名前が付かないbindの例で敢えて描いたけど)
(a, b) = 0, 0
はタプルに代入してる訳じゃないでしょ
という立場ですね
670デフォルトの名無しさん (ワッチョイ c57e-o6Hv)
2025/02/16(日) 17:02:45.20ID:ThFtPuZc0671デフォルトの名無しさん (ワッチョイ e39c-+v22)
2025/02/16(日) 17:36:27.88ID:dLfK62nh0 c = 0, 0 と _ = 0, 0 は、代入ターゲットが1つしかない単一代入の文だから、今の話題と直接的な関係はないかと。
一括代入として、
ア a, b = 0, 0
イ (a, b) = 0, 0
ウ [a, b] = 0, 0 の3つの文に実質的な違いは(おそらく)何もなく、あえて左辺がタプルだリストだという必要はないのではないか(少なくとも通常の意味でのタプルやリストではないので、これらがタプルやリストであると考える意味もほとんどないのではないか)、それよりも一括代入の構文として共通のものとして理解する視点の方が有用なのではないかという感覚かな。
言語仕様上、リストやタプルの概念がこれらも含むような形で定義されているかはまた別の問題として。
一括代入として、
ア a, b = 0, 0
イ (a, b) = 0, 0
ウ [a, b] = 0, 0 の3つの文に実質的な違いは(おそらく)何もなく、あえて左辺がタプルだリストだという必要はないのではないか(少なくとも通常の意味でのタプルやリストではないので、これらがタプルやリストであると考える意味もほとんどないのではないか)、それよりも一括代入の構文として共通のものとして理解する視点の方が有用なのではないかという感覚かな。
言語仕様上、リストやタプルの概念がこれらも含むような形で定義されているかはまた別の問題として。
672デフォルトの名無しさん (ワッチョイ 3de8-TCCQ)
2025/02/16(日) 22:36:18.21ID:38lJcH0O0 個人的には一括代入って言葉の方がよっぽど気になるけどな
673デフォルトの名無しさん (ワッチョイ e55b-+v22)
2025/02/16(日) 22:53:37.86ID:6PRP0OeT0 用語法はまったく本質的な部分ではないので、意味が通じれば何でもいいと思うけど。一括代入、複数代入、多重代入、併行代入……好きなのを使えばいいんじゃない? 既に定着している用語法があるならそれに従っておく方が無難だとは思うが。
あとa = b = c みたいなのと語感上、区別しやすい用語だとなお良いね。
あとa = b = c みたいなのと語感上、区別しやすい用語だとなお良いね。
674デフォルトの名無しさん (ワッチョイ 3de8-TCCQ)
2025/02/16(日) 23:06:15.10ID:38lJcH0O0 じゃ左辺のタプルも意味が通じればなんでもいいんじゃない?
675デフォルトの名無しさん (ワッチョイ cb10-+v22)
2025/02/17(月) 00:13:36.55ID:S+Nz3ahz0 要素に代入できるタプルというものを観念して、いわば特殊なタプルと位置付けてタプル概念に含める方向性で考えるのか、タプルとは区別して整理する方向性を指向するのかというのは、理屈としてはタプル概念の外縁の画定に関する1つの態度決定の問題だから、重要でないとはいえないだろうし、タプルに含める立場をとる場合でも、通常の意味でのタプル(immutableな固定長コンテナとしてのタプル)とは質的に異なるということを意識しておくことは実践的にも意味がある……と自分なんかは思うけど、人の考え方はさまざまだからね。674が、用語法の違いと同程度のどうでもいい問題だと思うのなら、実際674にとってはそうなんでしょ。そのことを否定はしないよ。
676デフォルトの名無しさん (ワッチョイ c519-o6Hv)
2025/02/17(月) 00:31:13.10ID:ROCyt//h0 利用者から観察できんし内部処理知ってると最適化できる類のもんでもなさそう
今の処理系でどういう扱いしてるのか知りたいならわかるけど
個人的にはどうでもいい寄りというかあえて意識したくない話かな
今の処理系でどういう扱いしてるのか知りたいならわかるけど
個人的にはどうでもいい寄りというかあえて意識したくない話かな
677デフォルトの名無しさん (ワッチョイ 3de8-sgke)
2025/02/17(月) 11:24:47.42ID:5+w8yWyk0 「正確にはタプルじゃない!」とイキった手前どんなに見苦しい言い訳を繰り返してでも自己正当化したいのだろう
678デフォルトの名無しさん (ワッチョイ 3dfc-FYiy)
2025/02/17(月) 12:14:13.77ID:kwgQ3IwM0 タプルオブジェクトではないとでも言っておけば不毛なレスバしなくてよかったのにね
679デフォルトの名無しさん (ワッチョイ e327-g3m2)
2025/02/17(月) 12:36:50.89ID:Ta1N8VfU0 レスバしたという感覚はないし、そんなに間違ったことを書いたつもりもないんだけどな。678のいう「タプルオブジェクトではない」という表現の方が受け入れやすいということなら別にそれで構わないと思うし。
680デフォルトの名無しさん (ワッチョイ 438b-UMND)
2025/02/17(月) 16:30:08.05ID:33cG7id30 5chで細かいところまで正確に伝えるのは難しいんだし
あんまり気にしなくていいんじゃね
SNSは議論に向かないしさ
あんまり気にしなくていいんじゃね
SNSは議論に向かないしさ
681デフォルトの名無しさん (ワッチョイ 1556-xt5A)
2025/02/18(火) 01:50:34.73ID:kyyl/iJD0682デフォルトの名無しさん (ワッチョイ b52a-q0RL)
2025/02/18(火) 02:55:12.14ID:a4UZNug90683デフォルトの名無しさん (ワッチョイ 1556-xt5A)
2025/02/18(火) 03:32:54.30ID:kyyl/iJD0684デフォルトの名無しさん (ワッチョイ 1556-xt5A)
2025/02/18(火) 03:48:38.37ID:kyyl/iJD0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「クマはなるべく山に返す努力を」「クマと戦争は間違っている」動物保護活動家の主張 棲み分けと学習放獣でクマ被害なくなるのか?★7 [ぐれ★]
- とらせん IPあり
- 【DAZN】ワールドカップ欧州予選総合 ★5
- 巨専】
- こいせん 全レス転載禁止
- 侍ジャパンシリーズ2025「日本vs韓国」その12
- 【J SPORTS】FIFA U-17ワールドカップ ★10
- 高市「次回選挙争点は台湾有事よ!!」自民立憲公明維新国民「やめろーー!!」これが現実になりそうな件 [469534301]
- 経済保安相「気に入らないことがあれば経済的威圧をする国への依存はリスク」日本さん遂にアメリカと断交へ!!! [472617201]
- 自閉症が「んなっしょい」と連呼するお🏡
- 「世の中、バカが多くて疲れません?」👉1991年日本人大発狂 [543236886]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 来年は卵が1パック400円以上になるらしい
