【まず1嫁】くだすれPython(超初心者用) その53

■ このスレッドは過去ログ倉庫に格納されています
2021/03/16(火) 07:19:44.36ID:PfTIXkDh
当スレに★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 ###
2021/04/19(月) 19:19:59.45ID:dcvAhRVy
死ねキチガイ
397デフォルトの名無しさん
垢版 |
2021/04/20(火) 07:29:55.55ID:j2wgvj4g
tabula-pyを使った。
pyinstallerでのexe化の難易度高すぎて泣いた。
こういうの自力で解決できる奴すげーな。
2021/04/20(火) 07:37:31.95ID:ZUNvehNP
Python3.6になったあたりからね>PyInstallerがむつかしめになった
2021/04/20(火) 12:55:48.10ID:u1botkzs
>>394
なるほどありがとうございました
400デフォルトの名無しさん
垢版 |
2021/04/20(火) 19:19:47.13ID:z53EQ1rJ
PyInstallerを簡単にするwrapperがあった気がする。
2021/04/20(火) 19:42:33.15ID:dEbCnyUA
pyinstaller以外にもなんかあったと思う
2021/04/20(火) 20:15:00.66ID:ZUNvehNP
フリーズとかなんとかってやつ?
あいつは重い でかい
2021/04/21(水) 15:25:20.73ID:ZcIZV+lf
pythonに限った話ではないかもですが、
定期的にデータを取得して最大値を更新していくような処理をする時、

初期値として
max = None
としておくと、

if max is None or max < new_value:
____max = new_value

みたいに、Noneかどうかの比較というのが必要になりますが、たった初回のNoneのために毎回比較するというのは処理(とくに処理時間等)として無駄でしょうか?

例えば初期値を、ありえないぐらい小さい値にしておいて、どんなデータが来ても必ず更新されるようにしておく、というやり方もあるかと思いますが、Noneのように「未反映」という状態を示したいです。
上記に限らず初期値をNoneにするといたる所でis Noneの判定が出てくるのでどうも無駄な比較に思えてならないのです。
気にするレベルではないならそう言っていただけると安心です。
2021/04/21(水) 15:28:40.50ID:1AfR4JIy
max=-inf でいいのでは
2021/04/21(水) 15:32:09.42ID:1AfR4JIy
max=-math.inf だったか
406デフォルトの名無しさん
垢版 |
2021/04/21(水) 15:50:40.25ID:rPf7kV48
初回だけはpred.としてNoneと比較する関数をyieldする
次回からは値を比較する関数をpred.としてyeildする
2021/04/21(水) 16:58:18.40ID:n9Psf8QY
>>403
自分が気にならないレベルかどうかを%timeitとかで計測して確かめるがいいと思うよ
2021/04/21(水) 17:07:38.32ID:MgcuCfSX
max_val = float('inf')
にしておいて逐一
max_val = max(max_val, new_val)
で良さそう
2021/04/21(水) 17:07:52.06ID:MgcuCfSX
-float('inf')か
2021/04/21(水) 17:28:45.33ID:ZcIZV+lf
inf無限大なんてものがあるなんて目からウロコでした!
これなら演算も比較も、format表示もエラーにならないので使えそうです。
yieldについても、なるほどそういう使い方があるんですね。
ありがとうございます。

