【まず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/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を使ってるわ
2021/05/01(土) 17:57:55.31ID:qiYKVwJr
PyQtで自動生成されるuiソースもflake8で結構色々でますね。
自分のソースは通信系なのでtry/except入れているのでsyntaxエラーさえも例外で通信リカバリーみたいになるので悩んでました。
498デフォルトの名無しさん
垢版 |
2021/05/01(土) 21:57:09.95ID:qfW/WcRP
>>496
Syntax Errorはちゃんとでるんでないかい?
一方で、こういう逆のケースはある。
globals()['tau'] = 6.283185
print(tau) # linterやIDEではエラーとでるけど、実際にはちゃんと動く
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だけ書きたいと思ったんですけどね
2021/05/02(日) 15:20:45.85ID:Eu1LZK3p
idx < len(a)でインデックスが範囲内にあることを確認するとか?
2021/05/02(日) 15:20:49.97ID:zAlV+S16
dictならそういうのあるけどlistはないな
len(list)で長さ確認してから取得するか、try-catchするしか無い
502デフォルトの名無しさん
垢版 |
2021/05/02(日) 20:42:49.07ID:x2TfprvW
if not a[3:]:
で 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]:
2021/05/03(月) 00:41:21.84ID:4Jcj15/I
>>502
スライス範囲を絞ってif not a[idx: idx + 1]とかにしたらより速くなりそう
505デフォルトの名無しさん
垢版 |
2021/05/03(月) 08:29:57.06ID:oY4C2yCE
いきなりStopIterationで止まるだけだから、長さ関係ないだろ。
普通に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になるやつが出たり出なかったりします
フォルダ名を短くして,画像名を最大まで長くした場合はエラーが出ません
何が原因で,どうすれば読めるようにできますか?
できればエラーキャッチしてその場で読めるようにしたい (フォルダ名のリネームはとりあえず置いておきたい)
2021/05/03(月) 09:25:40.83ID:YjR4A9Iz
>>506
フルパスが長すぎてpython内であふれてしまうのが原因
フルパスではなくショートパスを生成して、それでやりとりするようにすればとりま回避できるが
あまりに長いフルパスは非推奨なのでとりま置いておいたとしてもいつかは直せ
2021/05/03(月) 09:47:03.23ID:GN4IAf32
PythonじゃなくてWindowsのせい

多分これでしょう
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との相性が悪いっつーかショートパスが危険球っぽいんで
もうロングパスは受け付けないことにします。ありがとうございました
2021/05/03(月) 12:52:29.86ID:YjR4A9Iz
>>509
それには一部対応してるんでねーの

>>510
pyInstallerはパスの途中に半角スペースや全角文字あってもうまくいかないことがあるぞ
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
まあショートネームは避けたい
そもそも超ロングパスがあり得る環境だとショートパス化できない文字列がぶち込まれそうだし
長いのはエラー吐くか
コピー→リネーム→処理→置き換え たい
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/PMv139
windowsのロングパスは
ファイル造ったあとに自分でそのファイルにアクセス出来ないとか
削除も出来ないとかあほなことに巻き込まれる

>>516
stringio
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はタイムスタンプ等で最新のものだけ抽出する、といった使い方をしたいです。
2021/05/04(火) 14:46:49.13ID:7YaPXlVC
聞く限りだとfor name, value in data:とかで回して
out[name] = max(out[name], value)
みたいな感じで処理したら良さそうだけど
2021/05/04(火) 15:14:35.45ID:E49Bjnaf
df.groupby('name').max()
2021/05/04(火) 15:16:48.68ID:QySiaJ1m
>>519
ありがとうございます。
後出しで申し訳ないのですが、各データはvalue以外にも複数の属性値をもった辞書データになってます。
nameは抽出後は当然ユニークになりますが、抽出後もリストのままで並びも元の並びはキープしておきたいです。

SQLで言う、GROUP BYしてMAX関数適用するような感じの抽出方法はないかなと思いまして。
2021/05/04(火) 15:20:08.13ID:QySiaJ1m
>>520
あ、まさにそのイメージでした。ありがとうございます。

