1 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 22:25:08.74 ID:/hGmbW/Z.net] 当スレに★Python以外のプログラミング言語での回答類を書くべからず★ 派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。 「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。 このスレッドは「お勉強」スレのほうには書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。 ★エラーを解決したい場合★は、 表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、 実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。 Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★ 【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、 プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。 ttps://techiedelight.com/compiler/ Run Code機能あり。 ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ◇Python公式◇ www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi 〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その56 mevius.5ch.net/test/read.cgi/tech/1640536690/ 次スレたては >>985 あたりが挑戦する。 ### END OF TEMPLATE ###
762 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 16:31:40 ID:Iy538lTc.net] >>733 >class A(text:str, value:int) 今ってこんな定義方法があるの?
763 名前:デフォルトの名無しさん [2022/08/07(日) 17:18:29.82 ID:PNBshUzP.net] __init__か? クラスBでオーバーライドしてなきゃAの引数が表示される
764 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 18:29:09.72 ID:J7BfdoVn.net] pipよりもpypl
765 名前:デフォルトの名無しさん [2022/08/07(日) 18:37:37 ID:qancDJyG.net] 素で間違えた いまこうです Bじゃなくて継承元のAの引数が見たいです https://imgur.com/PkQnHo3.png vscodeはpylanceですね
766 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 18:41:34 ID:k9D8AutH.net] え・・・・・
767 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 18:50:58.51 ID:ZjeWku4d.net] Bの__init__を消そう
768 名前:デフォルトの名無しさん [2022/08/07(日) 19:08:00.18 ID:qancDJyG.net] >>740 おーありがとう そういうことk
769 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 21:07:17.99 ID:uhtWaMBb.net] >>710 specファイルに、 pathex=['C:\........\site-packages\\cv2'] (パスは環境次第) とcv2のフルパス入れてますか?
770 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 10:00:21.56 ID:RWKMU7OX.net] numpy配列をopencvで扱う画像にする時って cv2.imdecodeとnumpy.reshapeの二通りのやり方があるみたいだけどどう使い分けるんです?
771 名前:毛の生えたブリーフ [2022/08/08(月) 10:56:42.38 ID:nUMoT9LF.net] 2003年 当時荒れていたdelphiスレッドの緊急避難先で作った「くだすれDelphi 」 ヘッダーを各言語用に改変してPythonのスレッドが出来ていたのか・・・・ あれから20年近く・・・俺も還暦になるわけだ。 プログラム板にきたのは13年ぶり。 いつのまにか2chが5chになって ひろゆきがメジャーになってた。
772 名前:デフォルトの名無しさん [2022/08/08(月) 10:57:33.77 ID:nUMoT9LF.net] いやん誤爆してごめんくさい
773 名前:デフォルトの名無しさん [2022/08/08(月) 11:17:06.38 ID:AUtZ1mrn.net] >>742 はい。specファイルの pathx に入力する方法も試したのですが、同じエラーです。 その後色々組み合わせをためしているのですが、3.10系では成功したことがありません。 3.8, 3.9系では opencv のバージョン次第で正常に動作します。 あと>>711 が教えてくださった nuitka ですが、アンチウィルスが過剰に反応するので諦めました。
774 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 16:30:56.98 ID:ej7caoJh.net] ショートサーキットについてお聞きしたいです 本によるとandやorの両側には関数も取ることができ、 1 < 2 and print('right') 1 > 2 or print('right') をインタラクティブシェルで実行すると それぞれ'right'が表示されるみたいですが、釈然としません そういうものだと覚えておくしかないでしょうか?
775 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 16:37:01.79 ID:GNjKAHJ2.net] なにがわからないの? x and y === if x then y else x x or y === if x then x else y
776 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 17:05:06 ID:Rerux/uK.net] >>747 それ True and print('right') False or print('right') と同じで両方共に print('right') の値を見ないと全体の値は確定しないから 'right' が表示されるのは当たり前 1 > 2 and print('right') ってやればどうなる?
777 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 17:15:18.30 ID:w9crSB+N.net] andは左側が真の場合、右側を評価する andは左側が偽の場合、右側を評価しない orは左側が真の場合、右側を評価しない orは左側が偽の場合、右側を評価する 左側だけで真か偽か判明してる場合は右側を評価しない
778 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 18:30:45.48 ID:VXkV51Mv.net] >>746 そうですね。書いてありましたね。 あとやったとすれば、 a.datas += [('習済みデータ.xml','
779 名前:.\\習済みデータ.xml', 'DATA'),] ※学習済みデータは「haarcascade_frontalface_default.xml」等 を記述したことと、1つのファイルにしたときに、Temporaryの実行パスを取得を工夫したことくらい… あ、できたファイルを実行時にウィルスとして検知されるので、 pyinstallerの中のファイルの再コンパイルも必要です。 [] [ここ壊れてます]
780 名前:747 mailto:sage [2022/08/08(月) 19:28:04.38 ID:ej7caoJh.net] >>748-750 ありがとうございます すいません、聞き方が悪かったです ショートサーキットの機構については分かります bool型を返すわけではないprint()関数が右端に「使える」ことが不可解です print()は確かNoneを返す関数だったはず
781 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 19:40:14.54 ID:Rerux/uK.net] >>752 None を bool として評価すると False になる
782 名前:デフォルトの名無しさん [2022/08/08(月) 19:41:18.38 ID:wsYAfPSE.net] >>752 NoneはFalse bool()で非ブール型もブールに変換した上で解釈される
783 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 20:06:39.11 ID:UzajzKaJ.net] 右辺はboolとしてなんて評価されません 適当なことを言うな https://wandbox.org/permlink/gk6gdiVzpzvoPWfI
784 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 20:15:13.65 ID:EDIALeRU.net] >>755 評価時に__bool__が呼ばれます。if とかで使うと出力される。
785 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 20:33:20.93 ID:EDIALeRU.net] 左だとすぐに呼ばれるのに対して違うんですね理解しました
786 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 21:21:18.46 ID:icSMNlYR.net] 文字列の置換って translate()とreplace()のいいとこ取りの置換方法ないの? translate()は "aa"→"b" にできないんだよね? あと AAA = kansuu(AAA) BBB = kansuu(BBB) CCC = kansuu(CCC) DDD = kansuu(DDD) みたいな感じになってるときって for文で入れていく以外思いつかないんだけど、他に見やすい書き方あるかな?
787 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 22:27:42.98 ID:GdyVfCQX.net] >>758 文字列をmappingベースで置換したいならflashtext使うといいかも 2つ目のはAAA, BBB, CCC, DDDをコレクション(dict, list, tuple等)にする
788 名前:デフォルトの名無しさん [2022/08/09(火) 11:17:14.43 ID:6xBGELHM.net] フォルダパスとファイル名とURLを書くと画像を保存してくるコードを書いたんだけど https://techiedelight.com/compiler/?BQkA エラーの対処はわかったんだけど、もっと別の書き方があるのではと思ってしまう 他の人はこれをどう書きますか?
789 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 13:25:52.34 ID:804xd0t9.net] raw文字列
790 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 14:13:10.80 ID:6cdAV71K.net] バックスラッシュの代わりに、スラッシュを使う でもいい
791 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 14:27:14.68 ID:reKZbZGW.net] raw文字列、joinpath、with_suffix
792 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 16:46:37.99 ID:904t2Z05.net] pathlib一択でしょうね
793 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 17:34:17.89 ID:VX/MyXfz.net] HTTPErrorやIOErrorのハンドリングもやったほうがいいよ
794 名前:デフォルトの名無しさん [2022/08/09(火) 17:48:28.39 ID:/U/bpI39.net] 外部からの入力系は全部 try: req except: クソ するな俺は。ユーザーは信用しない あとダウンロード系も try: down except: 失敗 する。どんなわけわからんエラーくるかしらんし
795 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 18:07:25.22 ID:RasYFqXo.net] 外部とのやり取りは一筋縄ではいかないからねえ ついでにリトライも入れておきたい requestsには頼らずビルトインで頑張るw
796 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 18:28:07.98 ID:Lt/MnBA
] [ここ壊れてます]
797 名前:v.net mailto: >>766 それ普通じゃね? [] [ここ壊れてます]
798 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 21:17:15.16 ID:DxAePLof.net] わざわざtryしなくても例外が起きると止まるっしょ
799 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 22:15:13.78 ID:v2aJaQdL.net] わざわざブレーキつけなくても事故れば止まるっしょ
800 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 23:22:34.01 ID:xxgft6hm.net] >>760 Windows で、path = "C:\a\b" みたいに、\ を使わなければならないの? Ruby では、 path = "C:/Users/Owner/Documents/a" みたいに、/ を使うけど
801 名前:デフォルトの名無しさん [2022/08/09(火) 23:25:51.13 ID:KqAyUORM.net] >>771 前半、バックスラッシュを使わなくてもアクセスできる。 後半、スレチ。いちいち書くな。
802 名前:デフォルトの名無しさん [2022/08/09(火) 23:34:41.82 ID:oM0lzHLp.net] 合わせてバックストレッチ。
803 名前:747 mailto:sage [2022/08/09(火) 23:46:35.97 ID:8UDvOyKH.net] レスが遅くなってすいません 答えてくれた方ありがとうございました ああいった書き方もあるんだと頭の片隅に留めておきます
804 名前:デフォルトの名無しさん [2022/08/10(水) 00:02:07.83 ID:DjE5xMJT.net] >>769 普通はエラー処理系にraiseするからtry節置くと思うが
805 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 02:29:00.47 ID:kx7L/9BB.net] なにが普通かは人による
806 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 03:50:21.12 ID:obfeaPUq.net] なぜこの関数が作られたのかを考えながらプログラム書くとすっきりする
807 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 10:26:29.49 ID:rR8/AFmc.net] Enum 列挙型という概念を初めて知ったが 使い所がよくわからない
808 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 12:53:32.14 ID:vnHVeG1e.net] 関数をローカル変数に代入するメリットって何でしょうか?
809 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 13:19:15.14 ID:8RUvvZbB.net] 何度も同じ計算をしないで結果だけ繰り返し使える
810 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 13:33:33.79 ID:bGy3yklD.net] 場合によるけど、処理前半でローカル変数に関数を代入しておくことで、処理後半の分岐が消えて見通しが良くなる可能性はあるかも。 何らかの理由でリネームしたかったとか?
811 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 15:00:50.94 ID:vnHVeG1e.net] ありがとうございます
812 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 15:59:42.31 ID:WlLD55gQ.net] >>779 同じコードで呼び出す関数だけ違うパターンって結構あるから ソートとか
813 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 17:43:12.15 ID:YLnkT8Qt.net] >>779 ループ内で毎回foo.bar()するよりも ループの外でbar = foo.barして ループ内ではbar()だけにすると微妙に速くなる
814 名前:デフォルトの名無しさん [2022/08/10(水) 21:48:18.68 ID:5JgNVH0W.net] かけるかな
815 名前:デフォルトの名無しさん [2022/08/11(木) 07:13:22.60 ID:HPSk7Pik.net] https://i.imgur.com/FBcOaIq.png 質問です。WindowsでColabでやってます。 1024×768のサイズの画像のみを収集したいのですが、 違うサイズの画像が入ってきます。どうすればいいですか?
816 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 07:56:07.13 ID:X31RE6bn.net] >>786 設定したfiltersがcrawlに設定されていない google_crawler.crawl(keyword='流星', filters=filters, max_num=10)
817 名前:101 mailto:sage [2022/08/11(木) 09:45:20.53 ID:fCiqpa8j.net] 英語って本当にプログラムに適してるのか? isspace() って何かと思ったらis spaceかよ 空白ないと判別しにくいのはプログラミングにおいてどうかと思うわ
818 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 10:00:41.98 ID:nadsErGw.net] キャメルケースとかスネークケース使えよ
819 名前:デフォルトの名無しさん [2022/08/11(木) 10:13:40.52 ID:ECrQVbq4.net] atoi
820 名前:デフォルトの名無しさん [2022/08/11(木) 11:12:03.43 ID:m7iYSaV1.net] >>788 少なくともあんたはプログラムに向いてないな
821 名前:デフォルトの名無しさん [2022/08/11(木) 12:26:10.60 ID:fKEJQx+N.net] https://i.imgur.com/HJTruLr.png
822 名前:>>787 ありがとうございます。早速、記入してみたのですが、 画像が収集できなくなりました! AssertionError となりましたが、どうすればいいですか? [] [ここ壊れてます]
823 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 12:46:20.99 ID:7cUH/Z7I.net] ×(かける)じゃなくて x(エックス)じゃねーの? =1024x768 てか、コードはスクショじゃなくてコピペしてくれ
824 名前:デフォルトの名無しさん [2022/08/11(木) 13:47:35.08 ID:fKEJQx+N.net] >>793 ありがとうございます。早速、修正してみたのですが、 TypeError となりました!どうすればいいですか? コードのコピペ↓ from icrawler.builtin import GoogleImageCrawler google_crawler = GoogleImageCrawler(storage={'root_dir': '流星フォルダ'}) filters = dict(size='=1024x768') google_crawler.crawl(keyword='流星', filters=filters, max_num=10)
825 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 13:58:15.94 ID:7cUH/Z7I.net] エラーもコピペしてくれよ...
826 名前:デフォルトの名無しさん [2022/08/11(木) 14:07:01.78 ID:fKEJQx+N.net] >>795 このようなエラーとなっています。 エラー↓ Exception in thread parser-001: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 926, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "/usr/local/lib/python3.7/dist-packages/icrawler/parser.py", line 104, in worker_exec for task in self.parse(response, **kwargs): TypeError: 'NoneType' object is not iterable
827 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 15:00:05.18 ID:7cUH/Z7I.net] >>796 バグかも... https://github.com/hellock/icrawler/issues/107
828 名前:デフォルトの名無しさん [2022/08/11(木) 15:15:10.72 ID:fKEJQx+N.net] >>797 バグですか...ありがとうございます。 他のコード、1024×768のサイズの画像のみを収集するには、 どうすればいいですか?
829 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 15:27:49.52 ID:JwgkCgjA.net] めちゃ無駄だけど1024x768以外の画像は捨てちゃうぐらいしか思いつかん...
830 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 16:47:42.06 ID:X31RE6bn.net] >>798 できました、min_sizeとmax_sizeも指定する必要があるみたいです Python3.10でやりました、TypeErrorにはなりませんでした google_crawler = GoogleImageCrawler(storage={'root_dir': '流星フォルダ'}) filters = dict(size='=1024x768') google_crawler.crawl(keyword='流星', filters=filters, max_num=10, min_size=(1024, 768), max_size=(1024, 768))
831 名前:デフォルトの名無しさん [2022/08/11(木) 18:48:40.17 ID:fKEJQx+N.net] >>800 ありがとうございます。早速、試してみましたが、 バージョン違いのためかNameError となりました。 現在、Python 3.9.12 のバージョンなのですが、 ColabでPython3.10にするにはどうすればいいですか?
832 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 18:56:22.30 ID:X31RE6bn.net] エラーもコピペしてくれよ...
833 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 19:26:39.81 ID:L6VcpDZr.net] バージョン違いって断定してるんだからそれでいいだろ 他の可能性を検討しようとするなよ
834 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] そんな能力あるのになんでColabのバージョンは変えられないの?
835 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] >>801 Python 3.9.7が残っていたからicrawlerインストールして>>800 実行したら 問題無くできたのでPython3.9.12でもできるハズ Colabが悪いのではないでしょうか?
836 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] windowsの3.9.13でも問題ないな ちゃんとgoogleの検索結果取得できてないか、htmlパースに使ってるbeautifulsoup4かlxmlがおかしいかかな
837 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 20:01:15.15 ID:X31RE6bn.net] >>801 まさかだけどNameErrorって、NameError: name 'GoogleImageCrawler' is not defined じゃないよね? >>800 の前にfrom icrawler.builtin import GoogleImageCrawler してるよね?
838 名前:デフォルトの名無しさん [2022/08/11(木) 20:18:34.40 ID:fKEJQx+N.net] >>807 ありがとうございます。早速、試してみましたが、 見事に解決しました。 >>800 改めてありがとうございます。 お陰さまで、1024×768のサイズの画像のみを収集することができるようになりました。
839 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 20:24:18.19 ID:7cUH/Z7I.net] >>807 せめて>>794 ぐらいは見てから書きなよ... まあエラーのコピペ待ちでいいかと
840 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 20:25:02.29 ID:7cUH/Z7I.net] >>808 えっ、まじで>>807 だったの?...
841 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 05:55:29.63 ID:vrgQH6RZ.net] (超初心者用
842 名前:) [] [ここ壊れてます]
843 名前:デフォルトの名無しさん [[ここ壊れてます] .net] jupyternotebookでセル内のコードが長くなるため, defで定義した関数を同一ディレクトリ内のmy_func.pyに保存し メインのコードmain.py 内でimportすることにしました. my_func.pyに保存した関数内では,numpyを使っているのですが,numpyが認識されません. main.py でnumpyをインポートしていますが,その効果をmy_func.py内に待避した関数に及ばせるためには どうすればよいでしょうか.
844 名前:デフォルトの名無しさん [2022/08/12(金) 11:54:38.42 ID:V16IFZ6j.net] my_func.pyでnumpyをインポート
845 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 13:39:22.16 ID:f9Pn84YJ.net] >>813 ありがとうございます。早速、記入してみたのですが、 my_func.pyでnumpyが認識されました。 main.py内にインポートしているnumpyどうすればいいですか?
846 名前:デフォルトの名無しさん [2022/08/12(金) 14:10:01.68 ID:AKRIAlbQ.net] main.pyでnumpyを使っていなければいらない
847 名前:デフォルトの名無しさん [2022/08/12(金) 15:01:37.64 ID:P/MIlql5.net] そのライブラリを直接呼ぶコードがあるファイル毎にimportする。直接呼ばないなら不要 main.py __import funcs __funcs.test() funcs.py __import numpy __def test(): ____print(numpy.random.randint(0, 10))
848 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 15:14:18.69 ID:f9Pn84YJ.net] >>815 >>816 ありがとうございます。早速、試してみましたが、 見事に解決しました。
849 名前:101 mailto:sage [2022/08/12(金) 16:36:29.89 ID:SBMPsz73.net] 普通、FunctionalをFucって略すか? 幻塔というゲームのテスト用のサーバーネームが JP Fuc Test Server だったらしく炎上してた
850 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 03:28:02.47 ID:nuG2c1c/.net] mypyでエラーにならないように pathlib.Path の型を示したいんだが、これはどうすりゃいいのかね? type()でチェックすると <class 'pathlib.WindowsPath'> となるんだが pathlib.WindowsPath と指定してもエラー出るし
851 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 03:32:04.91 ID:nuG2c1c/.net] 動的な基底クラスはmypyでチェックできないって言ってる人がいたわ そういうことなのか?
852 名前:デフォルトの名無しさん [2022/08/13(土) 03:54:53.99 ID:xLCZiP8v.net] pylanceだとpathlib.Pathでいけるけどmypyあかんか?
853 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 07:30:43.65 ID:nuG2c1c/.net] >>821 お、いけたわ さんくす
854 名前:デフォルトの名無しさん [2022/08/14(日) 04:23:42.79 ID:aYzApZcG.net] pythonでcuda使いたいが、お勧めのサイトありますか? ちなみにcudaは3090とかの方がいいですか?
855 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] にほんごでおk
856 名前:デフォルトの名無しさん [2022/08/14(日) 10:12:56.20 ID:A6qxvdf0.net] [python cuda]🔍
857 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 11:25:05.75 ID:Gnb69e0i.net] Noneの比較はis を使うべきで==を使うべき"でない"なんて記述を見かけるのですが、 if dictData.get('key') == 'hogehoge': __echo 'OK' 例として辞書のgetメソッドのようにキーが無ければNoneを返すような場合で上記のような判定もすべき"でない"のでしょうか? この場合dictData.get('key', '')のように、キーが見つからない場合の値を明示的に書くべき? (ただdict.get()のようにコントロールできないのもありますよね)
858 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 12:06:39.34 ID:KzxSNF0d.net] if hoge is None: こんな風に定数Noneと比較する場合の話だよ
859 名前:デフォルトの名無しさん [2022/08/14(日) 12:18:23.17 ID:T9w5rPHY.net] Noneを==すると稀にNone==None ->Falseあるから避けよう。バグのもと。これはググれば解説あるから読んで で、普通は if dic.get('key') == 'foo': __func() だけでしょう。あればする、なければ終わり if dic.get('key') == 'foo': __func() else: __func_b() でもいいけど。 基本的にNoneやFalseを判定しにいかない。まずTrue判定をして、その反対をelse (if)で受ける ただまあNone / Falseだけを知りたい場合があって そのときは if dic.get('key') is None:
860 名前:__func() などと書く。英文として読みやすいからよい つか辞書から無い可能性あるkeyのgetは避けたい db検索的に書きたいならget使わずtry節書いてKeyError専用処理作ろう [] [ここ壊れてます]
861 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 12:29:39.79 ID:Gnb69e0i.net] >>827 ,828 なるほど、明示的にNoneであることの比較の場合はということですね。ありがとうございます。 >>828 さんの最後の件も承知しました。
862 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 12:34:40.20 ID:Gnb69e0i.net] >>828 あ、やっぱりすみません、最後のget使うべきでない理由って簡単に教えていただけますか? 今回、API等の応答で、辞書の目的のキーがあったりなかったりするような応答で、キーがあれば拾う、無ければ無視、という単純なものなのですが、それでもgetは使わないほうが良かったりしますか?