>>407
速度については今度確認してみたいと思います。
411デフォルトの名無しさん
垢版 |
2021/04/22(木) 15:08:18.73ID:RM6sGe2J
クラス内のメンバ変数って
やっぱり一番最初に全部宣言しとくべきですか?
色んな関数内で好き好きに宣言するのは良くないこと?
2021/04/22(木) 15:11:25.76ID:FRH+m68J
Pythonはどこで宣言してもゆるしてくれるが
人間的には先頭にかためておけよ って思われる
413デフォルトの名無しさん
垢版 |
2021/04/22(木) 15:43:11.18ID:aclQQfDP
Javaの作法を敷衍させると先頭に固めるのが良いとの伝承がある
414デフォルトの名無しさん
垢版 |
2021/04/22(木) 16:36:07.85ID:RM6sGe2J
あーやっぱりそうですよね
ありがとうございます
415デフォルトの名無しさん
垢版 |
2021/04/22(木) 18:20:22.69ID:aGoOGFqx
チョンにはムリ
2021/04/22(木) 18:55:37.92ID:1EPV8o9V
pandasのdescribe()のような集計結果から(元データがなく、集計結果の数値のみが与えられた状況です)、これを用いてpythonで箱ひげ図を描く方法をご存知でしたら教えてください。matplotlibやseabornのboxplotは元データが必要のようで、行き詰っています。
2021/04/22(木) 19:08:28.16ID:FRH+m68J
>>416
ひげの長さのもとがないようなデータにあとからヒゲはやしても不自然なだけくね?
分析ずみのその値とやらだけ注釈枠作ってかいとけ
418416
垢版 |
2021/04/22(木) 22:11:19.58ID:1EPV8o9V
>>417
ありがとうございます。結局エクセルの積み上げ棒を加工して描く方
法で乗り切ることにしました。
419デフォルトの名無しさん
垢版 |
2021/04/22(木) 23:41:18.57ID:1DYnxoLB
大学の授業課題で使い方もろくに理解してないのにjupyter notebookを使って課題を提出しろとのお達しが出た
サンプルコードから見様見真似でいろいろやってみたけどエラーは出るし調べてもよく分からんし詰んだ

ちなみに「リスト同士の除算ができません」みたいなエラーメッセージが表示された。
420デフォルトの名無しさん
垢版 |
2021/04/22(木) 23:48:13.63ID:1DYnxoLB
>>419
以下サンプルコード

y_2 = 0.04
y_1 = 0.4
x_2 = 0.0
m = 1
lgr = 2.2
# Calculation
#
x_1_ast = y_1 / m # x*_1
ys = np.linspace(y_2, y_1, 7) # 区間 [y_2, y_1] を 6 (=7-1) 分割
print(ys) # 分割点を表示
xs = y_to_x(ys, y_2, x_2, lgr) # ys の各点に対応する xs を計算

以上サンプルコード
y_2, y_1, mが他の値だった場合にどんなグラフになるかというのを一つの図で表示するのが課題なんだけど

y_2 = np.array([0.04, 0.02, 0.02)]
m = np.array([0.04, 0.02, 0.02)]
と変更すると
x_1_ast = y_1 / m
の部分で「リスト同士の除算は〜」みたいなエラーメッセージで弾かれた。
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は求めようとしてもエラーしか表示されないから詰んでる
2021/04/23(金) 00:32:28.03ID:6A70qFGF
np.array同士の除算できるけど?
424デフォルトの名無しさん
垢版 |
2021/04/23(金) 00:54:37.81ID:WdOS9cbk
みたいなエラーメッセージってなんやねん
そんな適当な情報で分かる訳ないやん
2021/04/23(金) 01:15:39.35ID:u+P4/XB4
numpy.ndarray

を見ると
んんだらアレイ
と読みがち
2021/04/23(金) 03:03:36.79ID:edw1EohB
>>420
自分で書いたコードを>>1に書いてあるサイトに張って
エラーメッセージをちゃんと全文書け

少なくともサンプルコードと書かれてる変更だけ加えてもエラーでないし
numpyはリスト同士の除算もできるし、実際のコード見ないとエスパーじゃない限り分からん
2021/04/23(金) 07:14:01.60ID:M88Kc634
>>425
N-Dimension-Array、N次配列の略じゃないか
428デフォルトの名無しさん
垢版 |
2021/04/23(金) 10:32:16.79ID:6lQGggig
>>424
本当に申し訳ないが、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から増えていくとグラフはこのように移動していきます、ってのを表示させればいいんだけど、配列っぽくしてみたら詰んだ
どうせ課題の提出期限も切れたしこれを機にゆっくり勉強してみます。
2021/04/23(金) 11:04:30.97ID:6A70qFGF
(yys - yy_2) は要素数7でlgrは要素数6
形が違うので割り算できないよってこと
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
2021/04/23(金) 14:06:41.92ID:lnQ2Wtpu
>>419
詰んだじゃなくて考えろよ
分からないなら調べろ
何しに大学行ってんだよ
2021/04/23(金) 21:14:39.28ID:Sg24bGS7
大卒らしいのに小卒みたいな奴っておるやん
そういう人種だと思っていただきたい
434デフォルトの名無しさん
垢版 |
2021/04/23(金) 23:28:58.65ID:dmYMi7DT
どうでもいいけどpython全然わからんて人向けの課題じゃない気が
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

