Pythonのお勉強 Part71

■ このスレッドは過去ログ倉庫に格納されています
2023/09/20(水) 09:13:41.41ID:u6xixiUt0
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
 エラー文(勝手に省略orスクショうp等の横着禁止)と
 おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/
※前スレ
Pythonのお勉強 Part70
https://mevius.5ch.net/test/read.cgi/tech/1677856680/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2023/09/26(火) 00:04:04.98ID:qxNS/0+Y0
一見動いてるけど間違ってるのを認知する助けになるから型チェックは有難い
特に凡人ほど恩恵を受けやすい
2023/09/26(火) 00:46:46.76ID:cCYCck9J0
VSCodeとか開発環境使ってれば圧倒的にタイプ数が違う
2023/09/26(火) 06:46:24.36ID:fBLAaznsM
絶対に譲歩の無い議論をいつまでやるつもりなんだ
無能で暇だと言うことしか解らないぞ
168デフォルトの名無しさん (ワッチョイ a79d-iHBT)
垢版 |
2023/09/26(火) 08:36:34.19ID:m7WWnQHX0
見ればわかるコードが一番ってその通りでそれを実現するのがアノテーションなのでは?
型チェッカー入れてなくてもstrとかintとか書いてあるだけで多少便利でしょ
169デフォルトの名無しさん (ワッチョイ ffbf-4KCz)
垢版 |
2023/09/26(火) 10:30:03.44ID:FeH8Ispq0
>>165
テスト書いてないの?
170デフォルトの名無しさん (ワッチョイ a79d-iHBT)
垢版 |
2023/09/26(火) 12:24:57.32ID:m7WWnQHX0
>>169
テスト書くとしてもテスト書くときにどの関数をどの型の変数が通過して…って考える必要あんだから、書かない理由にはならないでしょ
テストきちんと書くほど細心でなんで型アノテーションしないの
171デフォルトの名無しさん (ワッチョイ a79d-iHBT)
垢版 |
2023/09/26(火) 12:28:49.95ID:m7WWnQHX0
俺はそこまでしてないけど、実行時に入った変数の型見て自動でアノテーション生成してくれるツールとかもあったはず

研究、実験とか数学に使いたい人が、思考が阻害されるからつけないっていうのはわかるよ
そうじゃないのに型アノテーションに反抗してる人は、正しい道具を使ってないから文句が出るだけだと思うわ
それか用途が限定されてる小規模コードしか書いてない
172デフォルトの名無しさん (ワッチョイ ab1b-zG+p)
垢版 |
2023/09/26(火) 16:30:57.25ID:lxwVAsqB0
そもそも型で躓く人はプログラミングに向いてないと思うんだよね
173デフォルトの名無しさん (ワッチョイ 0a7f-hriW)
垢版 |
2023/09/26(火) 20:52:38.66ID:WQhrHw+N0
Pydanticっていうライブラリがあってだなぁ
174デフォルトの名無しさん (ワッチョイ 0a7f-hriW)
垢版 |
2023/09/26(火) 20:53:40.62ID:WQhrHw+N0
>>172
まぁそれはそうだけど
JSなんかは型の曖昧さが逆に間口広くなって使う人が増えてるまであるから
2023/09/26(火) 21:32:08.30ID:t9DgueCM0
TS触ってJSなんかにもう戻りたくないと思うかどうか
176デフォルトの名無しさん (ワッチョイ 86aa-4KCz)
垢版 |
2023/09/27(水) 00:31:04.87ID:G2/rCfPl0
>>170
「テスト書かずに型ヒント書く」笑えない
2023/09/27(水) 00:55:33.55ID:tcNPn/P00
>>170のどこをどう読んだら「テスト書かずに型ヒント書く」になるのか
178デフォルトの名無しさん (ワッチョイ 0690-44ew)
垢版 |
2023/09/27(水) 06:30:10.21ID:ddIA8xfv0
修飾語(英語でいう目的語)がない文章に反応するから、こいういう事になる。
文章として不十分なレスはスルーが基本。
179デフォルトの名無しさん (アウアウウー Sacf-PB4I)
垢版 |
2023/09/27(水) 11:16:50.05ID:OOPn+kCla
>>165
WindowsのAPIはboolを還す定義されていても3値戻って来たりするからな
2023/09/30(土) 00:30:05.29ID:KBI1seNT0
tk.tk (NG用)