やはりdataFrame使わないと簡単には書けないのですね?言い換えるとdf使った方がはるかに簡単ということですかね。
2021/05/04(火) 15:35:54.90ID:LRawq6Xg
一応pythonの組み込みライブラリにもgroupbyってあったよね
pandasでやるのが一番手っ取り早いと思うけど
2021/05/04(火) 16:05:52.03ID:Z3Fw33AT
Ruby なら、

input = [ {'name': 'a', 'value': 100}, {'name': 'c', 'value': 150}, {'name': 'a', 'value': 200} ]

result = input.group_by{ |hash| hash[ :name ] }.map do |ary|
ary[ 1 ].max_by{ |hash| hash[ :value ] }
end

p result #=> [{:name=>"a", :value=>200}, {:name=>"c", :value=>150}]
525デフォルトの名無しさん
垢版 |
2021/05/04(火) 16:52:55.89ID:sM9M0m2z
>>524
グロ
2021/05/04(火) 16:53:31.46ID:plXKAz40
おっルビおじw
527デフォルトの名無しさん
垢版 |
2021/05/04(火) 17:23:42.38ID:5sA+/wAg
>>518
愚直に内包表記
[
{‘name’:name, ‘value’:max(record[‘value’] for record in data if record[‘name’]==name)}
for name in set(r[‘name’] for r in data)
]

ただしnameの並びは崩れる
528デフォルトの名無しさん
垢版 |
2021/05/04(火) 19:52:15.91ID:ns0mTqm6
pathlib.iterdir()の読み込み順ってどういう仕組みで制御されてるのかな
windowsは昇順001>0001なんだけど、natsortとかos_sortedでも0001>001になるのが
pathlibのジェネレーターはOSソートに追従してる気がする…偶然?
529デフォルトの名無しさん
垢版 |
2021/05/05(水) 08:36:34.57ID:/UG/+rZL
ちょっと試してみたんだけど

01.txt
1.txt
2.txt
0010.txt
a.a.01.txt
a.a001.txt

explolerの名前の昇順でこう表示されるディレクトリを
同じ並びで出力するソート形式はないような気がする
natsortもos_sortedも効かないw
すごいなwindowsどうなってんだ
530デフォルトの名無しさん
垢版 |
2021/05/05(水) 08:55:12.40ID:XnkETAr1
[natsorted[数字だけのファイル], sorted[文字あり]]

うーん……
2021/05/05(水) 09:20:35.28ID:szdX8X2R
windowsのファイル名ソートアルゴリズムが謎
2021/05/05(水) 09:30:37.39ID:wUp61E7s
その謎、前からあるやで
2021/05/05(水) 10:06:42.44ID:0XQqNpVi
Win32APIのStrCmpLogicalW
534デフォルトの名無しさん
垢版 |
2021/05/05(水) 11:25:44.55ID:/UG/+rZL
>>533
https://i.imgur.com/nY9LmRN.png
こうかー. 難しかった
たいへん勉強になりました
2021/05/05(水) 11:29:21.21ID:9+xzMV/Q
うわぁ…
2021/05/05(水) 12:30:31.81ID:gzgZcJa9
OSリリースごとに結果が変わる可能性があるので正規化に使用してはいけませんとか注意書きが書あるAPI
2021/05/05(水) 13:00:05.01ID:kj6fybeU
>>531
https://web.archive.org/web/19990224184613/http://www.asahi-net.or.jp/~ez3k-msym/comp/acccoll.htm
2021/05/05(水) 14:28:38.34ID:wUp61E7s
>>536
XP→10で変わって戸惑ったきおく
2021/05/05(水) 15:35:37.41ID:dvz+9Kky
定期的にこの話題でるな
2021/05/05(水) 16:25:24.24ID:7m6bX2W0
>>534
__le__, __ge__, __ne__がそれぞれ1, -1, 0と比較してるのって間違ってない?
使われなくて影響ないのかもだけど

functoolsのcmp_to_keyを使えば
sorted(paths, key=cmp_to_key(win_cmp))で済むよ