いまこんな感じなんですが、これで大丈夫だと思いますか?
一応手元で偽装ファイルとか色々投げて、問題ないっぽい雰囲気ではあるのですが…
また、もっと簡単な方法があれば教えてください
438デフォルトの名無しさん
垢版 |
2021/04/24(土) 21:49:17.04ID:PnhVzGZB
python2のvirtualenv入れようと思って
python -m pip install virtualenv
ってやったら、複数の関連パッケージの処理をやったあとで
エラーで終了したんですが、こういう場合、そこまでに
動いた処理は元に戻る?それとも中途半端に放置される?
このあとで別の方法でパッケージインストールしたら、
最初に失敗したときの処理は中途半端な状態で残ることに
なるんじゃないかと思って気になってます。

今までこういう場合はもうよくわからないのでOSごと
再インストールしてたんですが、どなたか知ってる方が
いたら教えてください
2021/04/24(土) 22:00:35.42ID:h9VLhHSB
PIL.Imageで開けるか開けないか
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で十分だろう
2021/04/25(日) 01:16:14.07ID:FsB+Ww+M
画像として読み込める偽装データもないっけ
保持するつもりなら万全を期して読み込んで保存し直すくらいまでしたほうがいいかも
2021/04/25(日) 09:46:28.78ID:0VwYrDNE
>>441
あるよ
画像データの末尾以降を使ってるパターンは知ってる
2021/04/25(日) 11:58:20.51ID:1lzxcbvy
画像ファイルだが読まれない部分に割れ物の断片を入れられてる…みたいな偽装と
ヘッダは画像ファイルだが中身は画像ではないという偽装は
ちょっと別の話かと
2021/04/25(日) 12:35:46.60ID:FsB+Ww+M
別だから別に言ってるんだが
何が問題なん?
2021/04/25(日) 13:44:38.33ID:J5zsPVXp
pandasでデータフレームを作成するときに

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)を使えばよい。
447デフォルトの名無しさん
垢版 |
2021/04/25(日) 15:05:09.87ID:w/gigbrd
>>442
バイナリ連結ですよね
これって判定と連結部の削除ってできるんですか?
2021/04/25(日) 15:22:02.13ID:0VwYrDNE
できないなら取り出すアプリつくれないだろJK
449デフォルトの名無しさん
垢版 |
2021/04/25(日) 15:43:50.39ID:stjG7043
判定・削除というからには、鍵を持たない第三者が偽装かどうかを見抜けるかという話でしょ
2021/04/25(日) 15:52:52.45ID:FsB+Ww+M
いちいち妙な判定しようとせずに
画像としてメモリに展開して
再保存すりゃいいだけじゃね
ついでに圧縮率も変えられるし
2021/04/25(日) 15:53:07.93ID:piDGyGmF
コンテナ利用するときにvirtualenvs併用するメリットってなんでしょう?
コンテナ内部で更にvirtualenvs使うのは二度手間なように感じています。
2021/04/25(日) 15:59:25.19ID:KtTIhOup
言われてみりゃそうだな
453デフォルトの名無しさん
垢版 |
2021/04/25(日) 16:25:49.08ID:yZn73yTF
>>451
デプロイ先でvenv使ってるなら、それに近い環境で動作を検証できる
何かvenv下だと挙動が変わるモジュールとかあるし
454デフォルトの名無しさん
垢版 |
2021/04/25(日) 16:32:15.73ID:Uff2BRsY
>>445