更に家族等などに教えて、更に¥4000×人数をGET!
https://i.imgur.com/AOHjPUT.jpg
2023/09/30(土) 00:39:07.13ID:Q20RaGpG0
>>180
金盗まれる詐欺な
2023/09/30(土) 01:56:52.88ID:xT2aB7fT0
>>180
これは知らなかった
183デフォルトの名無しさん (ワッチョイ cb46-Q3QL)
垢版 |
2023/09/30(土) 07:00:11.33ID:5PlfPHl00
>>180
グロ
2023/09/30(土) 10:20:59.78ID:1bpEmQaSM
型ヒントの導入には正直かなりショックを受けた
シンプルを旨とするPython運営がこれほどの愚行を犯すとは
コードのタイプ量は3割増しになってPythonの良さは大幅に失われるだろう
そうなる前に古いバージョンのインストールファイルをこまめに保管しておくしかない
2023/09/30(土) 10:45:18.53ID:B+iPWXEz0
使いたくなきゃ使わんでもいいってのが型ヒントのいいとこやぞ
2023/09/30(土) 11:07:31.76ID:+PzIRgSu0
働きたくない
2023/09/30(土) 11:41:27.50ID:+WV6fTrGa
働いたら負け
2023/09/30(土) 12:01:20.00ID:5U2odjyx0
使うときも全部に型ヒント付ける必要もないしな
関数の引数に付けるだけでも効果十分
2023/09/30(土) 12:36:44.89ID:+WV6fTrGa
結局チェックされないなら間違ってても通ってしまう訳で
間違ってると内容と矛盾してどっちが本当か判らなくなって
信用出来なくなって毎回内容確認するハメになって
結局効率悪くなる害悪でしかない
2023/09/30(土) 12:41:17.31ID:kPlTAx4gd
チェックされない型ヒントもどきはない方がいい
書いたならちゃんと有効活用しろ
2023/09/30(土) 13:01:40.58ID:B+iPWXEz0
>間違ってると内容と矛盾してどっちが本当か判らなくなって

どういう状況を想定してるんだろうか。
192デフォルトの名無しさん (ワッチョイ 051b-voBv)
垢版 |
2023/09/30(土) 14:46:33.30ID:1cX5xto90
Pythonの文法を頑なに守りつつオブジェクト指向プログラミングを続けようという涙ぐましい努力
2023/09/30(土) 15:22:12.31ID:yB2FVVQo0
>>180
とっくに全員やってね?
194デフォルトの名無しさん (ワッチョイ cb46-Q3QL)
垢版 |
2023/09/30(土) 15:55:47.06ID:BfD477rw0
>>189
関数入出力情報のドキュメントが信用できないってのは、適宜メンテしてね! 以外にどうしようも無いんじゃね。
195デフォルトの名無しさん (ワッチョイ 051b-voBv)
垢版 |
2023/09/30(土) 17:28:50.98ID:1cX5xto90
まあどうせ観念していずれ型宣言も文法に組み込むんだろうけどさ
2023/09/30(土) 19:14:27.46ID:hQVVFgf/0
>>189
具体的なサンプルコードで状況説明してくれる?
197デフォルトの名無しさん (ワッチョイ 2585-2pcI)
垢版 |
2023/09/30(土) 22:47:55.23ID:JXMtOmCl0
仕事でExcelファイルを処理することになった
Pythonだけでどうにしようとしたけど、限界がきてVBA触ってる
色々つらいけど、特に開発環境がつらい
2023/09/30(土) 23:01:40.77ID:XalifVE+0
図形とかグラフとかは辛いな
excelがメインの処理の場所ならpythonでやれることは限界がある