同じAPI使ってるのにソート結果が違うのは
os_sortedのバグだと思うのでissueあげとくといいかも
2021/05/05(水) 18:38:45.20ID:sGblmxZ3
from functools import cmp_to_key
import ctyps

def win_sort(obj):
__def win_cmp(s1, s2):
____shlw = ctypes.windll.LoadLibrary("SHLWAPI.dll")
____return shlw.StrCmpLogicalW(str(s1), str(s2))
__return sorted(obj, key=cmp_to_key(win_cmp))

なるほど
2021/05/05(水) 19:54:48.41ID:MgJEgPkj
>>534
cmp_to_keyと同じことしてる
それはともかく
key=absとkey=cmp_to_key(とでは
ぜんぜん違う形式
内部的にやってることに馴染むのが難しい
543デフォルトの名無しさん
垢版 |
2021/05/06(木) 03:36:21.23ID:Za2B/gSh
tkinterでMVCに挑戦してるんですが
例えばapp.verとかicon用base64文字列とかの定数?はどこに書くんでしょうか

アプリケーション(root)固有の情報は全部Cに書いてる人もいれば
非画像データはM、画像関係はVに置いてる人もいて
どう考えたらいいのか教えてください
544デフォルトの名無しさん
垢版 |
2021/05/06(木) 10:33:21.16ID:84/gBo5v
>>540
母胎osの仕様が変わるんだから手に負えない
545デフォルトの名無しさん
垢版 |
2021/05/06(木) 10:34:55.21ID:84/gBo5v
>>543
MでもVでもCでもない
リソース領域に描いておいてロード
546デフォルトの名無しさん
垢版 |
2021/05/06(木) 19:28:22.80ID:yKLn4IC5
tkinterで応答なしを回避するには
別スレッドに処理投げるしかない?

できればthreading使いたくない
2021/05/06(木) 19:30:05.47ID:1p3Rvf0Y
Winならレジストリいじってタイムアウトと判断する秒数を変える
2021/05/06(木) 20:30:14.34ID:v54vsLS/
import pandas as pd
df = pd.DataFrame([['ia','ib','ic'],['id','ie','if']],columns=['a','b','c'])
if not df==None:
_print(df)

ってやると
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
というエラーが出ましたが
仮にdf=Noneだった場合にdf.all()とかやると今度はNoneはallを持ってません的なエラーがでます
こういうときってどう対応すればよいでしょうか
2021/05/06(木) 20:33:45.39ID:v54vsLS/
ちなみに今は
if not str(df)=='None':
ってやってます
2021/05/06(木) 20:54:15.24ID:yh3xJpCx
>>548
そもそもNone判定したい場合は==じゃなくてisを使う
if df is Not None:
みたいな書き方にする必要がある

で、注意点として
df = pd.DataFrame()
みたいに、空のデータフレームで初期化してる場合はNoneではない(is Noneで判定してもFalseで返ってくる)
空かどうかを判定したい場合はemptyを使う
2021/05/06(木) 20:54:36.39ID:PCWSPh5c
if df is not None:
に変える

理屈は込み入っているので他の人にお任せする
2021/05/06(木) 20:59:03.00ID:yh3xJpCx
間違ってNotが大文字になってた……notが正しい
2021/05/06(木) 21:14:18.42ID:v54vsLS/
>>550,551
なるほど isでしたか
さっそく書き換えてみたらうまくいきました
ありがとうございます
554515
垢版 |
2021/05/06(木) 22:01:24.30ID:DEG1F9Nj
>>506
pythonの初回インストール時に以下の英文が表示されるので
この英文部分をクリック

Disable path length limit
Changes your machine configuration to allow programs,including Python,
to bypass the 260 character”MAX_PATH” limitation.

pythonのアップデートもかねて
今使ってるバージョンの最新版インストーラーを公式からダウンロードして実行し
最後のダイアログに上の英文が表示されたらクリックしてみて
555デフォルトの名無しさん
垢版 |
2021/05/07(金) 00:28:15.35ID:TdDivYCp
>>554
配布用なのでロングパスは許さんマンにしました…
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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