https://note.nkmk.me/python-pandas-reindex/
2021/04/25(日) 17:38:00.13ID:OYNPlpSe
コンテナで仮想環境使うのはアンチパターンやぞ
2021/04/25(日) 18:34:24.22ID:Fk25aiPG
>>454
ありがとうございます。
457デフォルトの名無しさん
垢版 |
2021/04/25(日) 19:16:36.74ID:sodTi8GH
>>445
一旦作ったやつを並び替える、でもいいのなら、
df2 = df[['C', 'A', 'B']]
でdf2はC A Bの順にできるよ。
2021/04/25(日) 22:09:06.87ID:piDGyGmF
>>453
なるほど、もともとvenv使っててその後コンテナ利用に切り替えたパターンを想定とかですかね
今勉強というか適当にdocker調べつつ触ってるんですが、venv使ってるようなのもあってこれ何のためって不思議でした

>>455
ありがとうございます
ネットの情報多くてありがたいんですが玉石混淆だったり古かったりで逆に混乱しますな
459デフォルトの名無しさん
垢版 |
2021/04/28(水) 09:48:30.09ID:IxwcvE22
どうしてPython使ってる人ってswitch-caseなくても我慢できるんですか?
それしか知らないから不満を持ちようがないとか?
2021/04/28(水) 09:58:49.52ID:Lpz9/b/L
我慢できるとかじゃなく、ないものはしょうがないだろ。
それがどうしても嫌ならpythonを使わなければいい。
なんらかの理由でpythonを使う(使わなければいけない)のなら、
他の人も同様でしょ。
2021/04/28(水) 10:21:09.69ID:hp9xP/+6
似たような処理は代入演算子とif,elif,elseでできるって書いてあったよ
462デフォルトの名無しさん
垢版 |
2021/04/28(水) 10:57:42.68ID:C/XDgQGy
パターンマッチングも結局、式ではなく文なんだな。
2021/04/28(水) 11:11:25.75ID:3EuQZ3Ew
pythonみたいな構造体がきっちりしてるわけでもない言語なら
そこまでパターンマッチ必要にはならんだろ。
構造体からデータ取り出すのがそこまで面倒な言語でもない。
2021/04/28(水) 11:38:24.28ID:ewi3Y8j6
>>461
switch(a){ ... } みたいなやつなら良いけど switch(a + 1){ … } とかだと一時変数を作るか各条件式にa + 1とか書くはめになるからねぇ
switch文があるに越したことはないと思う
2021/04/28(水) 12:33:15.42ID:Je4EzdV5
構造体に使うイメージはなかったな
昨今のtypingの流儀に乗っかったんだと思う
2021/04/28(水) 13:19:32.28ID:hp9xP/+6
>>464
そうだね…
a := a + 1も便利なんだけどね…
2021/04/28(水) 17:02:16.33ID:EhiFgjxN
文増えてくと混沌としてくるから今のPythonの流れはちょっとどうなのかなと思うところはある
2021/04/28(水) 17:57:38.85ID:tBbflF5J
python3.10か3.11でパターンマッチ来るんだっけ
469デフォルトの名無しさん
垢版 |
2021/04/28(水) 21:15:45.49ID:kjLpBedQ
>>459
それ一つ無い程度で使う使わないの瀬戸際にはならない
そもそもswitch-caseで分岐する必要が出てきた時点でロジック設計を失敗している事が多い
ポリモーフィズムを活用するべき
2021/04/28(水) 21:23:17.33ID:jo1UoyuU
switch-caseって、条件が等差数列となるときはjmp先を演算できるよねとできた
実にCらしい構文で、そういうことをしない言語にとっては実装が面倒なだけの構文かと
2021/04/28(水) 21:27:42.21ID:7X7PmWB6
if文でやると汚くなる言語がswitchに逃げたとみたらどう
2021/04/28(水) 21:46:19.33ID:HN4XQcog
>>459
我慢できなくなったから機能追加するんだよ