入力データを用意するとか、設定を書いて実行ボタン押すとか、
最終結果を出力するとか、UI部分だけ使うには向いてる
2023/09/30(土) 23:05:22.23ID:bqOz9PdWM
またこの手の泣き言野郎か
今の開発者ってのは環境をお膳立てしてもらわないと何もできんのか?
設計さえちゃんとできていればテキストエディタとコマンドプロンプトで十分
2023/09/30(土) 23:09:50.32ID:XalifVE+0
C言語の頃は全てを記憶で書いただろうけど、
どうせ覚えられないしエディタがヒント出せばええやん、という方針で言語がデザインされるので、
装備ゼロで戦うのは大変よ
201デフォルトの名無しさん (ワッチョイ 2585-2pcI)
垢版 |
2023/09/30(土) 23:11:24.29ID:JXMtOmCl0
入力データがexcelファイルなんよな
2023/09/30(土) 23:27:08.82ID:bqOz9PdWM
>>201
Excel案件は最初からVBA一択
つらいのは適していない用途に使われて泣き言言われてるPythonだわ
203デフォルトの名無しさん (ワッチョイ 2585-2pcI)
垢版 |
2023/09/30(土) 23:39:17.77ID:JXMtOmCl0
>>202
VBAで書き始めてからそれは思いました
2023/09/30(土) 23:42:41.06ID:XalifVE+0
何をしてるのかは知らんけど
入力データだけ吸い取ったらもうexcelは閉じて、pythonで処理して、
結果だけexcelファイルに書き出すのが楽
2023/09/30(土) 23:42:39.73ID:yu70ioeQ0
CSVから読み込んで計算して上書きしてるよ
206デフォルトの名無しさん (ワッチョイ 2585-2pcI)
垢版 |
2023/09/30(土) 23:55:19.79ID:JXMtOmCl0
そういう事もしたりしてたけど、インプットがexcelファイルのみでファイルによってはデータにプロテクトかかってたりしてたから
結局VBAで処理するのが楽なんだろうなって感じでした
2023/10/01(日) 00:53:30.98ID:P28FwVlb0
マクロもパスワードロックして自分以外編集できないようにするのって大切よな
Pythonだと丸見えで編集されて動かなくなる件
2023/10/01(日) 02:02:26.24ID:+M66ZcTD0
半年もすればPython in Excelで書くのが当たり前になってそう
209デフォルトの名無しさん (ワッチョイ 2546-Q3QL)
垢版 |
2023/10/01(日) 09:45:50.70ID:sO86DvxC0
>>208
VBAは出来ないことが大杉だからね、クラス継承とか。
2023/10/01(日) 12:17:25.51ID:bcUAnMXT0
Python in Excelあっても全部任せられるわけじゃないんしょ
2023/10/01(日) 12:23:49.16ID:vEz6IuND0
あんま組み込んでもファイルをヒトにわたせんからな
2023/10/01(日) 12:24:20.33ID:n0Tp64cO0
セルに関数書く代わりにpythonで書くみたいな感じでしょ
マクロを置き換えるものではなかったような
213デフォルトの名無しさん (ワッチョイ 051b-voBv)
垢版 |
2023/10/01(日) 12:58:36.47ID:SOIhx71S0
いつの間にかVisual Pythonになって更にVisual Python.NETになる
2023/10/01(日) 13:33:03.77ID:o43+uB+s0
VBAは有償の開発ツールでも使わないとテストランナーもなければバージョンコントロールもめちゃくちゃやりにくい
Visual Studio使ってるならExcel-DNAやVSTO使ってなるべくVBAの量を減らしたほうが開発効率的に保守性的にも断然いいよ

ExcelをGUIをインタラクティブに使う必要がなくて入力データとして使うだけならPythonでも充分
2023/10/01(日) 14:01:56.09ID:72iWkL15a
パネルビューの信頼性と選択問題についてちょっと考えてみた

多分おおよそこんな感じだとおもう
若いほうがいいか、BBAがいいかはプロパティで編集する必要がある

https://i.imgur.com/lmD54ET.png
2023/10/01(日) 14:02:04.25ID:72iWkL15a
パネルビューの信頼性と選択問題についてちょっと考えてみた

多分おおよそこんな感じだとおもう
若いほうがいいか、BBAがいいかはプロパティで編集する必要がある

https://i.imgur.com/lmD54ET.png
2023/10/01(日) 14:02:28.46ID:72iWkL15a
パネルビューの信頼性と選択問題についてちょっと考えてみた

