当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
★エラーを解決したい場合は、
表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。
Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★
5chの仕様【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】のため、どうにもなりましぇん。
↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/ Run Code機能あり。
ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi
〇前スレ〇 くだすれPython(超初心者用) その52【まず1嫁】
https://mevius.5ch.net/test/read.cgi/tech/1610137345/
次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
【まず1嫁】くだすれPython(超初心者用) その53
■ このスレッドは過去ログ倉庫に格納されています
2021/03/16(火) 07:19:44.36ID:PfTIXkDh
421デフォルトの名無しさん
2021/04/23(金) 00:06:55.92ID:nXIvCLH2 書いてあるとおりnp.array同士では除算が定義されていないのでできないのだが
「どうなって欲しいか」とか「どういう値を求めたいか」とか
そういうことを教えてくれないと解決策は示せない
「どうなって欲しいか」とか「どういう値を求めたいか」とか
そういうことを教えてくれないと解決策は示せない
422デフォルトの名無しさん
2021/04/23(金) 00:24:12.09ID:Ds5Mqwcd 最終的には3つの各々の条件下での折れ線グラフを描きたい。
そのために必要なのがy_1, y_2, x_2, x_1_astの各条件での各々の数値なんだけど、
x_1_astは求めようとしてもエラーしか表示されないから詰んでる
そのために必要なのがy_1, y_2, x_2, x_1_astの各条件での各々の数値なんだけど、
x_1_astは求めようとしてもエラーしか表示されないから詰んでる
423デフォルトの名無しさん
2021/04/23(金) 00:32:28.03ID:6A70qFGF np.array同士の除算できるけど?
424デフォルトの名無しさん
2021/04/23(金) 00:54:37.81ID:WdOS9cbk みたいなエラーメッセージってなんやねん
そんな適当な情報で分かる訳ないやん
そんな適当な情報で分かる訳ないやん
425デフォルトの名無しさん
2021/04/23(金) 01:15:39.35ID:u+P4/XB4 numpy.ndarray
を見ると
んんだらアレイ
と読みがち
を見ると
んんだらアレイ
と読みがち
426デフォルトの名無しさん
2021/04/23(金) 03:03:36.79ID:edw1EohB427デフォルトの名無しさん
2021/04/23(金) 07:14:01.60ID:M88Kc634 >>425
N-Dimension-Array、N次配列の略じゃないか
N-Dimension-Array、N次配列の略じゃないか
428デフォルトの名無しさん
2021/04/23(金) 10:32:16.79ID:6lQGggig >>424
本当に申し訳ないが、pythonは齧った程度しか触ったことがなくて、エラーの内容も調べた限りではそんな感じのことを言っていた。としか言いようがなかった
本当に申し訳ないが、pythonは齧った程度しか触ったことがなくて、エラーの内容も調べた限りではそんな感じのことを言っていた。としか言いようがなかった
429デフォルトの名無しさん
2021/04/23(金) 10:47:36.13ID:6lQGggig >>426
https://techiedelight.com/compiler/?PrKN
↑ソースコード全部(多分合ってるはず)
以下エラーメッセージ
ValueError Traceback (most recent call last)
<ipython-input-22-a6ecd68a1745> in <module>()
44 ys = np.linspace(y_2, y_1, 7) # 区間 [y_2, y_1] を 6 (=7-1) 分割
45 print(ys) # 分割点を表示
---> 46 xs = y_to_x(ys, y_2, x_2, lgr) # ys の各点に対応する xs を計算
47 # ==================================================================
48 # 作図
<ipython-input-22-a6ecd68a1745> in y_to_x(ys, y_2, x_2, lgr)
23 yy_2 = y_to_yy(y_2) # Y_2
24 xx_2 = y_to_yy(x_2) # X_2
---> 25 xxs = (yys - yy_2) / lgr + xx_2 # Xs=(Ys-Y_2) / LGR + X_2
26 xs = xx_to_x(xxs) # xs = xx_to_x(Xs)
27 return xs
ValueError: operands could not be broadcast together with shapes (7,) (6,)
要はlgrの値が0.5から増えていくとグラフはこのように移動していきます、ってのを表示させればいいんだけど、配列っぽくしてみたら詰んだ
どうせ課題の提出期限も切れたしこれを機にゆっくり勉強してみます。
https://techiedelight.com/compiler/?PrKN
↑ソースコード全部(多分合ってるはず)
以下エラーメッセージ
ValueError Traceback (most recent call last)
<ipython-input-22-a6ecd68a1745> in <module>()
44 ys = np.linspace(y_2, y_1, 7) # 区間 [y_2, y_1] を 6 (=7-1) 分割
45 print(ys) # 分割点を表示
---> 46 xs = y_to_x(ys, y_2, x_2, lgr) # ys の各点に対応する xs を計算
47 # ==================================================================
48 # 作図
<ipython-input-22-a6ecd68a1745> in y_to_x(ys, y_2, x_2, lgr)
23 yy_2 = y_to_yy(y_2) # Y_2
24 xx_2 = y_to_yy(x_2) # X_2
---> 25 xxs = (yys - yy_2) / lgr + xx_2 # Xs=(Ys-Y_2) / LGR + X_2
26 xs = xx_to_x(xxs) # xs = xx_to_x(Xs)
27 return xs
ValueError: operands could not be broadcast together with shapes (7,) (6,)
要はlgrの値が0.5から増えていくとグラフはこのように移動していきます、ってのを表示させればいいんだけど、配列っぽくしてみたら詰んだ
どうせ課題の提出期限も切れたしこれを機にゆっくり勉強してみます。
430デフォルトの名無しさん
2021/04/23(金) 11:04:30.97ID:6A70qFGF (yys - yy_2) は要素数7でlgrは要素数6
形が違うので割り算できないよってこと
形が違うので割り算できないよってこと
431デフォルトの名無しさん
2021/04/23(金) 11:43:43.46ID:edw1EohB >>429
>lgr = [0.5, 1.0, 1.5, 2.0, 2.5, 3.0] # 液ガス比 L'_M / G"_M
lgrnの要素数が6つで
>ys = np.linspace(y_2, y_1, 7) # 区間 [y_2, y_1] を 6 (=7-1) 分割
ysの要素数は7つで返ってくるから、要素数が違ってる関係でエラーになる
で、解決方法としては要素数を合わせればいいから
lgrに3.5を追加する、またはlinspaceの引数を6に変更すれば後は動く
以下はlgrに3.5を追加した場合のグラフ
https://i.imgur.com/gOS7wdU.png
>lgr = [0.5, 1.0, 1.5, 2.0, 2.5, 3.0] # 液ガス比 L'_M / G"_M
lgrnの要素数が6つで
>ys = np.linspace(y_2, y_1, 7) # 区間 [y_2, y_1] を 6 (=7-1) 分割
ysの要素数は7つで返ってくるから、要素数が違ってる関係でエラーになる
で、解決方法としては要素数を合わせればいいから
lgrに3.5を追加する、またはlinspaceの引数を6に変更すれば後は動く
以下はlgrに3.5を追加した場合のグラフ
https://i.imgur.com/gOS7wdU.png
432デフォルトの名無しさん
2021/04/23(金) 14:06:41.92ID:lnQ2Wtpu433デフォルトの名無しさん
2021/04/23(金) 21:14:39.28ID:Sg24bGS7 大卒らしいのに小卒みたいな奴っておるやん
そういう人種だと思っていただきたい
そういう人種だと思っていただきたい
434デフォルトの名無しさん
2021/04/23(金) 23:28:58.65ID:dmYMi7DT どうでもいいけどpython全然わからんて人向けの課題じゃない気が
435デフォルトの名無しさん
2021/04/23(金) 23:49:43.39ID:5bcZIOw5 サボっててついて行けてないだけだろ
436デフォルトの名無しさん
2021/04/24(土) 11:34:27.43ID:V3n+Hqik Tkinterでウィンドウの移動をマウスのドラッグで実施したいのですが、
タイトルバーではなく、表示部分?をドラッグする方法ってありませんか?
画像をサブウィンドウで表示させているのですが、タイトルを表示せず画像だけのサブウィンドウにしたくてお願いいたします
タイトルバーではなく、表示部分?をドラッグする方法ってありませんか?
画像をサブウィンドウで表示させているのですが、タイトルを表示せず画像だけのサブウィンドウにしたくてお願いいたします
437デフォルトの名無しさん
2021/04/24(土) 21:25:16.04ID:7lpOLCJL ファイルパスを受け取って画像かどうかを返す、シンプルな関数を作りたい
偽装(mimetypes)とか誤認(imghdr)とか避けたい
import pathlib
import filetype
path = pathlib.Path(xxx)
if path.is_file():
__is_img(path)
#
def is_img(path):
__answer = False
__obj = filetype.guess(str(path))
__if obj is not None:
____if obj.mime[:6] == "image/":
______answer = True
__returen answer
いまこんな感じなんですが、これで大丈夫だと思いますか?
一応手元で偽装ファイルとか色々投げて、問題ないっぽい雰囲気ではあるのですが…
また、もっと簡単な方法があれば教えてください
偽装(mimetypes)とか誤認(imghdr)とか避けたい
import pathlib
import filetype
path = pathlib.Path(xxx)
if path.is_file():
__is_img(path)
#
def is_img(path):
__answer = False
__obj = filetype.guess(str(path))
__if obj is not None:
____if obj.mime[:6] == "image/":
______answer = True
__returen answer
いまこんな感じなんですが、これで大丈夫だと思いますか?
一応手元で偽装ファイルとか色々投げて、問題ないっぽい雰囲気ではあるのですが…
また、もっと簡単な方法があれば教えてください
438デフォルトの名無しさん
2021/04/24(土) 21:49:17.04ID:PnhVzGZB python2のvirtualenv入れようと思って
python -m pip install virtualenv
ってやったら、複数の関連パッケージの処理をやったあとで
エラーで終了したんですが、こういう場合、そこまでに
動いた処理は元に戻る?それとも中途半端に放置される?
このあとで別の方法でパッケージインストールしたら、
最初に失敗したときの処理は中途半端な状態で残ることに
なるんじゃないかと思って気になってます。
今までこういう場合はもうよくわからないのでOSごと
再インストールしてたんですが、どなたか知ってる方が
いたら教えてください
python -m pip install virtualenv
ってやったら、複数の関連パッケージの処理をやったあとで
エラーで終了したんですが、こういう場合、そこまでに
動いた処理は元に戻る?それとも中途半端に放置される?
このあとで別の方法でパッケージインストールしたら、
最初に失敗したときの処理は中途半端な状態で残ることに
なるんじゃないかと思って気になってます。
今までこういう場合はもうよくわからないのでOSごと
再インストールしてたんですが、どなたか知ってる方が
いたら教えてください
439デフォルトの名無しさん
2021/04/24(土) 22:00:35.42ID:h9VLhHSB PIL.Imageで開けるか開けないか
440デフォルトの名無しさん
2021/04/25(日) 00:57:11.71ID:VZsvyaQ9 >>437
filetypeはjpg/png/gifの場合最初の2〜3バイトしか読まないので
https://github.com/h2non/filetype.py/blob/53bdccee0371fcc9463e2edd68d2cedb589d3a76/filetype/types/image.py#L23
その先頭2〜3バイトが偽装されていれば誤認する
そういうのが嫌なら439のように画像としてロードできるかまで確認すべきだ
ただし、437が想定するファイルを「偽装」してくるアタッカーがどういう人物像なのか不明なので
一概にどちらにすべきとは言えない
偽装ファイルでexploitを突こうと画策されているのでもなければfiletypeで十分だろう
filetypeはjpg/png/gifの場合最初の2〜3バイトしか読まないので
https://github.com/h2non/filetype.py/blob/53bdccee0371fcc9463e2edd68d2cedb589d3a76/filetype/types/image.py#L23
その先頭2〜3バイトが偽装されていれば誤認する
そういうのが嫌なら439のように画像としてロードできるかまで確認すべきだ
ただし、437が想定するファイルを「偽装」してくるアタッカーがどういう人物像なのか不明なので
一概にどちらにすべきとは言えない
偽装ファイルでexploitを突こうと画策されているのでもなければfiletypeで十分だろう
441デフォルトの名無しさん
2021/04/25(日) 01:16:14.07ID:FsB+Ww+M 画像として読み込める偽装データもないっけ
保持するつもりなら万全を期して読み込んで保存し直すくらいまでしたほうがいいかも
保持するつもりなら万全を期して読み込んで保存し直すくらいまでしたほうがいいかも
442デフォルトの名無しさん
2021/04/25(日) 09:46:28.78ID:0VwYrDNE443デフォルトの名無しさん
2021/04/25(日) 11:58:20.51ID:1lzxcbvy 画像ファイルだが読まれない部分に割れ物の断片を入れられてる…みたいな偽装と
ヘッダは画像ファイルだが中身は画像ではないという偽装は
ちょっと別の話かと
ヘッダは画像ファイルだが中身は画像ではないという偽装は
ちょっと別の話かと
444デフォルトの名無しさん
2021/04/25(日) 12:35:46.60ID:FsB+Ww+M 別だから別に言ってるんだが
何が問題なん?
何が問題なん?
445デフォルトの名無しさん
2021/04/25(日) 13:44:38.33ID:J5zsPVXp pandasでデータフレームを作成するときに
df = pd.DataFrame({'C': namae, 'A': tokuten, 'B': tokuten2})
のようにして実行すると、A, B, C の順に列が並んでしまいます。
C, A, B の順番に列を並ばせてつくりたいのですが、どうすればいいですか?
df = pd.DataFrame({'C': namae, 'A': tokuten, 'B': tokuten2})
のようにして実行すると、A, B, C の順に列が並んでしまいます。
C, A, B の順番に列を並ばせてつくりたいのですが、どうすればいいですか?
446デフォルトの名無しさん
2021/04/25(日) 14:54:36.65ID:wFtgTR9d Pythonのバージョンによっては、dictは順序保証しないからじゃないの?
横着せずにシーケンス(list/tuple)を使えばよい。
横着せずにシーケンス(list/tuple)を使えばよい。
447デフォルトの名無しさん
2021/04/25(日) 15:05:09.87ID:w/gigbrd448デフォルトの名無しさん
2021/04/25(日) 15:22:02.13ID:0VwYrDNE できないなら取り出すアプリつくれないだろJK
449デフォルトの名無しさん
2021/04/25(日) 15:43:50.39ID:stjG7043 判定・削除というからには、鍵を持たない第三者が偽装かどうかを見抜けるかという話でしょ
450デフォルトの名無しさん
2021/04/25(日) 15:52:52.45ID:FsB+Ww+M いちいち妙な判定しようとせずに
画像としてメモリに展開して
再保存すりゃいいだけじゃね
ついでに圧縮率も変えられるし
画像としてメモリに展開して
再保存すりゃいいだけじゃね
ついでに圧縮率も変えられるし
451デフォルトの名無しさん
2021/04/25(日) 15:53:07.93ID:piDGyGmF コンテナ利用するときにvirtualenvs併用するメリットってなんでしょう?
コンテナ内部で更にvirtualenvs使うのは二度手間なように感じています。
コンテナ内部で更にvirtualenvs使うのは二度手間なように感じています。
452デフォルトの名無しさん
2021/04/25(日) 15:59:25.19ID:KtTIhOup 言われてみりゃそうだな
453デフォルトの名無しさん
2021/04/25(日) 16:25:49.08ID:yZn73yTF454デフォルトの名無しさん
2021/04/25(日) 16:32:15.73ID:Uff2BRsY455デフォルトの名無しさん
2021/04/25(日) 17:38:00.13ID:OYNPlpSe コンテナで仮想環境使うのはアンチパターンやぞ
456デフォルトの名無しさん
2021/04/25(日) 18:34:24.22ID:Fk25aiPG >>454
ありがとうございます。
ありがとうございます。
457デフォルトの名無しさん
2021/04/25(日) 19:16:36.74ID:sodTi8GH458デフォルトの名無しさん
2021/04/25(日) 22:09:06.87ID:piDGyGmF459デフォルトの名無しさん
2021/04/28(水) 09:48:30.09ID:IxwcvE22 どうしてPython使ってる人ってswitch-caseなくても我慢できるんですか?
それしか知らないから不満を持ちようがないとか?
それしか知らないから不満を持ちようがないとか?
460デフォルトの名無しさん
2021/04/28(水) 09:58:49.52ID:Lpz9/b/L 我慢できるとかじゃなく、ないものはしょうがないだろ。
それがどうしても嫌ならpythonを使わなければいい。
なんらかの理由でpythonを使う(使わなければいけない)のなら、
他の人も同様でしょ。
それがどうしても嫌ならpythonを使わなければいい。
なんらかの理由でpythonを使う(使わなければいけない)のなら、
他の人も同様でしょ。
461デフォルトの名無しさん
2021/04/28(水) 10:21:09.69ID:hp9xP/+6 似たような処理は代入演算子とif,elif,elseでできるって書いてあったよ
462デフォルトの名無しさん
2021/04/28(水) 10:57:42.68ID:C/XDgQGy パターンマッチングも結局、式ではなく文なんだな。
463デフォルトの名無しさん
2021/04/28(水) 11:11:25.75ID:3EuQZ3Ew pythonみたいな構造体がきっちりしてるわけでもない言語なら
そこまでパターンマッチ必要にはならんだろ。
構造体からデータ取り出すのがそこまで面倒な言語でもない。
そこまでパターンマッチ必要にはならんだろ。
構造体からデータ取り出すのがそこまで面倒な言語でもない。
464デフォルトの名無しさん
2021/04/28(水) 11:38:24.28ID:ewi3Y8j6 >>461
switch(a){ ... } みたいなやつなら良いけど switch(a + 1){ … } とかだと一時変数を作るか各条件式にa + 1とか書くはめになるからねぇ
switch文があるに越したことはないと思う
switch(a){ ... } みたいなやつなら良いけど switch(a + 1){ … } とかだと一時変数を作るか各条件式にa + 1とか書くはめになるからねぇ
switch文があるに越したことはないと思う
465デフォルトの名無しさん
2021/04/28(水) 12:33:15.42ID:Je4EzdV5 構造体に使うイメージはなかったな
昨今のtypingの流儀に乗っかったんだと思う
昨今のtypingの流儀に乗っかったんだと思う
466デフォルトの名無しさん
2021/04/28(水) 13:19:32.28ID:hp9xP/+6467デフォルトの名無しさん
2021/04/28(水) 17:02:16.33ID:EhiFgjxN 文増えてくと混沌としてくるから今のPythonの流れはちょっとどうなのかなと思うところはある
468デフォルトの名無しさん
2021/04/28(水) 17:57:38.85ID:tBbflF5J python3.10か3.11でパターンマッチ来るんだっけ
469デフォルトの名無しさん
2021/04/28(水) 21:15:45.49ID:kjLpBedQ470デフォルトの名無しさん
2021/04/28(水) 21:23:17.33ID:jo1UoyuU switch-caseって、条件が等差数列となるときはjmp先を演算できるよねとできた
実にCらしい構文で、そういうことをしない言語にとっては実装が面倒なだけの構文かと
実にCらしい構文で、そういうことをしない言語にとっては実装が面倒なだけの構文かと
471デフォルトの名無しさん
2021/04/28(水) 21:27:42.21ID:7X7PmWB6 if文でやると汚くなる言語がswitchに逃げたとみたらどう
472デフォルトの名無しさん
2021/04/28(水) 21:46:19.33ID:HN4XQcog473デフォルトの名無しさん
2021/04/28(水) 22:03:43.50ID:lX6x7Umv 最近C#からswitch実質なくなったと聞いたぞ
中で
中で
474デフォルトの名無しさん
2021/04/28(水) 22:04:33.39ID:lX6x7Umv 中で条件式とか使えるようになって実質IFの羅列になったとか
475デフォルトの名無しさん
2021/04/28(水) 22:10:35.31ID:RJLrCSIQ >>472
パーサーを置き換えるのが面倒くさかったからだと思ってる
パーサーを置き換えるのが面倒くさかったからだと思ってる
476デフォルトの名無しさん
2021/04/29(木) 17:24:45.07ID:hj4NO6UY477デフォルトの名無しさん
2021/04/29(木) 18:11:22.33ID:8Iq2BU/P リテラルな値でのswitchならenumでシンプルにかけるしな
478デフォルトの名無しさん
2021/04/29(木) 20:52:09.39ID:naaqk/s1 ライブラリ使ってるとたまに
hoge(option=DEFAULT_TYPE)
みたいな感じでオプションを設定できるのがあったと思うのですが
このDEFAULT_TYPEの部分は変数を定義した覚えもないのに使えてた気がします
どういう仕組みなのでしょうか
hoge(option=DEFAULT_TYPE)
みたいな感じでオプションを設定できるのがあったと思うのですが
このDEFAULT_TYPEの部分は変数を定義した覚えもないのに使えてた気がします
どういう仕組みなのでしょうか
479デフォルトの名無しさん
2021/04/29(木) 20:55:11.65ID:hj4NO6UY from なんかのライブラリ import *
とかでその定数をimportしてると思うよ
とかでその定数をimportしてると思うよ
480デフォルトの名無しさん
2021/04/30(金) 09:28:09.56ID:MB7wv8yI オブジェクト指向は全然分からないからクラスの定義は出来ない
でも関数だけで何とか出来ちゃうから有難いわ
でも関数だけで何とか出来ちゃうから有難いわ
481デフォルトの名無しさん
2021/04/30(金) 09:55:14.88ID:rWXbtYRM >>479
なるほど
どのライブラリだったか忘れて確かめられませんが
読み込み先でDEFAULT_TYPEをprintすれば何かわかりそうですね
#hoge.py
DEFAULT_TYPE='default'
class Hoge:
def fuga(self,*,option=None):
print('Option: %s'%option)
#
from hoge import Hoge,DEFAULT_TYPE
h=Hoge()
h.fuga(option=DEFAULT_TYPE)
上のようにimportでDEFAULT_TYPEしていたかどうか
でなければhoge.DEFAULT_TYPEという指定だったか記憶が曖昧ですが
こんな感じでできました
import DEFAULT_TYPEしなくてもDEFAULT_TYPEだけでいけた気がするのですが
記憶違いだったかもしれません
なるほど
どのライブラリだったか忘れて確かめられませんが
読み込み先でDEFAULT_TYPEをprintすれば何かわかりそうですね
#hoge.py
DEFAULT_TYPE='default'
class Hoge:
def fuga(self,*,option=None):
print('Option: %s'%option)
#
from hoge import Hoge,DEFAULT_TYPE
h=Hoge()
h.fuga(option=DEFAULT_TYPE)
上のようにimportでDEFAULT_TYPEしていたかどうか
でなければhoge.DEFAULT_TYPEという指定だったか記憶が曖昧ですが
こんな感じでできました
import DEFAULT_TYPEしなくてもDEFAULT_TYPEだけでいけた気がするのですが
記憶違いだったかもしれません
482デフォルトの名無しさん
2021/04/30(金) 15:52:58.65ID:4ngw0sc5 tkinterのdestroy()って親を殺せば子は見逃しても問題ない?
全部明示して殺す必要ありますか?
ガベージコレクションが頑張るから大丈夫なのかな
全部明示して殺す必要ありますか?
ガベージコレクションが頑張るから大丈夫なのかな
483デフォルトの名無しさん
2021/04/30(金) 21:22:20.53ID:S74Hi/jw 親をdestroyすれば子供子孫すべてdestroyする
484デフォルトの名無しさん
2021/04/30(金) 21:47:35.28ID:Xt8J6sgV 通報しませんでした
485デフォルトの名無しさん
2021/04/30(金) 22:00:05.11ID:9cqxfo3+ def destroy(self):
for c in list(self.children.values()): c.destroy()
親は子供を殺すが孫は殺さない
子供が孫を殺す
for c in list(self.children.values()): c.destroy()
親は子供を殺すが孫は殺さない
子供が孫を殺す
486デフォルトの名無しさん
2021/04/30(金) 22:10:04.55ID:lUzIA11U 殺すとか殺さないとか
物騒なスレですね
物騒なスレですね
487デフォルトの名無しさん
2021/04/30(金) 22:57:56.75ID:sx17ZQMm gc働かないん?
488デフォルトの名無しさん
2021/05/01(土) 06:16:19.35ID:Ca2DZO3D stack overflowの書き込みで、親が死ねば孤独になった子供はGCがやがて消す
消えるまでメモリには残る って書いてあった気がする
消えるまでメモリには残る って書いてあった気がする
489デフォルトの名無しさん
2021/05/01(土) 07:41:58.14ID:PUOqmJZW490デフォルトの名無しさん
2021/05/01(土) 08:15:27.05ID:gyFQOP1a >>477
そのswitchの代わりという使い方だと、PythonのEnumはいまいちですわ。
JavaのEnumがまさにそういう使い方ができるようになっている(Strategy/Stateパターン)。
そのswitchの代わりという使い方だと、PythonのEnumはいまいちですわ。
JavaのEnumがまさにそういう使い方ができるようになっている(Strategy/Stateパターン)。
491デフォルトの名無しさん
2021/05/01(土) 10:02:13.72ID:qiYKVwJr syntaxエラーをチェックするツールありますか?
492デフォルトの名無しさん
2021/05/01(土) 12:52:24.80ID:R4IHrQy8 python -m py_compile ソースファイル
493デフォルトの名無しさん
2021/05/01(土) 13:22:27.14ID:qiYKVwJr >>492
ありがとうございました。
*.pyでソースを指定したら全部.pycが出来上がり、ノーエラーでした。
試しにwhileの:を削除してみたらSyntaxErrorの指摘が表示されました。
これで安心です。
ありがとうございました。
*.pyでソースを指定したら全部.pycが出来上がり、ノーエラーでした。
試しにwhileの:を削除してみたらSyntaxErrorの指摘が表示されました。
これで安心です。
494デフォルトの名無しさん
2021/05/01(土) 13:29:51.59ID:psDEcvhX flake8とか使えば良くない…?
495デフォルトの名無しさん
2021/05/01(土) 13:50:54.37ID:oZHy3HfC うちはflake8とblack派だけど勉強になった
496デフォルトの名無しさん
2021/05/01(土) 13:52:21.43ID:jntNu2g9 linterだと、実際動くかどうかまではわからないことが多いと思う
いくつかあるlinterの中では俺もflake8を使ってるわ
いくつかあるlinterの中では俺もflake8を使ってるわ
497デフォルトの名無しさん
2021/05/01(土) 17:57:55.31ID:qiYKVwJr PyQtで自動生成されるuiソースもflake8で結構色々でますね。
自分のソースは通信系なのでtry/except入れているのでsyntaxエラーさえも例外で通信リカバリーみたいになるので悩んでました。
自分のソースは通信系なのでtry/except入れているのでsyntaxエラーさえも例外で通信リカバリーみたいになるので悩んでました。
498デフォルトの名無しさん
2021/05/01(土) 21:57:09.95ID:qfW/WcRP >>496
Syntax Errorはちゃんとでるんでないかい?
一方で、こういう逆のケースはある。
globals()['tau'] = 6.283185
print(tau) # linterやIDEではエラーとでるけど、実際にはちゃんと動く
Syntax Errorはちゃんとでるんでないかい?
一方で、こういう逆のケースはある。
globals()['tau'] = 6.283185
print(tau) # linterやIDEではエラーとでるけど、実際にはちゃんと動く
499デフォルトの名無しさん
2021/05/02(日) 15:17:35.67ID:v2ZnBcL1 a = ['a','b','c']
if not a[3]:
_print()
javascriptみたいにundefinedになってくれればと思ったのですが
pythonはIndexErrorが出るみたいですね
これを場合分けしようと思うと、try使うしかないですよね?
list index out of rangeの場合はelseそれ以外は値を取得
みたいにifだけ書きたいと思ったんですけどね
if not a[3]:
_print()
javascriptみたいにundefinedになってくれればと思ったのですが
pythonはIndexErrorが出るみたいですね
これを場合分けしようと思うと、try使うしかないですよね?
list index out of rangeの場合はelseそれ以外は値を取得
みたいにifだけ書きたいと思ったんですけどね
500デフォルトの名無しさん
2021/05/02(日) 15:20:45.85ID:Eu1LZK3p idx < len(a)でインデックスが範囲内にあることを確認するとか?
501デフォルトの名無しさん
2021/05/02(日) 15:20:49.97ID:zAlV+S16 dictならそういうのあるけどlistはないな
len(list)で長さ確認してから取得するか、try-catchするしか無い
len(list)で長さ確認してから取得するか、try-catchするしか無い
502デフォルトの名無しさん
2021/05/02(日) 20:42:49.07ID:x2TfprvW if not a[3:]:
で ok
で ok
503デフォルトの名無しさん
2021/05/02(日) 23:59:52.42ID:Qiy/T2Qn listを拡張して独自クラスを定義するのはどうか
class DefaultList(list):
__def __getitem__(self,i):
____if i<len(self):
______return super().__getitem__(i)
____else:
______return None
a=DefaultList([‘a’,’b’,’c’])
if not a[3]:
class DefaultList(list):
__def __getitem__(self,i):
____if i<len(self):
______return super().__getitem__(i)
____else:
______return None
a=DefaultList([‘a’,’b’,’c’])
if not a[3]:
504デフォルトの名無しさん
2021/05/03(月) 00:41:21.84ID:4Jcj15/I >>502
スライス範囲を絞ってif not a[idx: idx + 1]とかにしたらより速くなりそう
スライス範囲を絞ってif not a[idx: idx + 1]とかにしたらより速くなりそう
505デフォルトの名無しさん
2021/05/03(月) 08:29:57.06ID:oY4C2yCE いきなりStopIterationで止まるだけだから、長さ関係ないだろ。
普通にlenでいい。
JavaScriptやPHPのリスト"もどき"と比べるのもナンセンス。
普通にlenでいい。
JavaScriptやPHPのリスト"もどき"と比べるのもナンセンス。
506デフォルトの名無しさん
2021/05/03(月) 09:20:58.90ID:TDKc9ux4 環境はwindows10 64bitです
親フォルダ
:子フォルダA:画像1.画像2
:子フォルダB:画像1..
という構造があって,pathlibで生成した子フォルダのpathをiterdir()で回して
画像pathをPILのImage.openで読もうとしてるんですが
親か子のフォルダ名がめっちゃ長くなると
FileNotFoundError: [Errno 2] No such file or directoryになるやつが出たり出なかったりします
フォルダ名を短くして,画像名を最大まで長くした場合はエラーが出ません
何が原因で,どうすれば読めるようにできますか?
できればエラーキャッチしてその場で読めるようにしたい (フォルダ名のリネームはとりあえず置いておきたい)
親フォルダ
:子フォルダA:画像1.画像2
:子フォルダB:画像1..
という構造があって,pathlibで生成した子フォルダのpathをiterdir()で回して
画像pathをPILのImage.openで読もうとしてるんですが
親か子のフォルダ名がめっちゃ長くなると
FileNotFoundError: [Errno 2] No such file or directoryになるやつが出たり出なかったりします
フォルダ名を短くして,画像名を最大まで長くした場合はエラーが出ません
何が原因で,どうすれば読めるようにできますか?
できればエラーキャッチしてその場で読めるようにしたい (フォルダ名のリネームはとりあえず置いておきたい)
507デフォルトの名無しさん
2021/05/03(月) 09:25:40.83ID:YjR4A9Iz >>506
フルパスが長すぎてpython内であふれてしまうのが原因
フルパスではなくショートパスを生成して、それでやりとりするようにすればとりま回避できるが
あまりに長いフルパスは非推奨なのでとりま置いておいたとしてもいつかは直せ
フルパスが長すぎてpython内であふれてしまうのが原因
フルパスではなくショートパスを生成して、それでやりとりするようにすればとりま回避できるが
あまりに長いフルパスは非推奨なのでとりま置いておいたとしてもいつかは直せ
508デフォルトの名無しさん
2021/05/03(月) 09:47:03.23ID:GN4IAf32 PythonじゃなくてWindowsのせい
多分これでしょう
Windowsはデフォで絶対パス260文字制限があるらしいから、解除したいならレジストリをいじる必要がある
https://bizlog.tech/windows-maxpath-change/
多分これでしょう
Windowsはデフォで絶対パス260文字制限があるらしいから、解除したいならレジストリをいじる必要がある
https://bizlog.tech/windows-maxpath-change/
509デフォルトの名無しさん
2021/05/03(月) 09:59:34.50ID:YBya6Fwz フォルダ名はわかるけど
ファイル名長いのが大丈夫なのはなんでだ?
ファイル名長いのが大丈夫なのはなんでだ?
510デフォルトの名無しさん
2021/05/03(月) 12:48:07.42ID:TDKc9ux4 >>507
なるほど
今回はpyinstaller使いたくて、そうするとwin32apiとの相性が悪いっつーかショートパスが危険球っぽいんで
もうロングパスは受け付けないことにします。ありがとうございました
なるほど
今回はpyinstaller使いたくて、そうするとwin32apiとの相性が悪いっつーかショートパスが危険球っぽいんで
もうロングパスは受け付けないことにします。ありがとうございました
511デフォルトの名無しさん
2021/05/03(月) 12:52:29.86ID:YjR4A9Iz512デフォルトの名無しさん
2021/05/03(月) 18:53:48.47ID:YjR4A9Iz >>510追記
ところで、相対パス/絶対パス/フルパス/短縮(ショート)パスの違いはわかってるんだよな???
ところで、相対パス/絶対パス/フルパス/短縮(ショート)パスの違いはわかってるんだよな???
513デフォルトの名無しさん
2021/05/03(月) 23:59:09.62ID:9/VcaNVK その情報要る?
たぶん抜本的には裏で構造体を丸ごと短い名前でコピーして、それを処理して返すようにするとかいう話じゃね
たぶん抜本的には裏で構造体を丸ごと短い名前でコピーして、それを処理して返すようにするとかいう話じゃね
514デフォルトの名無しさん
2021/05/04(火) 00:11:11.66ID:MueeR1Ae まあショートネームは避けたい
そもそも超ロングパスがあり得る環境だとショートパス化できない文字列がぶち込まれそうだし
長いのはエラー吐くか
コピー→リネーム→処理→置き換え たい
そもそも超ロングパスがあり得る環境だとショートパス化できない文字列がぶち込まれそうだし
長いのはエラー吐くか
コピー→リネーム→処理→置き換え たい
515デフォルトの名無しさん
2021/05/04(火) 00:59:43.45ID:Zkcb+r3V Windowsの場合はPythonのインストールの最後に260文字制限を解除するか
聞かれたような気がする
聞かれたような気がする
516デフォルトの名無しさん
2021/05/04(火) 11:15:39.91ID:MTtoo9am win上のpythonて32767文字扱えないのか
517デフォルトの名無しさん
2021/05/04(火) 12:20:24.62ID:g/PMv139518デフォルトの名無しさん
2021/05/04(火) 14:21:30.25ID:QySiaJ1m 以下のようなデータセットのリストがあり、例えば各nameごとに、valueが最大となるものだけ抽出したい場合に内包表記や関数などで簡単に書ける方法はありますか?
[
{'name': 'a', 'value': 100},
{'name': 'a', 'value': 200},
{'name': 'b', 'value': 50},
{'name': 'b', 'value': 105},
{'name': 'c', 'value': 150}
]
↓こういうリストとして抽出したいです。
[
{'name': 'a', 'value': 200},
{'name': 'b', 'value': 105},
{'name': 'c', 'value': 150}
]
valueはタイムスタンプ等で最新のものだけ抽出する、といった使い方をしたいです。
[
{'name': 'a', 'value': 100},
{'name': 'a', 'value': 200},
{'name': 'b', 'value': 50},
{'name': 'b', 'value': 105},
{'name': 'c', 'value': 150}
]
↓こういうリストとして抽出したいです。
[
{'name': 'a', 'value': 200},
{'name': 'b', 'value': 105},
{'name': 'c', 'value': 150}
]
valueはタイムスタンプ等で最新のものだけ抽出する、といった使い方をしたいです。
519デフォルトの名無しさん
2021/05/04(火) 14:46:49.13ID:7YaPXlVC 聞く限りだとfor name, value in data:とかで回して
out[name] = max(out[name], value)
みたいな感じで処理したら良さそうだけど
out[name] = max(out[name], value)
みたいな感じで処理したら良さそうだけど
520デフォルトの名無しさん
2021/05/04(火) 15:14:35.45ID:E49Bjnaf df.groupby('name').max()
■ このスレッドは過去ログ倉庫に格納されています