いままで散々switchなんて不要って言って来たから
取り繕うための言い訳を並べ立てながらだけどね
2021/04/28(水) 22:03:43.50ID:lX6x7Umv
最近C#からswitch実質なくなったと聞いたぞ
中で
2021/04/28(水) 22:04:33.39ID:lX6x7Umv
中で条件式とか使えるようになって実質IFの羅列になったとか
2021/04/28(水) 22:10:35.31ID:RJLrCSIQ
>>472
パーサーを置き換えるのが面倒くさかったからだと思ってる
2021/04/29(木) 17:24:45.07ID:hj4NO6UY
>>459
Pythonユーザーには2タイプ居る
・それしか知らない奴
・色々な言語使ってきて、なんらかの良さを感じるからPython使ってる奴
どんな言語にも多少の欠点はあるもんさ
2021/04/29(木) 18:11:22.33ID:8Iq2BU/P
リテラルな値でのswitchならenumでシンプルにかけるしな
2021/04/29(木) 20:52:09.39ID:naaqk/s1
ライブラリ使ってるとたまに
hoge(option=DEFAULT_TYPE)
みたいな感じでオプションを設定できるのがあったと思うのですが
このDEFAULT_TYPEの部分は変数を定義した覚えもないのに使えてた気がします
どういう仕組みなのでしょうか
2021/04/29(木) 20:55:11.65ID:hj4NO6UY
from なんかのライブラリ import *
とかでその定数をimportしてると思うよ
2021/04/30(金) 09:28:09.56ID:MB7wv8yI
オブジェクト指向は全然分からないからクラスの定義は出来ない
でも関数だけで何とか出来ちゃうから有難いわ
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だけでいけた気がするのですが
記憶違いだったかもしれません
482デフォルトの名無しさん
垢版 |
2021/04/30(金) 15:52:58.65ID:4ngw0sc5
tkinterのdestroy()って親を殺せば子は見逃しても問題ない?
全部明示して殺す必要ありますか?
ガベージコレクションが頑張るから大丈夫なのかな
2021/04/30(金) 21:22:20.53ID:S74Hi/jw
親をdestroyすれば子供子孫すべてdestroyする
2021/04/30(金) 21:47:35.28ID:Xt8J6sgV
通報しませんでした
2021/04/30(金) 22:00:05.11ID:9cqxfo3+
def destroy(self):

for c in list(self.children.values()): c.destroy()

親は子供を殺すが孫は殺さない
子供が孫を殺す
2021/04/30(金) 22:10:04.55ID:lUzIA11U
殺すとか殺さないとか
物騒なスレですね
2021/04/30(金) 22:57:56.75ID:sx17ZQMm
gc働かないん?
488デフォルトの名無しさん
垢版 |
2021/05/01(土) 06:16:19.35ID:Ca2DZO3D
stack overflowの書き込みで、親が死ねば孤独になった子供はGCがやがて消す
消えるまでメモリには残る って書いてあった気がする
2021/05/01(土) 07:41:58.14ID:PUOqmJZW
>>483
>488だで

うちはtkinterじゃなくてWXつかってるが、>488だで
自分で子孫まるっとあぼんする関数つくって積んでる
490デフォルトの名無しさん
垢版 |
2021/05/01(土) 08:15:27.05ID:gyFQOP1a
>>477
そのswitchの代わりという使い方だと、PythonのEnumはいまいちですわ。
JavaのEnumがまさにそういう使い方ができるようになっている(Strategy/Stateパターン)。
2021/05/01(土) 10:02:13.72ID:qiYKVwJr
syntaxエラーをチェックするツールありますか?
2021/05/01(土) 12:52:24.80ID:R4IHrQy8
python -m py_compile ソースファイル
2021/05/01(土) 13:22:27.14ID:qiYKVwJr
>>492
ありがとうございました。
*.pyでソースを指定したら全部.pycが出来上がり、ノーエラーでした。
試しにwhileの:を削除してみたらSyntaxErrorの指摘が表示されました。
これで安心です。
494デフォルトの名無しさん
垢版 |
2021/05/01(土) 13:29:51.59ID:psDEcvhX
flake8とか使えば良くない…?
2021/05/01(土) 13:50:54.37ID:oZHy3HfC
うちはflake8とblack派だけど勉強になった
2021/05/01(土) 13:52:21.43ID:jntNu2g9
linterだと、実際動くかどうかまではわからないことが多いと思う

いくつかあるlinterの中では俺もflake8を使ってるわ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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