多分おおよそこんな感じだとおもう
若いほうがいいか、BBAがいいかはプロパティで編集する必要がある

https://i.imgur.com/lmD54ET.png
218デフォルトの名無しさん (ワッチョイ 4b9e-AYcZ)
垢版 |
2023/10/01(日) 14:50:51.48ID:SyN7rZqG0
>>213
IronPythonはどうなる?
2023/10/01(日) 18:59:05.62ID:PNwI3bEh0
IronPythonといえばJythonどうなったんだっけ?
2023/10/02(月) 16:48:55.66ID:YC0PCAgZ0
「UTF-8でエンコードされたバイト列」の文字列を、バイト列として扱い、
そのバイト列をデコードした結果を得たい、と思ってます

たとえば「鈴木」という文字列をUTF-8にエンコードすると
print("鈴木".encode("utf-8"))
b'\xe9\x88\xb4\xe6\x9c\xa8'
こんな風になるかと思います

ここで、文字列として"\xe9\x88\xb4\xe6\x9c\xa8"を用意し、
それをバイト列として扱ってデコードした結果である「鈴木」を、
変数resultに格納するための方法を教えてください

print(b"\xe9\x88\xb4\xe6\x9c\xa8".decode("utf-8"))
と、頭に「b」を置いて文字列を直接続ければ表示はできることは分かったのですが、
こうではなく、文字列は変数strとして与えたいです

str = "\xe9\x88\xb4\xe6\x9c\xa8"
result = bytes(str).decode("utf-8")
等とやってみましたが、うまくいきませんでした
2023/10/02(月) 17:15:45.40ID:KwMtPnpga
>>220
https://i.imgur.com/0kO0BFQ.jpg
2023/10/02(月) 17:32:06.38ID:YC0PCAgZ0
>>221
回答ありがとうございます

この場合、変数bは「b"\xe9\x88\xb4\xe6\x9c\xa8"」と表現される
バイト列になっているので、そのままデコードできるのだと認識してます

説明が難しくて申し訳ないのですが、
変数bが「"\xe9\x88\xb4\xe6\x9c\xa8"」という、頭にbのつかないテキストの
文字列となっており、その文字列を、バイト列に変換するか何かして、
UTF-8としてデコードした結果を得たいと思ってます
2023/10/02(月) 17:55:59.56ID:1Dl/aSKe0
print(str.encode('latin-1').decode("utf-8"))
224デフォルトの名無しさん (ワッチョイ 25a6-wXmr)
垢版 |
2023/10/02(月) 18:29:10.08ID:h+g/GQYs0
>>220
バイト列リテラル(b"...")を表した文字列を作って ast.literal_eval()
https://ideone.com/qgK6Nb
2023/10/02(月) 18:43:27.99ID:YC0PCAgZ0
>>223
情報ありがとうございました
動作しました
動作する詳細の原理はもう少し調べてみますが、
latin-1にエンコードしたうえで、utf-8にデコードする、という処理が
たしかに動作しそうですが、後にソースを見る人に伝わりづらいかもですね…

>>224
情報ありがとうございました
こちらでも動作しそうですね
活用させていただきます
このideone.comというサイトは面白そうですね
こちらも活用していこうと思います
226デフォルトの名無しさん (ワッチョイ 9b90-AvD6)
垢版 |
2023/10/02(月) 18:44:51.23ID:FS0/fzQ10
>>220
こんな感じ?

import binascii
name = '鈴木'
bin = name.encode('utf-8') # utf-8のエンコード
binstr = bin.hex() # binの文字列化
bin2 = binascii.unhexlify(binstr) # bytesに
name2 = bin2.decode('utf-8')
print(name2)
2023/10/02(月) 18:54:23.88ID:k2BlTluO0
自分のコード内でencode(‘utf8’)してるのなら
byteオブジェクトを持ち回るか最初からfromhex()で読める形のstrにしておく
string = “鈴木”.encode(‘utf8’).hex()
bytes.fromhex(string).decode(‘utf8’)でok

