- 1 名前:デフォルトの名無しさん mailto:age [2019/10/16(水) 10:17:12.96 ID:dCHq3Ix4.net]
- 当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨 このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 ★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので ↓等のてきとうなソースコード用うpろだに貼ってきてください。 スクショをImgur等にうp といった 手抜き(クソ行為)禁止。 ttp://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう ◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と 実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。 ◇Python公式サイト◇ www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/ 〇前スレ〇 くだすれPython(超初心者用) その44【Ruby禁止】 mevius.5ch.net/test/read.cgi/tech/1563969768/
- 321 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 21:13:40.05 ID:OXWkeipl.net]
- >>306
その書き方で間違ってはないよ 渡されたlambdaのソースを確認したいなら import inspectしてprint(inspect.getsource(a))
- 322 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 21:40:31.09 ID:VwBWJhfV.net]
- https://github.com/AmbientDataInc/EnvSensorBleGw/blob/master/src/gw_RPi/env2ambientBS.py
これを動かしてみると、 NameError: name 'companyID' is not defined とエラーになってしまいます。 51行目からの関数「def send2ambient(dataRow):」の中の 52行目の if companyID == 'ffff': とif文がありますが、どこにもcompanyIDという変数は見当たらない気がします。 56行目〜59行目、52行目を削除して、53行目〜55行目のインデントを戻せば正常に動きました。 companyIDはどうやって取得するんでしょうか?
- 323 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 21:52:08.16 ID:VwBWJhfV.net]
- >>308
多分解決しました value[0:4]にcomanyIDが入っていたので、 77行目でvalue[0:4]も渡して、 51行目の引数にcomanyIDを加えてやると動きました これであってますか?
- 324 名前:306 mailto:sage [2019/11/25(月) 22:40:34.23 ID:WAjfk16n.net]
- >>307
不等号記号が判断できました ありがとうございます
- 325 名前:デフォルトの名無しさん [2019/11/26(火) 05:32:54 ID:+E2vdhzD.net]
- >>36
自前でsort_byみたいなのを作るのかな
- 326 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 11:43:30.34 ID:x6kjeL8J.net]
- パッケージ、モジュールについて質問です。
import numpy as np a = np.
- 327 名前:random.rand(10)
という記述があったとします。 np はパッケージ random はモジュール rand() は関数 であっていますか? np がパッケージだとすると、パッケージは関数や定数などを含むことができてしまっておかしいような気もします。 このあたりについて解説をお願いいたします。 [] - [ここ壊れてます]
- 328 名前:デフォルトの名無しさん [2019/11/26(火) 11:53:00 ID:sOexhNbU.net]
- あってる場合もあるし
あってない場合もある
- 329 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 12:04:40 ID:n4j/cOk3.net]
- 中身みたらいいんじゃないの?
import numpyがPackage import randomがSub-Package randがfunctionってコメント書いてる
- 330 名前:デフォルトの名無しさん [2019/11/26(火) 12:07:13 ID:sOexhNbU.net]
- 質問者の本来の意図は判らんが
質問文だけ読めば import hoge as fuga fuga.hage.hige() の一般的なことを聴いてる可能性もある ケースバイケースとしか言いようがない
- 331 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 12:44:26.92 ID:P1h37MBR.net]
- プログラミング始めて2ヶ月弱です。
今TwitterのsearchAPIを使用してtkinterのメインフレーム内のテキストウィジェットに検索結果を追加していくプログラムを書いてまして threadを使用してリアルタイムに追記させていくことは出来たのですが停止がうまくいきません。 ttps://teratail.com/questions/147319 上記URLの様にスタートとストップを分けて書いているのですがストップ時に止まらず応答無しになります。 tryの前に上記URL内のwhile not stop_flag:を置いてループさせているので ループ中try内のプログラムにif stop_flagがtrueの時にbreakする条件を追加すれば想定道理に動きますでしょうか? 仕事中で詳しくは記述出来ませんがこの考え方で合っているのか確認したく質問させていただきました。
- 332 名前:デフォルトの名無しさん [2019/11/26(火) 13:31:57 ID:dAEqoOXB.net]
- 仕事中は仕事しろ
- 333 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 13:36:13 ID:R22VgyT6.net]
- これが噂に聞く寺尾駆動開発……!
- 334 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 13:40:30.59 ID:n4j/cOk3.net]
- while not stop_flagって書いてるし意味わからんな
- 335 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 16:38:03 ID:jVdruz6/.net]
- >>312
気になるのはわかるが 生成の過程はどうであれ オブジェクトが生成された程度でいいとおもうよ ここつついてもなんもでてこない
- 336 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 19:07:33.15 ID:x6kjeL8J.net]
- >>314-315
>>320 ありがとうございました。
- 337 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 22:00:33.85 ID:x6kjeL8J.net]
- 柴田望洋さんのPythonの本に、
'\\\\\\\\' と入力すると '\\\\' が出力されると書いてありますが、JupyterLab上で実行すると、 '\\\\\\\\' が出力されます。 これはどういうことでしょうか?
- 338 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 22:08:10.56 ID:aDj7fQzJ.net]
- 純粋なリテラルなんだろ
- 339 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 22:13:19.59 ID:x6kjeL8J.net]
- もう一つ質問させてください。
id(1) とするとある大きな正の整数が出力されます。 オブジェクト「1」のIDだと思います。 ある複雑なオブジェクト(あるクラスのインスタンスなど)にIDが割り当てられているのは理解できます。 おそらくインスタンスを作ったときにIDが割り当てられるのだと思います。 整数の場合にはどうなんでしょうか?我々は整数を使うときに整数のインスタンスを作ったりはしません。 このあたりのからくりについて教えてください。
- 340 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 22:17:46.99 ID:pgCzIwzp.net]
- >>322 >>324
ここは取り下げて↓をアゲたればー? Julia Juno Jupyter part1 mevius.5ch.net/test/read.cgi/tech/1455271513/
- 341 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 22:29:07.19 ID:6BcoKqX2.net]
- >>324
id()で表示されるのは実装にもよるが単純にメモリ内のどの位置にそのオブジェクトがあるかじゃなかったかな? いちいちidが割り振られるのは単純にプログラム内
- 342 名前:ナ一度出現した値を再度読み込むときにすぐ読み込めるようにするためだった気がする。
id(1)とかだと同じプログラム内だとずっと同じidになっているがid(10000000000000000000000000000000000)とか数値が大きくなると ずっと同じ数値を保持するためには莫大なメモリが必要になるから、いちいち同一のidを保持したりせずに毎回値が変わるのがわかると思う それと、1が整数のインスタンスじゃないというのは勘違いだ。 isinstance(1,int)とすれば整数1が整数のインスタンスだとわかる プログラムする側が明示的にインスタンスを作らないだけで内部的にはインスタンスになっている また、C言語などにおいては整数は「単純な値」と言えなくもないが、少なくともpythonにおいては数値もオブジェクト、 dir(1)してみればわかるが1にもさまざまなメソッドがついている [] - [ここ壊れてます]
- 343 名前:デフォルトの名無しさん [2019/11/26(火) 22:33:53.44 ID:YnEDvBjE.net]
- >>324
https://docs.python.org/ja/3/library/functions.html#id https://docs.python.org/ja/3/c-api/long.html#c.PyLong_FromLong >>> a = 256 >>> b = 256 >>> a is b True >>> a = 257 >>> b = 257 >>> a is b False
- 344 名前:デフォルトの名無しさん [2019/11/27(水) 04:07:41 ID:sALdvXXc.net]
- 0x100が境なんだね
- 345 名前:デフォルトの名無しさん [2019/11/27(水) 08:24:04 ID:XCw5dykM.net]
- >>322
JupyterでOutに出るのはPythonで表記したときの書き方。 print('\\\\\\\\')すれば\\\\が出る。
- 346 名前:デフォルトの名無しさん [2019/11/27(水) 09:18:32 ID:KJahAAhq.net]
- >>322
つまりprint('\\\\\\\\')はPythonで表記したものではないと
- 347 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 09:47:06.21 ID:0U9h+SK3.net]
- JUpypてrが何か知らんがMacだと¥と\が違うんだろ
- 348 名前:デフォルトの名無しさん [2019/11/27(水) 14:09:09 ID:ngGnUYLD.net]
- >>299
え?俺便利だと思って多用してるけど.... 関数側で引数がリストならfor文で引数内の要素で再帰呼出し、リストじゃなければ 引数を処理みたいな感じで使ってる。 (簡単な例を書き込もうとしたらブロックされた...わかりにくくてすんまそん)
- 349 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 14:40:54 ID:R3eAH8fN.net]
- >>332
たぶんインデントなのと半角英数がいっぱいなのが 先週あたりから強化された全板規制にひっかかる。 >>1にのってるようなソースコード用うpろだを使うのだ
- 350 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 16:09:47 ID:yvOcgkAY.net]
- >>332
なるほど 確かに便利だ オブジェクト指向の概念からいえば 関数で属性取得するの邪道だと思っていたが 柔軟にしないといけないな これが純粋性より実用性ってやつか
- 351 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 16:24:01.31 ID:ulQKgCH1.net]
- The Zen of Pythonの一部の翻訳についてですが、柴田望洋さんは、
「Errors should never pass silently.」を「エラーを黙って渡してはならない。」と訳しています。 エラーを渡すというようなことが実際にPythonであるのでしょうか?
- 352 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 16:26:47.69 ID:ulQKgCH1.net]
- エラーを黙って見過ごしてはならない。
みたいな意味かと思ったのですが。
- 353 名前:デフォルトの名無しさん [2019/11/27(水) 17:52:41 ID:b0aYXQt/.net]
- >>336
pass silently を「黙って渡す」と直訳するか、その行為を日本語の表現で 「見逃す」、「見過ごす」と訳すかと違いと思う。 日本語的には見過ごすと訳した方が自然に感じます。
- 354 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 19:02:19.69 ID:ymKEnJ4Y.net]
- >>336の意味であってる
「黙って通過させてはならない」的な意味 「エラーを黙って渡してはならない」は完全な誤訳 Errors should never be passed silentlyや You should never pass errors silentlyじゃないと エラーを渡すという意味にはならない
- 355 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 20:33:56.00 ID:hknmBY+P.net]
- 例外の握りつぶしとかだろ。
- 356 名前:例外をキャッチしたけど、何もせずに、そのまま処理を継続したとか
Jupyter Notebook(JN)は、Python, Julia, Ruby などで使うIDE だろ。 VSCode みたいなもの Bash, PowerShell などのシェル経由でも、 シングル/ダブルクォーテーションで、エスケープのタイミングが違ってくる。 Linux/Windows で書き方が異なる シェルに渡すときに、既にエスケープされているか、されていないのか エスケープ文字を、エディタで設定できるかも知れない [] - [ここ壊れてます]
- 357 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 20:43:49.33 ID:R3eAH8fN.net]
- >>335-336
個人的には>>339の解釈に1票。 try: なんとかかんとか except: pass みたいなマジクソ行為は 自分以外の人物が たとえ0.1×10^23%でもかかわる可能性があるソースコードでは 絶対やっちゃだめだなwww
- 358 名前:デフォルトの名無しさん [2019/11/27(水) 21:37:06.71 ID:OMjrfaFS.net]
- pygameは商用利用できますか?
- 359 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 21:48:56.24 ID:gPxE2uPM.net]
- >>340
どんなに小さな確率でも、と言いたいのかもしれないけど巨大な下図になってるぞw
- 360 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 21:49:28.61 ID:gPxE2uPM.net]
- >>342
数だった。人のことは言えないな。
- 361 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 22:17:55.37 ID:ap410XA+.net]
- >>340
passがダメだとして何なら良いわけ?
- 362 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 22:18:57.75 ID:vYtjQlD0.net]
- >>341
可能だが、pyinstallerのような方法で事実上の静的リンクを行った場合には LGPLに従ってpygameが含まれている実行ファイル全体の再配布を許可せねばならない つまり俺が買ったらそれを10円で再販してやる
- 363 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 22:20:16.38 ID:1UHKBbgP.net]
- >>344
passを書くくらいならエラー処理せずに普通にエラー発生させた方がマシ
- 364 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 22:27:15.42 ID:vYtjQlD0.net]
- >>341
補足 あと、リンクの方法に関わらず、そのソフトウェアを買った俺はそれをリバースエンジニアリングし、改造できる 俺のスキルをもってすればライセンス認証の回避は容易であり、お前はそれを禁止できない
- 365 名前:347 mailto:sage [2019/11/27(水) 22:31:35.68 ID:vYtjQlD0.net]
- すまん、俺が金払って買ったなら認証を回避する意味はなかったな
問題は、ダウンロードは無料だが継続して利用するにはライセンス認証が必要になるというような典型的な配布パターンだ この場合、俺は金を払わずに改造してライセンス認証を突破し、タダでそれを使う そしてその方法をWebで公開する お前はそれを禁止できない なぜならLGPLライブラリを使用しているからだ
- 366 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 22:42:28.92 ID:ap410XA+.net]
- >>346
つまりtry ~ except は不要と言ってるのか? excaptの中に何を書くのが良いのか訊いているんだが。
- 367 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 22:48:46.79 ID:R3eAH8fN.net]
- >>342
ほんとだ 重要なマイナスが抜けてた! >>340訂正する ×たとえ0.1×10^23%でもかかわる可能性があるソースコードでは 〇たとえ全世界の砂粒から、ハズレの1粒をひきあてたくらいの確率でも、かかわる可能性があるソースコードでは >>349 「except:」みたいな雑なくくりをせず おきるエラーの種類ひとつひとつについて 「except Errorhogehoge:」みたいなかんじで一個ずつちゃんと分岐させろ
- 368 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 22:57:52.16 ID:ap410XA+.net]
- >>350
例外の種類ごとに異なる対処が必要なら分岐するがそうでないならその限りではない。 何か対処すべきことがあればそれを記述するが他にすることがなければpassでよい。 おまえ
- 369 名前:ウんは何か変な教条主義に囚われているんではないかね? []
- [ここ壊れてます]
- 370 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 23:06:11.22 ID:vYtjQlD0.net]
- >>350
悪いけど、最初から個別の例外について虱潰しに対応しようとするのは典型的なアンチパターンだよ あまりにも手間がかかりすぎるし、変更に対して非常に弱いコードになる。 例外処理で死守すべき大原則は、アプリを落とさないこと、綺麗に回復すること、の2点だけだ。 その上で、必要に応じて丁寧な個別対応をしてもよい。 まずアプリを落とさないことだが、WebのリクエストハンドラであったりUIのイベントハンドラであったりバッチ処理の一番大本のループであったり、 「ここまで戻れば確実に回復できる」という箇所で全ての例外をキャッチし、リトライやエラーメッセージの表示等を行って回復する。 次に綺麗に回復すること、これは、適切にwithやfinally等を使用して例外発生時に適切な後片付けを行うことだ。 この2点が守れていれば例外処理は完璧だが、場合によっては個別対応することで早期に回復できたり、より適切なエラーメッセージをユーザーに表示できたりするケースがある。 しかしそれはあくまでオプションにすぎない。
- 371 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 23:22:24.86 ID:ymKEnJ4Y.net]
- >>351-352
え、お前らマジでこんなコード書いてるの!? いろいろビックリするわ try: ____do_something() except: ____pass
- 372 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 23:28:50.58 ID:hknmBY+P.net]
- Ruby on Rails で、RSpec で、TDD から学びなおせw
- 373 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 23:31:50.95 ID:vYtjQlD0.net]
- >>353
単に無視することが適切な回復なのであればそれで正しいよ 大抵はそうではないが、だからといって例外が発生した瞬間に直上でキャッチしたところで対処のしようがないケースがほとんど ほとんどの例外は単純にキャッチせずにスルーし、上の方で纏めてキャッチしてエラーを表示したりすることになる
- 374 名前:デフォルトの名無しさん [2019/11/27(水) 23:36:46.74 ID:OMjrfaFS.net]
- >>348
ありがとうございます。ようするにpygameを使った作品は著作権を放棄しろってことなんですね。。。
- 375 名前:デフォルトの名無しさん mailto:sage [2019/11/27(水) 23:58:21.75 ID:ymKEnJ4Y.net]
- >>355
範囲の狭い特定のエラーを意図して無視するのが適切な場合はあっても あらゆるエラーをすべて無視するのが適切な場合はまずないやろ
- 376 名前:デフォルトの名無しさん mailto:sage [2019/11/28(Thu) 00:12:16 ID:H2QhOzf/.net]
- >>356
細かいツッコミすると、国内で放棄できるのは著作請求権だけ
- 377 名前:デフォルトの名無しさん [2019/11/28(Thu) 01:29:21 ID:BjRR3Cis.net]
- >>358
ありがとうございます!!
- 378 名前:デフォルトの名無しさん mailto:sage [2019/11/28(Thu) 03:06:02 ID:1K1GwsjB.net]
- 著作権を放棄しているわけではない
自分の著作権の下で自らの著作物をLGPLの派生物として配布しているんだ 自分の著作物をどんなライセンスで配布しようが本来は勝手だが、利用しているライブラリが他人の著作物である以上、 そのライブラリの著作権を同梱した派生物を配布するためにはそのライブラリの著作権者が定めるライセンスに従わねばならない そして、そのライセンスが派生物のライセンスを制約するようなものであった場合は結果的に自分の著作物にライセンスが感染する形になるわけだ
- 379 名前:デフォルトの名無しさん [2019/11/28(木) 05:28:36.70 ID:BjRR3Cis.net]
- >>360
そういうことなんですね! 勉強になりました。
- 380 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 07:46:57.30 ID:LEtsBWW2.net]
- 俺が不勉強なだけかもしれないが
try:〜except:passでエラーを握りつぶしておいて 直上でエラー処理するってどういうことだ? 普通にエラーをそのままにしといたら呼び出し元にエラーが届いて そこで処理したらいいだけの話だろ 一番下の階層でpassして握り潰す必要はない
- 381 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 08:33:14.83 ID:VOkh5kHm.net]
- >>362
> try:〜except:passでエラーを握りつぶしておいて 誰
- 382 名前:がそんなことを言ってるんだ?
そう思い込んでいるのはあなただけでは [] - [ここ壊れてます]
- 383 名前:デフォルトの名無しさん [2019/11/28(木) 08:38:48.41 ID:b0jGiHif.net]
- 異常系をわざわざ戻り値で表現し直すんじゃないの?w
そんなことするより、リスローの方が絶対にいいわな。
- 384 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 14:36:06.70 ID:B2pLXdx8.net]
- >>353
やってるけど
- 385 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 14:59:01.40 ID:p/uKw1d3.net]
- pyautoguiっての普通に使ってる時は問題ないんだけど
リモートデスクトップで1度開いちゃうと画面閉じた時に pyautoguiの中のsetcursorposってのでエラー出るんだけどどうにかならない?
- 386 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 16:12:48.01 ID:rcIus152.net]
- 大企業で無料で商用利用できるIDEでオススメありませんか?
個人ではVScode使ってますがエンタープライズ企業は無償利用無理みたいです
- 387 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 16:26:05.13 ID:sRkzUhKD.net]
- 生産性を無視する企業に未来はない
- 388 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 16:48:19.24 ID:f9JN6uOx.net]
- >>367
そんな都合のいいものはない 大企業税(有名税てきな)だとおもって あきらメロン
- 389 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 17:08:37.95 ID:VOkh5kHm.net]
- >>367
VSCodeはエンタープライズでも無償だぞ
- 390 名前:デフォルトの名無しさん [2019/11/28(木) 17:24:36.37 ID:i2j7bL3h.net]
- どうせVSと近藤してるんだろ
- 391 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 21:56:29.31 ID:qnF6NUyh.net]
- >>357
堅牢なソフトウェアを構築する方法論として、何かエラーがあったらその処理単位ごと 無かったことにするというものがある。DBのトランザクションとかerlangのlet it crashとかな。 そういう方法論ではエラーの種類など見ない。 そこでは逆に、知ってるエラーだけcatchして他はスルーするという手法こそ否定される。 なぜなら、下層のルーチンが「知らない」とスルーしたエラーなら上層のルーチンは 「もっと知らない」はずだからな。
- 392 名前:デフォルトの名無しさん [2019/11/28(木) 22:06:08.08 ID:4XtsM+GQ.net]
- せやろか?
- 393 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 23:49:35.94 ID:3SZL29g0.net]
- >>372
ものすっごい中途半端な知識で知ったかしようとする前に基礎を抑えようね DBのトランザクション処理を実行しました なんかエラー発生しました エラーの種類など見ないっ(キリッ) 軽量プロセスにsend messageしました なんかプロセス落ちました リスタートあるのみ(キリッ) >なぜなら、下層のルーチンが「知らない」とスルーしたエラーなら上層のルーチンは >「もっと知らない」はずだからな。 何を知らないのか考えようね
- 394 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 00:49:58.07 ID:8hJB6N01.net]
- >>372のやり方だと「止まらない」プログラムは作ることはできても
「使える」プログラムは作れそうにないなw
- 395 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 01:26:05.58 ID:pmSmtC6r.net]
- 例外原理主義か…
- 396 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 09:16:06 ID:B0LTR+GE.net]
- スターリン風エラー処理
- 397 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 09:24:58 ID:TmZsQyhe.net]
- pyautoguiのsetcursorposエラーはtry:〜except:passで無事解決しました!
- 398 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 09:28:46 ID:wYCEjZQR.net]
- わださんのゆうめいなやつ
https://speakerdeck.com/twada/php-conference-2016 PHPだけど、理解できるだろ。読んどけ。
- 399 名前:デフォルトの名無しさん [2019/11/29(金) 10:27:27 ID:N/f9f1S7.net]
- >>349
漏れもpassは禁止で正しく処理するべきだと考えるが どうしてもスルーしてプログラムを続行したい場合は 1.フラグを立ててプログラム終了時に報告 2.loggerでsyslogに出力 3.上の1と2の合わせ技
- 400 名前:デフォルトの名無しさん [2019/11/29(金) 10:30:54 ID:N/f9f1S7.net]
- >>355
上の方でまとめてキャッチしたいのに except で pass したらキャッチされないぞ except でその場だけキャッチせず上にスルーしたいならあらためて raise しろ
- 401 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 12:06:18.51 ID:dGU1sZlL.net]
- pyautoguiでとりあえずブラウザ
- 402 名前:内の手作業のの自動化できたから、seleniumにも手を出してみたけどこっちは難しいね
HTMLが分かってないとキツイな(´・ω・`) [] - [ここ壊れてます]
- 403 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 17:46:37.36 ID:po6NZMwT.net]
- python勉強しようと思うんだけどエディタはjupyterがデフォなの?
visual studioになれてるからvs使いたいんだけどまずいのかな。
- 404 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 17:47:25.58 ID:lBRwa/7I.net]
- ok
- 405 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 17:51:35.27 ID:VBGSEbtt.net]
- >>383
PCのスペックが足りてて問題なく動けば問題ないぞ スペック足りない俺様PCでは 秀丸エディタかsakuraエディタが精いっぱいなんだぜ
- 406 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 19:37:04.50 ID:LMfDTWZ+.net]
- >>383
VSCodeにしとけ MSはPythonの開発環境としては今VSCodeを推していて、本家VSの方のPythonサポートはもう将来性がない
- 407 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 19:41:46.20 ID:VBGSEbtt.net]
- >>386
横レスだけど参考になった
- 408 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 19:56:54.52 ID:SQehs03a.net]
- >>380
>漏れもpassは禁止で正しく処理するべきだと考えるが passは正しい処理ではないと言っているようだが、そう断言できる根拠はないだろ。 ログを吐けばオーケーというのも意味わからん。プログラムの正しさとは何の関係もないだろうに。
- 409 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 20:05:59.92 ID:8hJB6N01.net]
- 保守性が落ちるコードは正しいコードとはいえないだろ
例外処理でpassするくらいならそもそも例外が出ないようにすべきだし 自分で例外処理が書けないなら例外をそのまま発生させて別の誰かか未来の自分が対処できるようにすべき 自分ひとりで全部完結するプログラミングなら 他人から見てエラーを脳死で握りつぶしているのか 面倒臭くてpassしてるのか分からない変なコード書くのもありかもしれないけどな ぶっちゃけ「正しいコード」が書きたいならpythonじゃなく証明型プログラミング使えばいいだけだしな
- 410 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 20:10:38.20 ID:5FLVJ8iu.net]
- 正しい処理どうこうの前に
passは文字通り何もしてないんだから処理したとは言わないだろ
- 411 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 20:18:27.56 ID:VBGSEbtt.net]
- >>389
> 例外処理でpassするくらいならそもそも例外が出ないようにすべきだし > 自分で例外処理が書けないなら例外をそのまま発生させて別の誰かか未来の自分が対処できるようにすべき > > 自分ひとりで全部完結するプログラミングなら > 他人から見てエラーを脳死で握りつぶしているのか > 面倒臭くてpassしてるのか分からない変なコード書くのもありかもしれないけど ↑イイ!!(・∀・)こと書いてある!!!
- 412 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 21:32:51.55 ID:SQehs03a.net]
- >>389
>例外処理でpassするくらいならそもそも例外が出ないようにすべきだし なんか言っていることが矛盾してるね。自分ひとりで全部のコードを書いているわけじゃなけりゃ 下層のルーチンから例外が出ないようにするなんてことが常にできるわけがないだろう。 自分で保証できるのは上流の呼び出し元にどういう例外を渡すか(渡さないか)だけ。 >他人から見てエラーを脳死で握りつぶしているのか >面倒臭くてpassしてるのか分からない変なコード書くのもありかもしれないけどな 意図がわかりやすいコードを書くことが推奨されるのはもちろんだが、逆にコードだけからは 意図を判断しづらいケースはいくらでもあるわけなんでそこを非難しようとしても不毛なだけだと 思うがな。 例えば逆のケースで例外をcatchしていないコードがあった時、それが意図的にスルーして いるのか面倒くさいからかcatchしなかったのかはたまた例外が発生する可能性を見過ごして いたのか、コードの字面だけからはやっぱり判断できんだろう。 そもそも、面倒くさくて握りつぶすという発想がよくわからんな。 面倒くさいなら何もしないでスルーするんじゃないの? #Javaの話で関数の仕様を変えられないから、とかならわからんでもないが。
- 413 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 21:44:06.26 ID:8hJB6N01.net]
- >>392
下層で例外を上に渡すのか渡さないのか決めるなら 例外処理をどうするのかを上層で判断するのか下層で判断するのか 結局どちらでもない中途半端になるだけだな 上層に例外処理を任せるなら 例外を握りつぶしにしても上層で握りつぶす 例外が出る可能性を消せないのであれば例外を隠蔽しない 例外を隠蔽するくらいなら例外が出る可能性を完全に消す 単純な話だ
- 414 名前:
>例えば逆のケースで例外をcatchしていないコードがあった時、それが意図的にスルーして >いるのか面倒くさいからかcatchしなかったのかはたまた例外が発生する可能性を見過ごして >いたのか、コードの字面だけからはやっぱり判断できんだろう。 このうちのどれかなんて判断しなくていい 全部対処の必要があるからな 君は「問題なく動くコード」を作ることを最優先にしているようだがそのために「問題を起きていないことにする」んじゃあ意味がない 起きてない問題を解決するのは起きている問題を解決することの数倍難しいんだ エラーが発生すること自体は開発の過程においては別に悪いことじゃない エラーを見かけ上発生させなくなることで問題を不可視にするほうが害悪 [] - [ここ壊れてます]
- 415 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 22:04:01.71 ID:SQehs03a.net]
- >上層に例外処理を任せるなら 例外を握りつぶしにしても上層で握りつぶす
その例外を発生させた処理に近い方が適切な判断ができるに決まってるだろう。 どういうメリットがあってその処理を上層に任せるなんて言ってるのかねえ。 >エラーを見かけ上発生させなくなることで問題を不可視にするほうが害悪 こうなるともう宗教だな。 仮に内部でエラーが起きたとしても、それが外に対して悪影響を及ぼさないんだったら 無かったことにして全然問題ないと思うが。
- 416 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 22:08:10.95 ID:5FLVJ8iu.net]
- 外に悪影響を及ぼさないことを保証できる実力があるなら文句ないわ
俺にはとても出来ない
- 417 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 22:28:46.19 ID:8hJB6N01.net]
- >>394が作ったプログラムが上手く動かなかったときは
下層上層問わずすべてのコードを精査して 「外部に対した悪影響を及ぼさないからエラーを握りつぶしてOK」と「思いこんでいるかもしれない部分」 も含めてチェックしないといけないハメになるな 地獄だぜ
- 418 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 22:51:00.95 ID:X/BrqNBd.net]
- 全能無謬の神PG降臨
- 419 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 10:27:47.46 ID:rKTaGmhL.net]
- わださんへの反応が皆無で笑ったwさすが初心者スレ。
- 420 名前:デフォルトの名無しさん [2019/11/30(土) 11:15:37.77 ID:u5c1qEtQ.net]
- numpyとかいうのなしで、配列を回転させることはできますか?
テトリスのブロックの回転です var base = [ [0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0] ] var block = [ [0,0,0,0], [1,1,0,0], [0,1,1,0], [0,0,0,0] ] # func _ready(): for y in block.size(): for x in block[y].size(): block[y][x] = print(block)
- 421 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 11:41:37.85 ID:eoIz8ORY.net]
- [[block[3-l][i] for l in range(4)] for i in range(4)]
|

|