1 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 07:19:44.36 ID:PfTIXkDh.net] 当スレに★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公式サイト◇ 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 ###
2 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 19:25:04.88 ID:GPMJJDKk.net] >>1 乙 PyTorchの力と共にあらん事を
3 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 20:29:18.93 ID:SXyIy3pf.net] なくなってたと思ったらくだすれ発見!
4 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 22:43:33.75 ID:wDp7dZOY.net] くだれす〜
5 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 04:34:23.73 ID:OOj2NSgC.net] ずっと気になってたんだけど「くだすれ」って何?
6 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 08:06:19.70 ID:TpdTO3YL.net] >>5 (わざわざスレ立てするほどでもない) くだらない質問 の略
7 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 14:14:35.31 ID:TpdTO3YL.net] >>6 途中で送っちゃってた (わざわざスレ立てするほどでもない) くだらない質問を書いてくスレ の略。 >>5
8 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 17:37:06.12 ID:OOj2NSgC.net] >>7 なるほどそう言う事だったのか サンクス
9 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 18:40:31.97 ID:TpdTO3YL.net] >>8 なーに いいってことよ おれもむかしこのスレの過去シリーズできいた
10 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 01:44:53.32 ID:A6mO37qQ.net] requestsのpostしても空っぽで返ってくるのにハマりまくったけど post(url,data=data) のdataのところを json.dumps({"name":"tarou","age":20}) みたいに文字列化したらなぜかうまくいった・・・ 他のところは辞書型のままでもいけたのに
11 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 05:24:55.18 ID:E6K6GX2p.net] >>10 たまたまそこに至るまではうまくいいようにはからってくれてたか こころのひろい鯖さんだったのだろう 解決よかったね+理由記載乙 なにかだれかのたしにもなるといいね
12 名前:デフォルトの名無しさん [2021/03/18(木) 15:10:11.71 ID:HfXxQmPX.net] そこは json.dumps より urllib.urlencode 汁
13 名前:デフォルトの名無しさん [2021/03/18(木) 15:15:49.51 ID:HfXxQmPX.net] 前スレ >>983 Erlang と OTP は良くやってる
14 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 16:07:41.59 ID:k/Cp5d5i.net] 導入で詰んだ minicondaをインストールしたがpipを実行しようとするとpython38.dllが見つからないとしはじかれる python38.dllはpython38.exeと同一フォルダにあるのに
15 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 16:09:25.79 ID:k/Cp5d5i.net] python38.exeではないなpython.exeか
16 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 16:50:30.37 ID:VjRMlHUp.net] Ruby on Rails 6 の本も書いている人が、新刊を出した Elixir実践ガイド、黒田努、2021/2/5 Ubuntu 20.04, Docker CE 19.03, Elixir 1.11 Erlang/OTP か、片方向リストは、先頭の要素だけが速いとか、 実行環境の内部構造の話が多くて、辛い
17 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 17:27:24.11 ID:7Uj1c/fU.net] 推奨NGワード: Ruby 推奨NGワード: Rails 推奨NGワード: 書いている人
18 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 17:32:30.78 ID:E6K6GX2p.net] >>14-15 スレタイも1も読めない池沼にはむりぽっぽ
19 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 17:44:58.89 ID:k/Cp5d5i.net] はいどうも、書いてみるもんですな、原因はセキュリティソフトでした、どうも失礼しました
20 名前:デフォルトの名無しさん mailto:sage [2021/03/19(金) 12:46:20.22 ID:bQkGR5Qu.net] 質問スレって結構解決率高くて役に立つよね なぜか投稿した直後に自己解決する
21 名前:デフォルトの名無しさん mailto:sage [2021/03/19(金) 13:33:42.02 ID:+kOAJZBd.net] 書くことで頭の整理ができて自己解決することもおおいいいいい
22 名前:デフォルトの名無しさん mailto:sage [2021/03/19(金) 14:05:53.67 ID:WPerE166.net] くだすれってどういう意味?
23 名前:デフォルトの名無しさん mailto:sage [2021/03/19(金) 15:24:56.01 ID:+kOAJZBd.net] あえてつられてさしあげよう 現行ログくらい嫁
24 名前:デフォルトの名無しさん mailto:sage [2021/03/19(金) 16:35:36.21 ID:lT0CdhUS.net] くだを巻くの「くだ」
25 名前:デフォルトの名無しさん mailto:sage [2021/03/19(金) 16:57:10.38 ID:JOVgIa9u.net] 管狐のくだ
26 名前:デフォルトの名無しさん mailto:sage [2021/03/19(金) 19:20:08.31 ID:AYoTSH/q.net] 菅スレw
27 名前:デフォルトの名無しさん mailto:sage [2021/03/19(金) 19:22:35.26 ID:VzIhkYvX.net] 蛇だけに
28 名前:デフォルトの名無しさん [2021/03/19(金) 22:45:14.97 ID:X0y0iVpq.net] 「it is assumed that your working directory is the root folder of the library.」 以下の文章中にある↑の文の意味が分かりません。 作業ディレクトリがライブラリのルートフォルダであることを仮定するというのはどういうことですか? ライブラリのルートフォルダって何ですか? The functionality for sound in this chapter can be found in the module sound in the library, and the code examples assume that this module has been imported without a prefix: from sound import * Moreover, it is assumed that your working directory is the root folder of the library. Since the Python code in the library is located in the python folder, a simple way to ensure that the library modules will be found is to add import sys, os sys.path.append(os.path.join(os.getcwd(), ’python’)) at the top of your program.
29 名前:デフォルトの名無しさん mailto:sage [2021/03/19(金) 23:15:47.95 ID:RMQx/osX.net] pythonはまず起動されたディレクトリからモジュールを探す sound.pyか、sound/__init__.py それが無ければリストsys.pathに入ってるパスを見に行く 親切なインストーラは勝手にsys.pathにリストされたディレクトリに入りに行く 親切過ぎて勝手にsys.pathを改変する逆に迷惑なライブラリもある 何もしないライブラリ/インストーラも当然あるので、自分で追加しよう しかしコード内からsys.pathを直接弄るのは薦めない pythonは起動時にsys.pathに加えるパスを環境変数PYTHONPATHから調べるので、そこにsoundのパスを加えるべき もし直接弄ると、その特定のコードの実行時にしか見えないバグを産みかねない、ユーザーとしては非常に厄介 python -i script.pyで実行後に対話モードに移れるけど、特に他人の書いたコードでそんなことやる気起きないでしょ?
30 名前:デフォルトの名無しさん mailto:sage [2021/03/19(金) 23:23:26.41 ID:RMQx/osX.net] PYTHONPATHが長くなり過ぎるのも見にくいので、ホームディレクトリ直下にpylib3.10みたいなディレクトリ作って、それだけPYTHONPATHに加え、そこにパッケージシステム管理外のライブラリを全部ブチ込むのもあり
31 名前:デフォルトの名無しさん mailto:sage [2021/03/20(土) 09:08:07.43 ID:nt8Be5Ib.net] >>29-30 ありがとうございました。
32 名前:デフォルトの名無しさん [2021/03/20(土) 21:03:20.71 ID:cHAvtLAs.net] print(range(3)) と一行書いて実行すると、 0 1 2 と表示されるはずなのに range(0, 3) としか表示されない。どうしてでしょうか。
33 名前:デフォルトの名無しさん mailto:sage [2021/03/20(土) 21:12:13.24 ID:cHAvtLAs.net] >>32 は自己解決しました
34 名前:デフォルトの名無しさん mailto:sage [2021/03/20(土) 21:41:21.50 ID:GfnHrk+w.net] オブジェクトだからさ。
35 名前:デフォルトの名無しさん mailto:sage [2021/03/20(土) 23:09:48.82 ID:SzdWYV/s.net] 好きなだけ広い範囲を取れるぞ! 好きなだけ取って楽しめよ!
36 名前:デフォルトの名無しさん [2021/03/21(日) 00:41:47.55 ID:c1Fm1qtl.net] >>32 もしrange(5000兆)とかがその場で展開されたらメモリが足りなくなるから 必要になってから都度計算するrangeオブジェクトっていうオブジェクトになる
37 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 01:15:24.00 ID:ba25SXqE.net] 自己解決したと書いてるのに、蘊蓄を披露するのが我慢できない人達
38 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 03:30:01.28 ID:Duyg5pmm.net] 蛇だけに!
39 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 07:55:22.35 ID:Xyvra8tZ.net] 「じゃあ」ってか >>37 自己解決のさいは なにしたら解決できたか書いて毛なのに むしろ質問者は書いていかないし
40 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 08:02:45.18 ID:rOmbGrT+.net] このくらいは質問する前に気づいて欲しいな そしたら蘊蓄披露したがりクンも沸いてこなかった つまり質問者が悪い
41 名前:デフォルトの名無しさん [2021/03/21(日) 09:50:58.07 ID:c1Fm1qtl.net] >>37 Rubyでは、・・・ とか言い出すよりマシだろ?
42 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 10:50:14.27 ID:ba25SXqE.net] すまん、俺が悪かった。
43 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 10:56:39.10 ID:eocPnEKi.net] 「オブジェクトだから」だと思ってる人達は文字列(str)はオブジェクトじゃないと思ってるのかな? range(0, 3)と表示される仕組みを理解してるとは思えないんだが
44 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 11:10:46.35 ID:dweFEPRe.net] inとか調べるのがノーコストになるというのはインフォマティブだよ コンテナ実装するときにふと思い出してくれればよい
45 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 11:17:17.80 ID:dweFEPRe.net] 俺もついでにくだを巻いていくけどrangeだけなら整数2つ持ってるのと大差ない(lo<=i <hiと等価)が rangeが生きるのはもっと複雑なテスト、rangeはchainsで数珠繋ぎにして生きる
46 名前:デフォルトの名無しさん [2021/03/21(日) 11:21:05.88 ID:GVEcec50.net] Juliaというプログラミング言語がいいという話ですが、Pythonに詳しい人はPythonと比較してJuliaについてどう思いますか?
47 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 11:31:49.59 ID:ECrDs+gQ.net] ブーム前はFortran/Matlab(&Octave)と同じ感覚で配列を自在に扱える代替環境ってのがPython/numpyの需要だったのよ numpy/scipyはFortranライブラリのラッパ集として始まったわけで 今はもうPythonは手軽なスクリプト言語はじめ色んな用途が開けてるから、古い感覚だけどね C風のPythonし、結局Fortran民はJuliaを作ったわけだけど まあPythonでいい
48 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 11:42:30.17 ID:ECrDs+gQ.net] 文書がバグってた… Pythonは配列0始まり/メモリ配置行メジャーのC系の慣習を引きずってる 線形代数記法、つまり配列1始まり/メモリ配置列メジャーの数値計算の慣習と逆ってことね 新興で後者採用のFortran系の言語はJuliaくらいしかないのでそっちに慣れてるオッサンならjuliaの方が受け入れやすいと想う
49 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 11:51:31.81 ID:ECrDs+gQ.net] Pythonも不便ということはないよ 生Pythonで配列扱うmemoryviewやctvpesにちゃんと'F'フラグ容易されてるし numpyももちろんそうで、FortranコードをPython関数として簡便コンパイルするf2py.pyもある 自身をコンパイルする為だけど、もちろんユーザーも使える
50 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 11:59:02.49 ID:Duyg5pmm.net] numpy入れるとコマンドラインからf2py直接呼べるようになってるね 比較的小さいスクリプトだけど、これこそがnumpyの本体
51 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 13:02:14.02 ID:ba25SXqE.net] 超初心者スレでそのネタを書く? マウンティングが目的?
52 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 13:16:37.33 ID:Duyg5pmm.net] PythonとJulia比べるならそこの違いだろうよ Pythonでよろしい、潰しも効くし
53 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 13:20:42.89 ID:M5Jy6lC/.net] pandasで時系列データを集計やソートしたりするのですが df = pd.DataFrame([{'p':1,'at':日付オブジェクト1},{'p':3,'at':日付オブジェクト2},,,]) 時系列データフレームとして扱うためにインデックスを設定 df2 = df.set_index['at'] df2.resample('H').sum() で無事、時系列であれこれできました で、これをsqlite3にappendしようとしたとき このインデックスが時系列のままsqliteにappendすればいいのか 時系列は'at'カラムに移動させてからsqliteにappendすればいいのか迷っています ぶっちゃけどちらでもいいとは思いますが 公開されている統計データなどをみていると大抵は、(インデックスは無しか連番で)カラムに日付データが入っているので そういう慣習でもあるのかが気になります
54 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 13:38:24.45 ID:11DwdO6F.net] >>41 メモリアロケーションされてるかどうかなんて全く関係ない理由をあげて間違った理解を植え付けるくらいなら Rubyでは・・・のほうがまだマシだわ
55 名前:デフォルトの名無しさん [2021/03/21(日) 13:49:42.36 ID:c1Fm1qtl.net] 質問者はrangeをlistかtupleと同一視していると思われたから、どちらでも無い別種のオブジェクトだと教えたまでだが問題あったか? (メモリアロケーション云々は何故rangeがlistを返さないかの説明に過ぎない) いきなり__repr__の実装に言及しても訳分からんだろ
56 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 13:52:10.61 ID:b+/7pFI3.net] 0 1 2 と表示される方法を知りたかったのかも知れない。
57 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 14:24:12.67 ID:HtK2VIhJ.net] >>55 見苦しい言い訳だね〜 それなら「rangeはlistとは違うから」とでも答えておけばいいだけだろ 必死に調べて__repr__見つけたのかなw でも間違ってるしreprの実装に言及しないと説明できないと思ってる時点で分かってないから 超初心者にドヤ顔で間違った答えを教えたりRubyキチをバカにする前に公式チュートリアルくらいは読めよな
58 名前:デフォルトの名無しさん [2021/03/21(日) 14:33:51.63 ID:c1Fm1qtl.net] >>57 そうだね、ケチ付けてばかりじゃなくて「分かってる」あなたも説明してみてよ 初心者スレだからみんなの為になるよ
59 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 15:01:23.60 ID:rOmbGrT+.net] はいはい。病院でお医者さんにはなしてあげてね
60 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 15:08:07.65 ID:ba25SXqE.net] つまらん煽りは他所でやってくれ と、俺が言ってみる
61 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 17:19:57.60 ID:LD2dmgE2.net] >>58 print関数は引数のオブジェクトの文字列表現を出力する関数で range(3)の文字列表現は'0 1 2'じゃなく'range(0, 3)' なのでprint(range(3))を実行するとrange(0, 3)と表示される ちなみにlistなら'[0, 1, 2]'みたいな表現になるから'0 1 2'と表示したいなら自分で加工する必要がある 例えばprint(' '.join(str(x) for x in range(3)))
62 名前:デフォルトの名無しさん [2021/03/21(日) 17:51:46.12 ID:sFWHtMDC.net] >>> print(*range(3)) 0 1 2
63 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 19:05:58.83 ID:7CdIp7EP.net] >>62 優勝!
64 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 19:14:50.12 .net] 処理Aが同じで 無限ループしたいときと、任意回数ループしたいときを分けたいんだけど n = 10 if 条件 else 99999999 i=0 while i < n: _print('処理A') _time.sleep(1) _i += 1 無限ではないにしろこれでいいんだけど n=99999999がなんかかっこ悪い・・ 別の書き方ありませんか
65 名前:64 mailto:sage [2021/03/21(日) 19:22:48.42 .net] 自己解決・・かどうかわからないけど でいけた でも for i in range(float('inf')): は無理だった・・
66 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 19:30:08.83 ID:g0m1T9az.net] n = 10 a = 1 if 条件 else 0 i = 0 while i < n _print('処理A') _time.sleep(1) _i += a
67 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 19:46:13.27 ID:Duyg5pmm.net] [*iter]
68 名前:デフォルトの名無しさん [2021/03/21(日) 20:27:26.58 ID:c1Fm1qtl.net] >>61 その「文字列表現」を決定するのが__repr__では? __repr__の実装に言及せずとも説明できると言うのは? 単に名前を出さないだけで言及していないことにはなってないな
69 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 20:28:41.92 .net] >>66 変数増えるけどスッキリしてこっちのがいいですね ありがとうございました
70 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 20:41:49.95 ID:Duyg5pmm.net] numberを継承したoo.__lt__にreturn falseをブチ込む
71 名前:デフォルトの名無しさん [2021/03/21(日) 22:32:14.97 ID:OQZaxlrU.net] よろしくお願いいたします。 aList = [[1,2]for j in range(3)] aList = [[1,2]]*3 2つとも[[1, 2], [1, 2], [1, 2]]の多重リストが作られたのですが、なぜ下の文で多重リストができるのか教えてほしいです。
72 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 22:53:21.54 ID:mInw6BRh.net] >>68 >いきなり__repr__の実装に言及しても訳分からんだろ __repr__の実装に言及する必要なんてない __repr__が果たしてる役割を超初心者にも分かる言葉で説明すればいいだけ それができないと感じるのは自分がその事柄を理解してないから 理解してれば「オブジェクトだから」とか「アロケーションされてないから」みたいな嘘を教えたりしない
73 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 22:56:09.50 ID:mInw6BRh.net] 文字列表現がどう決まるのか、どういうついでに言っておくとprint()で使われるのは__repr__じゃなくまず__str__な __str__が定義されてない場合だけfallbackして__repr__が使われる 公式チュートリアルに書いてるので勉強してね
74 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 23:00:23.62 ID:mqfsmAhv.net] >>71 クラスの操作だからクラスをそういうふうに 作ればそうなる 何故とか本質がどうとかは設計した人の考え 便利だなと思えば使えばいい
75 名前:デフォルトの名無しさん [2021/03/21(日) 23:09:36.59 ID:OQZaxlrU.net] >>74 ありがとうございました! 気にせず使っていきます
76 名前:デフォルトの名無しさん mailto:sage [2021/03/21(日) 23:22:30.25 ID:ztnIU7M3.net] >>71 listやtupleやstrなどのシーケンスと呼ばれる型に対する*演算子は シーケンスの中身の要素を指定した回数分繰り返した新しいシーケンスを返すように定義されてる
77 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 04:49:29.76 ID:FrFq7CFg.net] >>71 FAQ中のFAQだから余計な世話かもしれんが、見た目が同じでも同じリストでは無いことに気をつけてね リストの中身は要素への参照だから、それを複製した後者は同じオブジェクトを3回参照してる(cでいえば、同じポインタx3) 見た目が同じオブジェクトを判別するためにid関数が用意されているから試してみて 前者をl1, 後者をl2として map(id, l1), map(id, l2) 前者のidは全て同じ、後者は新たに作った[1,2]を3つ並べてるので3つとも違うはず 参照の概念をややこしいと思いlistを避けたいと思うのなら、型の同じ要素を入れる場合は常にarrayを使う事を推奨する(標準型の範囲では) 具体的な値の配列なので、型チェックも入り、効率もよい
78 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 05:17:24.56 ID:FrFq7CFg.net] i for rangeイディオムは不要な添字iが気持ち悪いよな… ロジック通りに、ビルトイン関数のみでミニマルにやるには memoryview([1, 2]).cast('b', shape=(3, 2)).tolist() [[1, 2] [1, 2] [1, 2]] でいいだろう tolistはリスト表示するためなのでお好みで 数字が小さいからbyte配列にしたけど、普段使いならlongにしといた方が気楽かも
79 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 05:25:09.41 ID:FrFq7CFg.net] byteって言ってるのにbyte抜けてたごめん memoryview(bytes([1, 2])).cast('b', shape=(3, 2)).tolist() [[1, 2] [1, 2] [1, 2]] です、試してないけど多分動くだろ 実用にはbytesはarray('l', seq)へ差し替えてね
80 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 12:40:31.58 ID:uAAKNqiZ.net] while True: _a = 1 _break print(a) インデント下がって定義した変数をwhileの外でも使うのは普通なのでしょうか スコープの判断で可読性が落ちるかなと個人的に思ったのですが慣れですかね
81 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 12:53:03.86 ID:bzTgC/HJ.net] >>80 それしきの深さならえんでねーの それにしてもパイセンいわく while True:で安易に無限ループ作るのはイクナイ(・A・)らしいが
82 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 14:08:43.53 ID:Rzf9eLtl.net] >>80 python的には普通らしい ただ見通しが悪くなる場合が多いのと 勘違いによる不具合を起こさないために自分は極力避けてる
83 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 15:33:16.54 ID:uAAKNqiZ.net] >>81 ,82 なるほど とりあえずは現状維持にしときます ありやした
84 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 21:09:47.56 ID:cezDTGq+.net] >>81 Cなら for(;;) とか出来たけど itertools.count() とかダサいねん。
85 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 21:32:57.72 ID:H+rnlZW/.net] whileTrueって使ったらあかんの?
86 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 21:38:05.40 ID:bzTgC/HJ.net] 良くはない、らしい 有能なパイセン談
87 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 21:45:46.85 ID:OQmrOVJK.net] while str:
88 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 21:52:49.95 ID:10Qa0fDO.net] するな コールバックがあるから
89 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 23:07:52.41 ID:g8se3Ggw.net] Python公式リポジトリ検索してみたらほんと腐るほど見つかって嫌になった。 全部挙げきれないので一例: https://github.com/python/cpython/blob/63298930fb531ba2bb4f23bc3b915dbf1e17e9e1/Tools/ccbench/ccbench.py#L163 https://github.com/python/cpython/blob/63298930fb531ba2bb4f23bc3b915dbf1e17e9e1/Lib/test/test_shlex.py#L265 https://github.com/python/cpython/blob/63298930fb531ba2bb4f23bc3b915dbf1e17e9e1/Lib/concurrent/futures/thread.py#L74 https://github.com/python/cpython/blob/63298930fb531ba2bb4f23bc3b915dbf1e17e9e1/Lib/concurrent/futures/thread.py#L202 それならまだしもwhile 1:とかもある↓ https://github.com/python/cpython/blob/63298930fb531ba2bb4f23bc3b915dbf1e17e9e1/Lib/idlelib/hyperparser.py#L240
90 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 23:19:25.97 ID:xEZrbDTS.net] >>85 無限ループ自体が処理によってはCPU負荷が上がったりするし break条件をミスってると不具合があった時にループから抜けずに変な所でエラーになる可能性も出てくる だから最初から有限回ループして確実に止まるループ設計の方が安全だよね、っていう考えはある (まあwhile True breakの方が書きやすい場面も多いけどね)
91 名前:デフォルトの名無しさん mailto:sage [2021/03/23(火) 00:43:05.32 ID:ch/yi3Wo.net] 無限ループは無限ループが必要だから使うのであって、 有限のイテレータのループで書き換えられるときには当然使わないのでは? 有限と無限を同列に並べて比較すること自体がなんか違和感あるけど。
92 名前:デフォルトの名無しさん mailto:sage [2021/03/23(火) 00:48:20.02 ID:BKCKGFNi.net] while自体の処理が重いから使うなってならわかるけどミスったら困るから使うなって、理由になってなくない 使いどころも無視してとにかく使うなって、先人の下手なトラウマが一人歩きしてるだけじゃねーの
93 名前:デフォルトの名無しさん mailto:sage [2021/03/23(火) 02:55:45.64 ID:71b8io/J.net] まあループの有限性が事前にわかるようならそれを表現するためにwhile 1: 使うのは適切じゃないって話だろ。 実際ループ変数ぽいの使ってなぜか while 1使ってるコードは新人にはよくある。
94 名前:デフォルトの名無しさん mailto:sage [2021/03/23(火) 02:59:15.82 ID:QbxOC6mC.net] >>81 ポンコツかよ 他に無条件ループ作るコンストラクトがあるなら教えてほしいわ 上の方のレスにある9999999決め打ちでもするのか? 他にもハック挙がってるけどどう考えてもwhile True:より筋が悪いよね? 先輩が言ってたから正しい?自分の意見を持とうよ?
95 名前:デフォルトの名無しさん mailto:sage [2021/03/23(火) 03:26:27.50 ID:ND3VvCO4.net] while yes=sir:
96 名前:デフォルトの名無しさん mailto:sage [2021/03/23(火) 03:33:34.75 ID:QbxOC6mC.net] …と偉そうなこと言った手前、俺の習慣を紹介しておく while True や1は仕様上そうするのが筋なので、確かに冗長と批判できる truthyならwhile "comment":でも、while ...:でもよい 何の情報も含まないwhile True/1:よりは良い習慣 後者は…それが思いつかなかった時だな、コメントがbreakの傍に付いている方が合理的なケースもあるので ....は1, 2, 3, ...という一般に認知されている表記なので、trueを表現するtruthy(5シンボルとしては、1/Trueより優れている事は明らかだろう
97 名前:デフォルトの名無しさん [2021/03/23(火) 03:49:20.93 ID:zpYNNqZr.net] >>64 if not cond: __while True: ____print('処理A') ____time.sleep(1) for i in range(10): __print('処理A') __time.sleep(1) この部分だけ書けていわれたらこうするわ
98 名前:デフォルトの名無しさん mailto:sage [2021/03/23(火) 06:54:35.77 ID:ZYJLDniu.net] >>97 無限ループいつ抜けるの? それと条件によって無限ループか有限ループかという2つの処理分岐が並列に書かれてないから意図が伝わりにくいよ
99 名前:デフォルトの名無しさん mailto:sage [2021/03/23(火) 06:55:42.42 ID:ZYJLDniu.net] >>96 ちょっと何言ってるかわからない
100 名前:デフォルトの名無しさん [2021/03/23(火) 10:05:15.95 ID:HSGkWRhe.net] GOTO文のように無限ループ文を作れば解決する