外部のファイルとかに\xで記載されてるものなら
読み込んだ時に\\xになるのでreplaceしてやればok
228デフォルトの名無しさん (アウアウウー Sa89-5C2y)
垢版 |
2023/10/03(火) 11:47:59.45ID:QaeBAOHSa
>>220
>>222
223 で FA だけど(pythonに慣れた人なら 223 一瞬観ただけで何やってるか判るから)
敢えて 220 222 が理解出来る描き方にするなら
>>> str = "\xe9\x88\xb4\xe6\x9c\xa8"
>>> bytes(ord(c) for c in str).decode('utf-8')
'鈴木'
2023/10/03(火) 12:18:33.94ID:XmURfba80
input.txt
\xe9\x88\xb4\xe6\x9c\xa8

f = open('input.txt')
str = f.read()

こういう話だと思って見てたけど
230デフォルトの名無しさん (アウアウウー Sa89-5C2y)
垢版 |
2023/10/03(火) 13:19:39.91ID:QaeBAOHSa
>>229
>>> str = r'\xe9\x88\xb4\xe6\x9c\xa8'
>>> bytes(ord(c) for c in bytes(ord(c) for c in str).decode('unicode-escape')).decode('utf-8')
'鈴木'
231デフォルトの名無しさん (アウアウウー Sa89-5C2y)
垢版 |
2023/10/03(火) 13:25:10.14ID:QaeBAOHSa
>>223 使うならこれでもok
>>> str = r'\xe9\x88\xb4\xe6\x9c\xa8'
>>> str.encode('latin-1').decode('unicode-escape').encode('latin-1').decode('utf-8')
'鈴木'
2023/10/03(火) 14:02:33.32ID:XmURfba80
unicode escapeじゃないやん
ただの2桁十六進数やん
2023/10/03(火) 14:10:54.27ID:lqxRC9/W0
>>37
print(
"本(和書)のジャンル一覧|アマゾン"
"\n"
"h" "tt" "ps://www.ama" "zon.co" ".jp/b?node=465610"
)
234デフォルトの名無しさん (オイコラミネオ MMd1-kmCf)
垢版 |
2023/10/03(火) 14:40:19.82ID:ZtbTtZfzM
>>1
コピペで動画を作れたのだが、
今回やってみたら動画が死んでいる、
なぜなんだろう、、、
235デフォルトの名無しさん (アウアウウー Sa89-5C2y)
垢版 |
2023/10/03(火) 15:33:43.66ID:QaeBAOHSa
>>232
\xe6\x84\x9fji\xe6\x82\xaai\xe3\x82\x88
2023/10/03(火) 20:24:55.63ID:uE2hlhlx0
プログラム内にリテラルで\xhh形式の文字列を書くくらいなら最初から'鈴木'かb'\xe9\x88\xb4\xe6\x9c\xa8'で十分でしょ
わざわざ異なる文字列として解釈されうる値を書く意味がわからない

プログラムパズルとかそういう話なのかな?
2023/10/03(火) 20:30:14.37ID:XmURfba80
> 変数bが「"\xe9\x88\xb4\xe6\x9c\xa8"」という、頭にbのつかないテキストの文字列となっており

というのは r"\xe9\x88\xb4\xe6\x9c\xa8" の意味だろうと
コードに埋め込む訳は無いので、ファイルなり通信なりで入力されるのだろうと
2023/10/03(火) 21:13:02.23ID:wlkvtDKRd
http://menu.5ch.net/bbsmenu.html

ここの文字化けも素人がやらかしたんだろうな
2023/10/03(火) 23:07:00.18ID:/3Vxa5Hd0
>>237
そういう話であれば>>227が書いてるように文字列から\xを除去してfromhexがいいと思う
fromhexとdecode時にそれぞれエラーが出る可能性があるのでエラーハンドリングは必要
2023/10/03(火) 23:15:37.13ID:3QaR5cka0
いっそCodec自作するのがよい
2023/10/04(水) 19:48:31.85ID:vlFi92ca0
matplotlibでファイルとかWebAggにグラフを書き出すとき、show()する度に過去のグラフの上に新しいグラフが追加されていくじゃないですか。
show()する度にウインドウをリフレッシュして新しいグラフだけ表示するようにしたいんですが、そのためには毎回show()のあとにclose()かclf()するしかないですかね?
matplotlibの設定か何かでshow()の後のcloseを強制化か自動化する方法があったらご教示ください。
2023/10/04(水) 20:10:48.56ID:PXW0isNe0
グラフはなんかどうやっても面倒で、
その原因は隅々まで人間が指定できてしまうことにあるので、
不自由だけど全部やってくれる系のが出るのを待ってる
243デフォルトの名無しさん (アウアウクー MMa1-u01H)
垢版 |
2023/10/04(水) 23:28:39.66ID:q7y7rPWzM
>>241
グラフ描画はNotebookかColab使うべき
だって静的にイメージは描画させたいしいじるのは動的にやりたいだろ
notebookはそれを完全に解決する
それ以外の解決法はない
2023/10/05(木) 01:09:23.57ID:2PZdepi20
ロジックをどのようにすれば以下のような処理を実現できるか悩んでいて、知恵を拝借したいです…
何か良い方法はないでしょうか?

【前提条件】
◯ある配列があり、先頭から順に1日に3件ずつ処理しています
◯その配列には辞書が格納されています。キーの一つに処理日付カラムがあり、最後に処理された日付が格納されています
◯配列の末尾に到達すると、処理対象は先頭に戻ります


【実現したいこと】
配列の中のある一つのインデックスを選んだ時、そのインデックスが示す辞書が次に処理される日付を求める
245デフォルトの名無しさん (アウアウクー MMa1-u01H)
垢版 |
2023/10/05(木) 01:46:17.44ID:XUo8TI11M
配列の長さが固定でないなら長さが変わる法則がわからないので計算しようがない
固定なら長さを3で割って書いてある日付に足すだけでは?
246デフォルトの名無しさん (オイコラミネオ MMd1-VEJP)
垢版 |
2023/10/05(木) 07:27:27.90ID:Q+rj3wnZM
python3.11.1からpython3.12.0に更新したら追加したモジュールがないってエラーになるんですが
更新するたびにモジュール入れなおさないといけないのですか
2023/10/05(木) 09:03:11.32ID:nAkSGUCB0
>>244
>◯配列の末尾に到達すると、処理対象は先頭に戻ります

俺にはここの意味がわからん
248244 (ワッチョイ 25a7-skpN)
垢版 |
2023/10/05(木) 09:37:49.75ID:2PZdepi20
配列の長さは固定としてよいのですが、長さを3で割って日付に足すやり方は配列の長さが3の倍数でないと使えないと思うんです。
249デフォルトの名無しさん (ワッチョイ 25a7-skpN)
垢版 |
2023/10/05(木) 09:41:08.11ID:2PZdepi20
>>247
例えば配列の長さが10だとすると、インデックス0〜2が1日目、3〜5が2日目、6〜8が3日目に処理されます。
4日目は末尾に到達し、9, 0, 1が処理対象となるという意味でした。
250デフォルトの名無しさん (ワッチョイ 25a7-skpN)
垢版 |
2023/10/05(木) 09:41:08.94ID:2PZdepi20
>>247
例えば配列の長さが10だとすると、インデックス0〜2が1日目、3〜5が2日目、6〜8が3日目に処理されます。
4日目は末尾に到達し、9, 0, 1が処理対象となるという意味でした。
2023/10/05(木) 09:52:04.06ID:nAkSGUCB0
>>250
格納するための配列が1つで、最大格納数が設定されてるって事ね?
格納する時の辞書を{‘day’:day,’contents’:[contentsA,contentsB,contentsC]}
みたいにしたらあかんの?
もしくは配列のmax数を3の倍数にしとくか。
max数が3の倍数にできなくても指定したインデックスの前後2つずつ調べれば済むだけだと思うけど。
2023/10/05(木) 09:54:53.37ID:R2cxF7x40
3を固定にしないでいくつでもいいけど実際は3でしか使わない
という設計がいい
2023/10/05(木) 10:25:35.56ID:MScw1o+3a
>>249
3×日数を配列の長さで割れば、ある日付けにどこを読んでいるかが計算できる
なので前回読まれた時にその日の処理の中で0番目1番目2番目のどれだったのか記録しておけば直接計算できる
あるいは配列の2つ前までが前回処理された日付を読んでもいい

Pythonの問題とかじゃなくて算数の問題じゃないか?

配列の長さがNとしたら3N日ごとに全く同じパターンが繰り返されるから、最初に3N日分計算すれば永遠に同じパターンが使える
上のやり方や3で割った余りで分類する関数を書いてもいいが最初に計算するパターンのほうがミスりづらいので俺ならこっちで書きそう
2023/10/05(木) 10:25:53.00ID:MScw1o+3a
>>249
3×日数を配列の長さで割れば、ある日付けにどこを読んでいるかが計算できる
なので前回読まれた時にその日の処理の中で0番目1番目2番目のどれだったのか記録しておけば直接計算できる
あるいは配列の2つ前までが前回処理された日付を読んでもいい

Pythonの問題とかじゃなくて算数の問題じゃないか?

配列の長さがNとしたら3N日ごとに全く同じパターンが繰り返されるから、最初に3N日分計算すれば永遠に同じパターンが使える
上のやり方や3で割った余りで分類する関数を書いてもいいが最初に計算するパターンのほうがミスりづらいので俺ならこっちで書きそう
2023/10/05(木) 10:35:41.65ID:MScw1o+3a
それプログラミングじゃなくて算数の問題だからプログラミングのお題スレとかに書くと喜ばれるよ

dictのまま書くなら2つ前までの要素がいつ処理されたのかを読んで余りで処理するしかないけどめんどいから常人はやらない
辞書を継承した自作クラスにして前回どこを読んだかのカウンターを付ける
これで次回読まれるのがいつかが計算できる
256デフォルトの名無しさん (ワッチョイ 9b90-AvD6)
垢版 |
2023/10/05(木) 11:58:22.11ID:1QWCM3G80
>>244
恐らくfor~range(~)で処理しようとしているんでしょ?
while~で処理すればいいと思いますよ。
257デフォルトの名無しさん (ワッチョイ 9b90-AvD6)
垢版 |
2023/10/05(木) 12:04:19.81ID:1QWCM3G80
それか
for i in range(start_idx, start_idx+3):
  if i>=len(list_x): i -= len(list_x)
  ~本処理~
2023/10/05(木) 12:10:07.58ID:R2cxF7x40
do whileが無いので、代わりに無限ループにしておいて、
whileの条件が成立しなかったらbreakで抜けるというのが標準の書き方だけど、
やっぱり低級に見える
2023/10/05(木) 13:24:00.30ID:Rw+E7y8Y0
>>246
pythonはマイナーバージョン毎に共存できるようになってるのだから入れ直すというか新たにモジュール入れてやらないとだめ
2023/10/05(木) 18:46:58.77ID:ZQpyEfNY0
>>244
学校の宿題とかパズルとかならいいんだけど
現実のシステムだと変更に弱くなるから
最後に実行された日付に不必要に依存すべきでないと思う

次はどのインデックス位置からいつ処理を実行するのかといった進捗状態を
配列とは別に保存しておいてそれをもとに計算したほうがいい
イテレータと同じイメージ
2023/10/05(木) 20:25:01.10ID:86J8E1XoM
>>259
そうなんだありがとう
モジュールはメモしておいた方がよさそうだ
2023/10/05(木) 20:28:43.13ID:86J8E1XoM
pip freezeでパッケージの一覧を作成できるのか
色々導入していたわ
263デフォルトの名無しさん (アウアウウー Sa89-5C2y)
垢版 |
2023/10/06(金) 10:15:56.07ID:Zl0hPCVya
なんで特定のバージョンに依存する描き方をしたがるんだろ
2023/10/06(金) 16:14:40.86ID:IoTyA8+w0
>>263
これどういうこと?
265デフォルトの名無しさん (ワッチョイ 25b1-iVkM)
垢版 |
2023/10/06(金) 19:45:56.36ID:1GaBjHDa0
dockerとかrequirements.txtとか再現性高めようとすると
必然的に特定のバージョンに依存するような書き方になると思うのだが。
最新バージョンで過去のバージョンの描き方してる、とかいう元も子もない前提条件なら知らんけど
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況