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 ###
2 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 22:37:38.56 ID:jNpDIIz5.net] 立て乙
3 名前:デフォルトの名無しさん [2022/05/24(火) 13:49:28.09 ID:cQhl8P2i.net] かわいい女の子に上目遣いで拗ねたように「いじわる」と言われると興奮するんです
4 名前:デフォルトの名無しさん [2022/06/05(日) 08:46:24.02 ID:Sg+yaBaV.net] pandasについての質問です。 "PRICE1","PRICE2","PRICE3","P1(%)","P2(%)","P3(%)"の順にデータが入ってるとします。 下記みたいな感じです。 @[0,0,2470,0,0,27] ○ A[0,0,1570,0,0,0] ☓ B[0,1580,1440,0,35,31] ○ C[0,1290,2878,0,0,31] ☓ D[2522,885,940,31,0,0] ☓ E[1527,1057,1639,28,5,31] ☓ F[1527,1457,1639,28,26,31] ○ ○をつけたデータが残したいデータになります。 @AのようにPRICE>0のPRICEデータが1つの場合は、該当するP(%)データが25より大きい場合に残したいです。 BCのようにPRICE>0のPRICEデータが2つの場合は、該当するP(%)データがどちらも20より大きい場合に残したいです。 DEFのようにPRICE>0のPRICEデータが3つの場合は、該当するP(%)データがどちらも15より大きい場合に残したいです。 調べたら下記のような感じでやっていくことがわかったのですが、思うように整理できません。 df = pd.read_sql(sql=f'SELECT "PRICE1","PRICE2","PRICE3","P1(%)","P2(%)","P3(%)" FROM {schema}."{get_table}";', con=conn) df = df[(df["PRICE1"]>0) | (df["PRICE2"]>0) | (df["PRICE3"]>0) | (df["P1(%)"]>25) | (df["P1(%)"]>25) | (df["P1(%)"]>25)] df = [tuple(x) for x in df.values] 誰か助けてくだしあ
5 名前:デフォルトの名無しさん [2022/06/05(日) 11:40:11.32 ID:ocueg4o5.net] よーしらんが、論理回路の問題なんだろ? なら一時的にif(if(if))みたいなネストの深いクソコード書いて、細かくデバック通すか 関数宣言をさぼらずに、(df["PRICE1"]>0)や(df["P1(%)"]>25)に分かりやすい関数名付けたほうがいいんじゃねえかな
6 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 12:23:41.62 ID:NOI2DZIw.net] datetime.datetimeクラスの順序比較に手を加えたくなって、モジュールのソースをみたら_cmp()メソッドが比較の本体だったので ttps://techiedelight.com/compiler/?zbRJ というコードで試したのですが、そもそも_cmp()が呼ばれません これって、私は何を間違えているのでしょう? (なお、当初やりたかったこと自体は__eq__, __gt__, __ge__, __le__, __lt__, __ne__を直接オーバーライドすることで達成できました)
7 名前:デフォルトの名無しさん [2022/06/05(日) 12:40:05.08 ID:u0j22vIZ.net] 条件に合うものを残すより 条件に合わないものを消していく方が効率が良い
8 名前:デフォルトの名無しさん [2022/06/05(日) 12:44:51.80 ID:u0j22vIZ.net] >>6 https://qiita.com/nkennek/items/8c54365cb873cca8730a https://www.delftstack.com/ja/howto/python/python-private-method/ https://blowup-bbs.com/python-class3/
9 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 14:26:03.02 ID:NOI2DZIw.net] >>8 お返事ありがとうございます しかし、_cmpのアンダースコアは一つですし、AttributeErrorが発生したりせず単に呼ばれないだけ(比較自体は出来ているので親クラスの_cmp()が呼ばれているはず)です マングル化に関するページをご紹介いただいた意味がよく分かりません
10 名前:デフォルトの名無しさん [2022/06/05(日) 14:57:15.34 ID:ocueg4o5.net] def もれそう(arg1, arg2, arg3, arg4, arg5, arg6): __うんこ = [arg1, arg2, arg3] __おもさ = [arg4, arg5, arg6] __def 内容量(element): ____return len(list(filter(lambda x: x > 0, element))) __def 耐久力(element, n): ____return list(filter(lambda x: x > n, element)) __if 内容量(うんこ) == 1: ____return 耐久力(おもさ, 25) __elif 内容量(うんこ) == 2: ____return 耐久力(おもさ, 20) __elif 内容量(うんこ) == 3: ____return 耐久力(おもさ, 15) df = もれそう(茶色1,茶色2,茶色3,重量1, 重量2, 重量3) pandasのことよー知らんから>>5 で適当なこと書いちゃったけど、こういうことだよな どっかで関数一覧に目を通すなりして、array関数とかcallback関数の使い方覚えたほうがいいぞ
11 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 15:01:54.57 ID:v/p+BagL.net] >>4 sqlでの抽出は知らんけど、他の方法で抽出でけた import pandas as pd data=[ [0,0,2470,0,0,27], [0,0,1570,0,0,0], [0,1580,1440,0,35,31], [0,1290,2878,0,0,31], [2522,885,940,31,0,0], [1527,1057,1639,28,5,31], [1527,1457,1639,28,26,31]] df = pd.DataFrame(data) def check(row): d = {1:25, 2:20, 3:15} return all(i[1] > d[len(row)] for i in row) # 各PRICEと各P(%)の組をzipで作って、その中からPRICEがゼロのものを削除したものをcheck関数でチェック [check([k for k in j if k[0]>0]) for j in [list(zip(i[:3], i[3:])) for i in df.values.tolist()]] [True, False, True, False, False, False, True] # ブールインデックス作成 df2 = df[_] # ブールインデックスで抽出 df2.values.tolist() [[0, 0, 2470, 0, 0, 27], [0, 1580, 1440, 0, 35, 31], [1527, 1457, 1639, 28, 26, 31]]
12 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 15:18:41.40 ID:v/p+BagL.net] プロンプトが無くて入力と出力が分かりにくかったので、プロンプト追加 >>>import pandas as pd >>>data=[ ・・・ [0,0,2470,0,0,27], ・・・ [0,0,1570,0,0,0], ・・・ [0,1580,1440,0,35,31], ・・・ [0,1290,2878,0,0,31], ・・・ [2522,885,940,31,0,0], ・・・ [1527,1057,1639,28,5,31], ・・・ [1527,1457,1639,28,26,31]] >>>df = pd.DataFrame(data) >>>def check(row): ・・・ d = {1:25, 2:20, 3:15} ・・・ return all(i[1] > d[len(row)] for i in row) # 各PRICEと各P(%)の組をzipで作って、その中からPRICEがゼロのものを削除したものをcheck関数でチェック >>>[check([k for k in j if k[0]>0]) for j in [list(zip(i[:3], i[3:])) for i in df.values.tolist()]] [True, False, True, False, False, False, True] # ブールインデックス作成 >>>df2 = df[_] # ブールインデックスで抽出 >>>df2.values.tolist() [[0, 0, 2470, 0, 0, 27], [0, 1580, 1440, 0, 35, 31], [1527, 1457, 1639, 28, 26, 31]]
13 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 15:20:27.82 ID:joAjo/JZ.net] >>5 >>10 >>11 ありがとうございます! 家帰ったら内容目通していじってみます
14 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 15:21:54.55 ID:joAjo/JZ.net] >>12 正直かなり助かりました。 まだ家帰れてないので試せてないけど、かなり行けそうなイメージです
15 名前:デフォルトの名無しさん [2022/06/05(日) 15:24:04.14 ID:udiiYXiV.net] >>9 >親クラスの_cmp()が呼ばれているはず 確かめた?
16 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 15:33:26.33 ID:NOI2DZIw.net] >>15 お返事ありがとうございます。親クラスのメソッドが呼び出されていることを実際にどう確認すればいいのか思いつけないレベルです(デバッガ? トレース?) ただ単に、例外が送出されずに比較結果が表示されたので、何らかの比較するメソッドが呼ばれたのだろうと想像しただけです 例えば、foo <= datetime.datetime.max が評価されるとき 1) foo.__le__(datetime.datetime.max) が呼ばれる 2) fooには__le__メソッドが定義されていないので親クラスに遡って datetime.datetime.__le__(self=foo, other=datetime.datetime.max) が呼ばれる 3) ttps://github.com/python/cpython/blob/main/Lib/datetime.py の2110行 self._cmp(other) へ進む ここでself=foo, other=datetime.datetime.max なので、 foo._cmp(other=datetime.datetime.max) と、 ttps://techiedelight.com/compiler/?zbRJ の4行目で定義したメソッドが呼ばれる と考えていたのですが……継承に関する理解がどっかで間違っているのでしょうね
17 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 15:56:02.34 ID:U0Dsg58D.net] 俺も気になる。何で_cmp呼ばれんの?
18 名前:デフォルトの名無しさん [2022/06/05(日) 18:26:33.72 ID:NPpCVuaP.net] foo を造ってるのが now() なので foo の型が datetime のままなんじゃね
19 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 19:36:27.49 ID:NPpCVuaP.net] print(super(DatetimeTest, self)._cmp) ↓ AttributeError: 'super' object has no attribute '_cmp'
20 名前:デフォルトの名無しさん [2022/06/05(日) 19:37:47.11 ID:NPpCVuaP.net] こっちは動く https://techiedelight.com/compiler/?Jmnq
21 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 19:39:44.56 ID:v/p+BagL.net] >>12 allの引数が空の場合(全てのPRICEがゼロの場合)にTrueを返すのでcheck関数修正 def check(row): d = {1:25, 2:20, 3:15} return all(i[1] > d[len(row)] for i in row) if row else False
22 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 20:20:03.24 ID:x6+Exssm.net] ジェネレーター式まで学習が進んだが ちゃんと慣れないと突然でてきたとき「なんだこれ!?」ってなるとおもうわ 見やすくするためのものだからそんな複雑な構造で出てくることはないと思うが
23 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 21:55:46.01 ID:NOI2DZIw.net] ID:NPpCVuaPさん、ありがとうございます > foo を造ってるのが now() なので > foo の型が datetime のままなんじゃね type(foo)はちゃんと"<class '__main__.DatetimeTest'>"になっていましたので、その線は無さそうです で、試していただいた ttps://techiedelight.com/compiler/?Jmnq ですと、>>16 で私が考えたとおりの動作をしているように見えますね となると、datetime.datetimeとHogeで何が違うのか……ちょっと脳味噌が煮えてきたので、一旦専ブラを閉じて頭を冷やします
24 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 23:10:11.97 ID:v/p+BagL.net] >>23 dirで_cmpが見えるか見えないかの違いじゃないでしょうか >>20 のdir(Hoge(0)), dir(Fuga(0))は伴に_cmpが見えますが dir(datetime.datetime.now())は_cmpが表示されないのでアクセスできないんですよ
25 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 08:54:18.93 ID:9r9DwyjN.net] 見えないのはわかったけどその挙動を実現するための言語仕様ってあるんだっけ?
26 名前:デフォルトの名無しさん [2022/06/06(月) 09:18:43.10 ID:Ug3DHjCK.net] 本体はこっちじゃね https://github.com/python/cpython/blob/main/Modules/_datetimemodule.c
27 名前:デフォルトの名無しさん [2022/06/06(月) 09:23:35.02 ID:Ug3DHjCK.net] まずやるべきことは >15 だろ
28 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 09:43:37.49 ID:zYl8ARh2.net] やりましたみなさん、分かりました! datetime.pyの最後のにfrom _datetime import *をtryする記述があり 成功したら_cmpなどを消す処理が書いてあるんですが、この_datetimeをimportする関連個所を ごっそりコメントアウトして import datetime dir(datetime.datetime.now())
29 名前: したら_cmpが表示されましたよ、つまりdatetimeの本体は_datetimeで>>26 のヤツじゃないでしょうか [] [ここ壊れてます]
30 名前:6, 9, 16, 23 mailto:sage [2022/06/06(月) 09:50:52.59 ID:PsDk58Y7.net] >>24 お返事ありがとうございます 呼べないのはDatetimeTest._cmp()であってdatetime.datetime._cmp()は呼べている(ように見える)わけですから datetime.datetime._cmpが見えないことに意味があるのかどうか……一晩経っても脳が煮えたままです ちなみにdir(foo)だと_cmpが見えてますね…… >>26-28 とりあえず知識もスキルもないなりに手を動かそうと思って、 ttps://techiedelight.com/compiler/?zbRJ のimport datetimeの位置に datetimeモジュールのソースをそのまま全部貼り付けてあれこれ試したところ(そのコードはでかいしTECHIE DELIGHTの利用規約的にクリアかどうか分からないのでアップしません) ttps://github.com/python/cpython/blob/main/Lib/datetime.py の最後、2614行目以降が無ければ>>16 で私が考えたとおりの動作になる、つまりfoo._cmp()が呼ばれますが、2614行目以降がそのままだと呼ばれませんでした ということで、遅ればせながら>>28 さんと同じ結果に辿り着けました Cで書かれたモジュールを読み込んで、未使用の名前を削除して、という工程の中になにかありそう、というあたりが今のところ私の限界です
31 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 09:54:12.32 ID:Ug3DHjCK.net] なるほど _cmp は存在しなかったで FA
32 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 09:54:13.01 ID:PsDk58Y7.net] 皆さまいろいろとありがとうございます やはり>>27 さんのおっしゃるとおり、まず>>15 さんの指摘を確かめなければならなかったようですね
33 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 09:56:28.25 ID:9r9DwyjN.net] >>28 まじか グローバルにも_cmpがあるからそれを消すためのコードと思いきや、datetime.datetime._cmpも消えるのね…
34 名前:デフォルトの名無しさん [2022/06/06(月) 10:03:42.68 ID:Ug3DHjCK.net] >>29 そこで削除されてる _cmp は module のグローバルの _cmp であって 各クラス内の _cmp は削除されてないようにも観える
35 名前:デフォルトの名無しさん [2022/06/06(月) 10:05:27.81 ID:Ug3DHjCK.net] >>32 かぶったが 解せぬ
36 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 10:13:54.31 ID:zYl8ARh2.net] >>32 グローバルの_cmpを消す処理で合ってると思いますよ 通常は _datetime (たぶん本体がC言語)をimportする、この中にはself._cmpが無いのでdirで見えないし グローバルの_cmpを消す処理でグローバルの方も見えない _datetimeのimportに失敗したらdatetime.pyに書かれているdatetimeクラスが使われるし グローバルの_cmpを消す処理が実行されないので dir(datetime)でグローバルの_cmpが見えるし、dir(datetime.datetime)でself._cmpが見える
37 名前:デフォルトの名無しさん [2022/06/07(火) 17:25:02.03 ID:NE4LVa9l.net] なんのための fake
38 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 06:15:05 ID:8a3xVi5I.net] python 2.x 系の環境です。 file_path を関連付けで実行させるために下記コードを記述しました。 目的としては引数の文字列を unicode として渡したいです。 subprocess.Popen(「'start', file_path], shell=True) この際、引数は cp932 として扱われるようで、 file_path を cp932 にencode しないと失敗します。 unicode にしかない文字が含まれる場合があるので unicode のまま渡したいのですが Popen 側で引数を unicode として受け取れる方法はありますか? encoding= は Python 2.x は未対応、 またパイプを使って chcp 65001 を先に実行させてもダメでした。
39 名前:37 [2022/06/08(水) 07:56:30.16 ID:Ty02xZw9.net] win環境なのですが2.x系では内部で ANSI版のCreateProcessAを呼び出しているとのことで そもそもダメということが分かりました ctypesなど使ってCreateProcessWを直接呼び出すなどするしかないみたいです
40 名前:デフォルトの名無しさん [2022/06/08(水) 12:41:12.70 ID:P10Nnex8.net] 今のWindowsおすすめpython環境はなんですか? 教育用?にWindowsでのpython環境を作りたいです。 無印python、anaconda、PyCharmはどれがいいでしょうか。 エディタはVSCodeの利用を考えてます。 自分は普段、LinuxやWSL2でemacsを使っているオールドタイプです。 教えて下さい
41 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 13:17:16.31 ID:Ylodbyzl.net] google colaboratry で十分
42 名前:デフォルトの名無しさん [2022/06/08(水) 13:42:31.40 ID:rPUwIz8x.net] たとえば以下のようなリストが即興で欲しくなった場合ってどうしてます? [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]…………] (下の例では0~12まで) ググった結果numpyで配列を作ってtolistでリスト化する方法は見つけたんですけど もっとぱっと書けないですかね? import as numpy np arr_2d = np.arange(12).reshape((4, 3)) print(arr_2d.tolist())
43 名前:デフォルトの名無しさん [2022/06/08(水) 13:43:05.22 ID:rPUwIz8x.net] 0~12じゃねえわ11だった
44 名前:デフォルトの名無しさん [2022/06/08(水) 15:41:41.08 ID:Mk/J73jd.net] >>39 前は素の python 入れて pip してた Anaconda + conda 使ったこともある Thonny + pip も良いと思う
45 名前:デフォルトの名無しさん [2022/06/08(水) 15:45:15.80 ID:Mk/J73jd.net] np.arange(12).reshape((4, 3)).tolist() [[y * 3 + x for x in range(3)] for y in range(4)]
46 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 15:50:39.30 ID:WqwdOMp+.net] >>41 [list(range(i, i+3)) for i in range(12)[::3]]
47 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 15:55:39.94 ID:SMHvnx3K.net] import more_itertools list(more_itertools.chunked(range(12), 3))
48 名前:デフォルトの名無しさん [2022/06/08(水) 16:25:32.81 ID:KT22GtKj.net] [np.array([0, 1, 2]) + 3*_ for _ in range(4)]
49 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 18:22:00.06 ID:WqwdOMp+.net] >>41 さらに短くできた [list(range(i, i+3)) for i in range(0,12,3)] もう出尽くしたやろ、ワイのが一番やな、組み込みのみだし直感的だし 応用もきくし、ワイが一番やろw
50 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 18:40:08.42 ID:3lPgPXCP.net] >>39 WinPython+VScodeが正解だぞ anacondaは、Pythonを習得し、Pythonと外部ライブラリの境界を把握できるように なった人のうち、anacondaを必要とする人だけが使うものだ
51 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 19:34:37.02 ID:nVdli+zf.net] >>39 Pythonで何やりたいのかわかんねーからてきとーだけど Dockerコンテナにanacodaとvscodeが正解
52 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 19:37:13.76 ID:d7/kuIlk.net] dockerはdockerの勉強になるしwindowsだと安定しないから要らんな
53 名前:デフォルトの名無しさん [2022/06/08(水) 23:45:53.43 ID:rPUwIz8x.net] >>44-48 ありがとう、勉強になった!
54 名前:デフォルトの名無しさん [2022/06/09(木) 03:35:46.64 ID:aPNi5OBU.net] pythonのライブラリを調べているのですが C言語で書かれている部分(cソースコード)には どうやってたどり着けばいいのでしょうか? 例としてrandom.random()が0.0以上1.0未満の浮動小数点数を かえしますが、どうゆう仕組みで返すのかを調べたいのです
55 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 04:32:16.69 ID:FzQACe2i.net] >>53 コンパイル済みのを一般に調べるのは無理。標準ライブラリなら例えばcpython のリポジトリから探せる。https://github.com/python/cpython
56 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 05:11:23 ID:aPNi5OBU.net] >>54 回答ありがとうございました _randommodule.cまでたどりつきました 少しハードルが高いですが頑張って理解に努めようと思います。
57 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 05:17:33 ID:FzQACe2i.net] >>55 蛇足かもですがpython の乱数はメルセンヌツイスタというアルゴリズムなので調べてみるといいかもしれません
58 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 05:44:46.90 ID:aPNi5OBU.net] >>56 _randommodule.cの中に日本人の名前があったので 何故だろうと思いましたがメルセンヌツイスタで検索したら つながりました。感謝です
59 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 18:02:41.85 ID:i3H8tE1L.net] >>39 公式Python+PyCharmが便利
60 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 18:22:37.05 ID:8SlPB6O/.net] 教育用なら圧倒的シェアを獲得しているVSCodeの方が良いと思うよ
61 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 18:36:52.52 ID:ZOUr8HN/.net] pycharmはなぁ…
62 名前:デフォルトの名無しさん [2022/06/09(木) 22:20:46.40 ID:KIKA+I2C.net] >>39 教育に、環境構築の手間を含められるかどうかによるかな。 純粋にプログラムとは何かを知ってもらうだけだったらcolab Pythonスクリプトをちゃんと動かせるようになることが目標だったらWindows用のPythonかなぁ。
63 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 22:22:21.55 ID:1X1IjXim.net] ideoneでいいじゃん。 colabより高性能だよ。 公開されてしまうが。
64 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 23:14:03 ID:gzzbtW8N.net] そいや親戚のとこの子供が学校でPythonのプログラムやっているというのだが、 ああいうのって、どういう仕様の実行環境なんだ? グラフや絵を描けたり、画面上のピアノの鍵盤叩くと音が出せるとか、 なにやら色々とできるようなのだが というかpipであれこれ山盛りにされてる環境にも思える Scratchだと思ってた
65 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 23:16:22 ID:1tSt6fQl.net] ideoneとColab(Jupyter)だと機能がダンチだから土俵がちがう
66 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 23:20:50 ID:1tSt6fQl.net] >>63 MakeCodeとかUI Flowのあたり? ブロックプロラミングとPythonを行ったり来たりできる
67 名前:デフォルトの名無しさん [2022/06/10(金) 03:26:54.12 ID:v7zmV4Lt.net] vscodeって途中のコードいじってると下記の折り畳み全部開いちゃうじゃん。あれ超鬱陶しい
68 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 12:08:03.84 ID:sFhUkWJJ.net] 関数の引数型説明(アノテーション?)をつけるとき、intやstr等の組込み型ではなく、クラスのインスタンスの場合どのように書けばよいでしょうか
69 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 12:38:18.30 ID:Lq4KcKs2.net] https://docs.djangoproject.com/ja/3.2/intro/tutorial05/ このページの最初のコードをshellモードでやってもtimezone has no 'now'って出るんだけどなんでだよ ついでにいうとsettings.pyでuse_tz = Falseにすると逆に日本時間になってTrueにするとUTCになる
70 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 14:22:36.04 ID:Lq4KcKs2.net] 解決 from django.utils import timezone じゃなくて from datetime import timezoneって書いてた
71 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 10:31:55 ID:yOzdOwl+.net] 超初心者です!古いMacでも出来ますか?
72 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 11:18:37.09 ID:85fUpHB3.net] >>70 https://homepages.cwi.nl/~jack/macpython/index.html これだとバージョン古いからMac-on-Linux化してLinux側で動かすか リモートでもいいならWebブラウザのGoogle Colabやクラウド上のLinuxでやれる
73 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 11:20:32.01 ID:IHQzlSUe.net] >>67 例えばpandas(pd)のデータフレーム(df)なら import pandas as pd def some_func(df: pd.DataFrame, some_num: int = 42) -> pd.DataFrame: df2 = df.cooy() # 処理 return df2
74 名前:67 mailto:sage [2022/06/12(日) 06:48:37.19 ID:0q70LBVd.net] >>72 ありがとうございます
75 名前:デフォルトの名無しさん [2022/06/12(日) 08:55:03.32 ID:LQ+2P+LS.net] サポート期限すぎたMac使ってそう
76 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 18:06:38.20 ID:9B8stwi/.net] leetcodeの問題解いてるんだけどさ コードをvscodeとかのエディタ上で再現しようとしてもinputはleetcode側がやってるから、コードコピペしてもうまく動かないってことか? Input: strs = ["flower","flow","flight"] class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: # 回答をここに書いた こういうクラスを実行する場合って solu = Solution() solu.longestCommonPrefix() こんな感じにすると思うんだが、エラーが NameError: name 'List' is not defined とかになるんだよね
77 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 18:18:33.18 ID:d5yVlq+K.net] そのくらいはimportしろよ
78 名前:デフォルトの名無しさん [2022/06/12(日) 18:22:48.72 ID:V8Tt9ICP.net] エラー文も読めないのか 新しいpythonならlist[str]だバカタレ
79 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 18:23:08.52 ID:fSdhUbKc.net] >>75 そこだけの話でいうと from typing import * だけど、問題のコードが古い 今はListをlistと書くようになったから
80 名前:デフォルトの名無しさん [2022/06/12(日) 18:42:58.91 ID:w/rq6Our.net] nameErrorとかattributeErrorと最低限のエラーぐらい読めるようになろう 問題といてる場合じゃない
81 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 19:23:48.95 ID:9B8stwi/.net] >>78 なるほどそういうことか ありがとう
82 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 03:56:57.46 ID:i0EppADi.net] >>1 def reverse(url): return url[::-1] lst = [ ['=v?hc','taw/','moc.e'], ['.www','//:sp','tth'], ['but','uoy'] ] yt = ''.join( lst[0] + lst[2] + lst[1] ) id_lst = ['MOYukLAWwkK', 'A4c_Lbwf-Jw', '0glgH5rR_po'] for id in id_lst: print( reverse( id + yt ) ) "".join("ht_t_ps://ja_.wiki_pedia.o_rg/_wiki/朝鮮神宮".split("_"))
83 名前:デフォルトの名無しさん [2022/06/17(金) 05:22:40.60 ID:eircCDFG.net] >>1 reverse = lambda *argv: [ '//:sptth'[::-1] + url[::-1] for url in argv ] lst_url = reverse('IPq5AyxxvpM=v?hctaw/moc.ebutuoy.www', '0EgauYFUN8N=v?hctaw/moc.ebutuoy.www', '48132/-/selcitra/pj.tnediserp', '4456111984139806941/sutats/oobnolihsusta/moc.rettiwt', '81605591320X602502201/txt/elpmis/pj.og.ldn.iakkok', '1021=morf?15978662os/hctaw/pj.oedivocin.www', '8xebddeeiYY=v?hctaw/moc.ebutuoy.www') print(*lst_url, sep='\n')
84 名前:デフォルトの名無しさん [2022/06/17(金) 08:29:57.19 ID:doPvN/Dz.net] これを三項演算子で書くことってできますかね? if a: if b or c: print("1") else: pring("2")
85 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 08:40:15.00 ID:impPpfbo.net] インデントどこやった
86 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 09:16:26.10 ID:b18JcTPN.net] 5chはインデント未対応なので pythonコードを貼るときは 行頭インデントを全角アンダーバーで 埋めてください
87 名前:デフォルトの名無しさん [2022/06/17(金) 09:26:11.91 ID:doPvN/Dz.net] こんなかんじです a b c は true か falseが入る変数です if a: _if b or c: __print("1") else: _print("2")
88 名前:デフォルトの名無しさん [2022/06/17(金) 09:35:01.18 ID:nb2nCyEf.net] >>86 print((1 if b or c else "") if a else 2) 三項演算子ならば全ケース対応する必要がある a and not (b or c)の場合は空文字列とした
89 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 09:52:15.09 ID:Ws3c1l54.net] 回答になってないが if not a: __print(2) elif b or c: __print(1) でよくない?
90 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 12:17:47 ID:uqpMsu92.net] a = True, b = False, c = Falseのケースを見落としてるのか 意図して何もしてないのかが読み手にはわからないからすごく気持ち悪い
91 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 12:40:54 ID:u2aqxJXf.net] テキストだと以下のようになるんだけど # 整数(Python の int 型)の要素をもつリストを与えた場合 x = np.array([1, 2, 3]) x.dtype 結果 dtype('int64') 自分の環境だとdtype('int32')になるんだよね これってあんまり気にしなくて良い部分? ちなみに以下のはテキストと同じ結果になる # 浮動小数点数(Python の float 型)の要素をもつリストを与えた場合 x = np.array([1., 2., 3.]) x.dtype 結果 dtype('float64')
92 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 13:02:51.91 ID:sBNVv+WO.net] numpyのintはC言語のlong あなたの環境はWindowsで本はLinuxなのだろう
93 名前:デフォルトの名無しさん [2022/06/17(金) 16:24:32.82 ID:G79h5Zer.net] >>87 無駄な改行が増えるので仕様が異なる
94 名前:デフォルトの名無しさん [2022/06/17(金) 16:26:41.62 ID:G79h5Zer.net] >>90 OSの32/64と pythonの32/64と それぞれどっちが動いてるかは意識するべき
95 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 17:59:15.20 ID:JzEGKltv.net] >>93 それとは別の話なんやで
96 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 19:32:27.63 ID:Ta4m0XWe.net] >>82 'stnemugra-gnikcapnu-tut#lmth.wolflortnoc/lairotut/3/aj/gro.nohtyp.scod//:sptth'[::-1]
97 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 20:07:00 ID:IFnpw5My.net] jupyternotebook で実行中のセルからほかのセルを呼び出して実行できませんか? マジックコマンドをみてもそれらしきものがないような vbaでいえば、セルをプロシージャ、ノートブックをモジュールのように扱いたいのですが・・
98 名前:デフォルトの名無しさん [2022/06/17(金) 23:55:43.50 ID:doPvN/Dz.net] 86ですが回答ありがとうございました。 これでいけそうです print("b") if not a else print("a") if b or c else print("c")
99 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 01:17:30.65 ID:lHai4Yqe.net] >>96 モジュール化するのはだめなんか? インポートしたらいいじゃまいか
100 名前:デフォルトの名無しさん [2022/06/18(土) 11:02:31.05 ID:0BdDrqNN.net] >>90 気になるなら x = np.array([1, 2, 3], dtype=np.float32)
101 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 17:19:34.23 ID:AeKYwQGO.net] ""と''の違いってある? 単に出力の違いとかじゃなくてコードを書く上での使い方の違いとか
102 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 18:19:13.17 ID:HiXA4239.net] https://pep8-ja.readthedocs.io/ja/latest/#section-11
103 名前:デフォルトの名無しさん [2022/06/18(土) 18:53:41.89 ID:U2ccem7m.net] >>100 英語キーボードなら''のほうが楽
104 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 19:06:28.02 ID:H57335ve.net] >>98 ありがとうございます 検索すると、実行セルのipynbとは別のipynbファイルおよびセルをインポートする方法はあるのですが、 実行セルと同じipynbファイルにある別セル(例えば、実行セルの一つ上のセル)を呼び出したい 場合は、自分自身のipynbをインポートするということでしょうか? インポートするipynbのセルすべてを実行するとあるので、素人感覚では無限ループになってしまうそうなのですが・・ 呼び出される側のセルをpyファイルに出力してそのpyファイルをインポートすればいい話かもしれませんが、いちいち pyファイルで書き出すのもなあ…と 理解が悪くてすみません
105 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 19:19:37.26 ID:HiXA4239.net] 普通に関数を作るのではだめなの
106 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 20:04:40.40 ID:H57335ve.net] >>104 ありがとうございます それでももちろんできるのですが、呼び出される側のセルを単体で実行することも多く、また同一ipynbのその他多くの セルからも呼び出したいのです(処理が共通している vbaだと、publicsubプロシージャで独立させてしまえばいい話だったので同じことがしたいなと
107 名前:デフォルトの名無しさん [2022/06/18(土) 20:08:08.31 ID:cOcEcivy.net] jupyterなんて池沼用だろ
108 名前:デフォルトの名無しさん [2022/06/18(土) 22:44:24 ID:FjYCWDRz.net] blenderでpythonスクリプトを使ってキャラクターの目のまばたきの動きを制御してるんですがやってることをグラフで表すとこんな感じで https://i.imgur.com/3wSHCrT.jpg yにどのくらい目を動かすかの数値が入り xにアニメーションの経過フレーム数が入るとして xが0のときyは0 xが3のときyは6 という条件があるものとして それをグラフで表すと増量が一定ならば一番左のグラフのようにyが2ずつ増えるグラフになると思いますけど これだとまばたきが毎回同じ動きになってしまうので変化をつけたいんですが たとえば真ん中や右のグラフのようにyの数値が不規則に増えていくグラフを計算するたびに作成するみたいなことをしてまばたきの動きに変化をつけたいんですが それに使える関数とか計算式みたいのってないですかね
109 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 22:53:35 ID:HiXA4239.net] この分野はド素人だが CSSにはanimation-timing-functionってのがあって似てる
110 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 09:13:37.77 ID:CQcbRoeX.net] dictionary_one = {"a": 1, "b": 2, "c": 3} dictionary_two = {"c": 3, "d": 4} merged1 = {**dictionary_one, **dictionary_two} print(merged) # {'a': 1, 'b': 2, 'c': 3, 'd': 4} merged2 = dictionary_one | dictionary_two print(merged2) これの "merged1="部分と"merged2 ="部分ってやってること同じという認識でいいのかな?
111 名前:デフォルトの名無しさん [2022/06/19(日) 09:55:52.19 ID:EfD69g8z.net] >>109 前者は遅い
112 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 11:42:39.18 ID:Lvzk3izZ.net] 速度はほぼ同じ しかし今の時代に演算子にやらせる処理じゃないな それも論理演算子を想起するものを使うとか正気と沙汰とは思えない Guidoも演算子推してたけどセンスが悪すぎないか?
113 名前:デフォルトの名無しさん [2022/06/19(日) 12:37:09.83 ID:sa8W0ZGX.net] 論理演算自体、集合演算と切っても切れない関係だから、まるで違和感ないな
114 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 15:08:21.20 ID:mFXr9uBN.net] dictを拡張するPEPは、setに準じた挙動にするのが目標の一つだったから、どう転んでも論理演算子のオーバーライドは外されなかっただろう
115 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 15:26:32.46 ID:cDaRhPWb.net] >>112 dictは集合演算じゃないからね a | bで両方にkeyがある場合はset
116 名前:ニ同じくaが採用されるならまだよかった [] [ここ壊れてます]
117 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 15:37:38.06 ID:V2Ko/eSH.net] >>113 最初は+で提案されてたんだぞ それにsetに準じたいなら何で他の演算子は実装されないのさ?
118 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 15:47:44.79 ID:JUrmuEeo.net] https://peps.python.org/pep-0584/ こんなの追加するなよと思ってしまうけど結構面白い
119 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 16:18:18.38 ID:AfW1xcqK.net] inplaceじゃないdict.updateが欲しかっただけなのに それをメソッドで用意できないところがPythonの限界 sort/sortedやin演算子に共通する基本的API設計の問題だから Pythonはそういうもんだと諦めて 用意されたものを使う事だけに専念した方が精神衛生上いいよ
120 名前:デフォルトの名無しさん [2022/06/19(日) 16:34:05.36 ID:+3VyORCf.net] >>114 keyに注目すれば集合演算そのものじゃん。 valueという属性が各keyに付いてるというだけ。 大体、>>111 はsetだったら納得したのかね
121 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 17:04:44.33 ID:SF0ERYFz.net] 不毛な返しだな 潜在的に不幸な奴はどこでどんな生活をしてても不幸だって言うだろ 同様にどこでどんな仕様の言語を使ってても不平を垂れてんだよ
122 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 17:17:33.66 ID:tgIktWD1.net] 誰と会話してるのか知らないが Pythonこそ人類最大の功績だろ いかがわしいウェブサイトの構築からAIや研究畑まで広がる広大な活躍範囲 JavaもRubyも要らんかったんや
123 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 18:03:25.93 ID:EYUnw8+k.net] >>118 setのunionやintersectionの演算子は違和感ないぞ それにsetの場合は穴にはまるような仕様もないし __or__以外の通常メソッドも用意されてるから全然状況が違う
124 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 19:03:27.86 ID:MGBoiv+i.net] 俺もDictの論理和で違和感ないがなぁ。
125 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 22:17:06.63 ID:njnZ7xZC.net] dict1 | dict2で同じ(hash値の)keyが両方にあれば keyはdict1からvalueはdict2から取ってくる 一般的な論理和の定義とは明らかに異なるけど これをpythonではdictの論理和と呼ぶことにしたのならそれでいいんじゃない
126 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 22:17:07.56 ID:m8jSBDD8.net] >>120 原理主義者w 読みやすさがダンチすぎるわな あとは高速にさえなれば最強
127 名前:デフォルトの名無しさん [2022/06/19(日) 22:44:59.15 ID:sa8W0ZGX.net] >>123 keyは同じものなんだからどっちからもってきてもいいだろ。 仕様でもvalueをdict2から持ってくることだけしか決められてないんだからそんなところに依存するコードを書いたらお前が悪いとしか言えん。 あと同じhash値ってだけで同定されると思ってるみたいだな
128 名前:デフォルトの名無しさん [2022/06/20(月) 00:01:19.54 ID:FO/JkqKw.net] >>123 誰もdictの論理和と呼ぶ奴いないが
129 名前:デフォルトの名無しさん [2022/06/20(月) 00:04:58.71 ID:FO/JkqKw.net] こんな場末の掲示板で美学()を垂れてる大先生達はPEPに提案でもすればいいのにな https://github.com/python/peps/blob/main/CONTRIBUTING.rst
130 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 00:51:48.01 ID:3bt1t/j5.net] >>126 >>122
131 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 09:01:28.64 ID:clQvML/w.net] picture(数字).pngで連番のファイルを生成したんだけどpathlibでディレクトリの中身覗くと picture0.png picture1.png picture3.png picture2.png picture4.png みたいな順番になってる事があってなんだか気持ちが悪い これって何が原因なんです?pathlibの仕様?
132 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 10:51:33.24 ID:bmv2finQ.net] iterdir()とiterdir()が使ってるos.listdir()の仕様
133 名前:デフォルトの名無しさん [2022/06/20(月) 10:52:01.17 ID:NopO3X5I.net] lenovoのL420っていうノートパソコン使っています celeron,4GBです 教科書レベルのプログラムを写経してます 画像ファイル256枚、一枚あたり30kb位のファイルを 重ねる画像処理をpythonで行っているのですが MemoryErrorがでて処理が止まります 画像処理の分野ではよくあることなのでしょうか メモリ空きスロットが無いです 今までメモリ不足なんて無かったのですが PC買い替えでしょうか?
134 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 11:06:40.33 ID:VCuoWLch.net] >>131 エラーメッセージを読んでエラーの原因をまず確かめろ ハード的なメモリ不足よりプログラムの書き方が悪い可能性のほうがはるかに高い
135 名前:デフォルトの名無しさん [2022/06/21(火) 19:48:14.54 ID:BPheRP/d.net] #次のような集合のリストのリストrを作りました: r = [[set(range(1,4))]*3]*3 > print(r) [[{1,2,3}, {1,2,3}, {1,2,3}], [{1,2,3}, {1,2,3}, {1,2,3}], [{1,2,3}, {1,2,3}, {1,2,3}]] #上から2番目、左から3番目の集合を更新して要素を1のみとしました: r[1,2] = {1} #するとr[0,2]とr[2,2]も{1}になっちゃいました: > print(r) [[{1,2,3}, {1,2,3}, {1}], [{1,2,3}, {1,2,3}, {1}], [{1,2,3}, {1,2,3}, {1}]] r[1,2]以外が変わった原因と、r[1,2]以外が変わらないような方法教えて下さい
136 名前:デフォルトの名無しさん [2022/06/21(火) 20:00:56.97 ID:BPheRP/d.net] >>133 訂正 r[1,2]じゃなくてr[1][2]でした (他同様)
137 名前:デフォルトの名無しさん [2022/06/21(火) 20:03:33.86 ID:nUT03NU2.net] deepcopyで検索ゥ
138 名前:デフォルトの名無しさん [2022/06/21(火) 20:08:37.10 ID:SE7t042v.net] [[set(range(1, 4)) in x for range(3)] in y for range(3)]
139 名前:デフォルトの名無しさん [2022/06/21(火) 20:18:32.01 ID:SH7wWIQd.net] >>133 多次元のリストを作るにはどうしますか? https://docs.python.org/ja/3/faq/programming.html#faq-multidimensional-list
140 名前:デフォルトの名無しさん [2022/06/21(火) 20:18:51.87 ID:BPheRP/d.net] >>136 ありがとうございます〜forとin換えたら行けました >>135 検索してdeepcopyの話かな?という所には辿り着きましたが適応の仕方がよく分かりませんでした 勉強しときます
141 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 11:44:54.88 ID:EcTc17L7.net] ほとんどの言語は、shallow copy 実体をコピーしない。 ポインター・参照しかコピーしない 実体をいじると、それを参照している全ての参照に影響が出る。 実体を参照を通して見ているから なかなか簡単には、deep copy できない。 参照のリンクを切り離せない Elixir みたいな関数型言語は、 オブジェクトを更新できない(状態を持てない)から、 こういう問題はなく、安全にプログラミングできる
142 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 12:13:41.31 ID:TN4B0obT.net] なんかさ、もううんこだよね
143 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 21:49:37.76 ID:kEl16R0O.net] 特定のフォルダ以下のサブフォルダから拡張子を取得して 指定したフォルダ下に拡張子のフォルダを作りたくて 下記のプログラムを書いたところで動作しましたが os.makedirs文のみで完結する簡素な記述方法はありますか? cd_path ← フォルダを作りたい場所 file_extension ← FOR文で取得した拡張子 path = os.path.join(cd_path, file_extension) os.makedirs(path, exist_ok=True)
144 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 22:14:47.11 ID:1aHzqpDi.net] >>141 回答になってないけど、初心者なら最初からpathlib覚えたほうがいいぞ os.pathやglob.globはいろんな罠がある あと、拡張子にはドットが含まれるから注
145 名前:モ [] [ここ壊れてます]
146 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 23:39:08.69 ID:uPuQk0KY.net] みんな一時は罹ってしまうコードゴルフ 中二病にちかい
147 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 00:13:39.08 ID:RPGBecSe.net] 配列(array)の要素それぞれにリストを入れることは出来ない? リストの要素それぞれに配列を入れることはできる? でいいのかな?
148 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 00:24:13.97 ID:RKdZXyYS.net] あまりやらないけれど 配列の要素はそれぞれ任意のものを入れられるから 最初に配列、次に文字列でもすきなクラスでも大丈夫 もちろんぜんぶ配列でもOK
149 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 10:12:12.29 ID:bFbjfjx7.net] dictのキーにString型のリストとバリューにリストに入った多重結界みたいなデータ作ってjsonとして書き出すみたいな遊びだよね
150 名前:デフォルトの名無しさん [2022/06/23(木) 14:55:17.55 ID:EV0+4t37.net] https://github.com/yaneurao/Ayane のunit_test1.pyの、一番基本的なtest_ayane1を通そうとするとプロンプトにtest_ayane1 : とだけ でてwrite_workerの734行目のself.proc.stdin.flush()でスレッドが死んでるような?感じなのですが 試して原因を教えてくれる神はいませんか。 ちなみに呼び出すエンジン自体は別のソフトや、cshogiというこれと似たライブラリからの呼び出しでちゃんと 動作していることを確認しています。
151 名前:デフォルトの名無しさん [2022/06/23(木) 15:04:04.22 ID:Ukh7Grgr.net] 判った
152 名前:デフォルトの名無しさん [2022/06/23(木) 15:58:15.03 ID:EV0+4t37.net] >>147 Python 3.7.13で、macOS12.4 Montley上です。
153 名前:デフォルトの名無しさん mailto:sage [2022/06/24(金) 11:43:47.67 ID:3JV7YPJq.net] socketのサーバー側で i=0 while True: data=soc.recv(受信サイズ) if not data: break data_sum+=data with open(f"保存するファイル名_{i}.zip",mode="ab") as f: f.write(data_sum) i+=1 みたいにするとクライアント側が送信したデータの他に数個のzipファイルが出来るんだけどこのデータの中身は何なんだろう? zipfileで開こうとするとエラー出力しちゃう 変数iを使わずに受信するとクライアントが送信したデータだけが残るみたいだけど…
154 名前:デフォルトの名無しさん [2022/06/24(金) 12:05:35.52 ID:K2we1Lar.net] >>150 死ね https://egg.5ch.net/test/read.cgi/bizplus/1655956236/
155 名前:名無し募集中。。。 mailto:sage [2022/06/24(金) 13:18:15.52 ID:d6WBxki6.net] FOR文の中にtqdm()を入れてみたんんですが 下記みたいなのしか表示されなくプログレスバーが表示されません 70786it [3:35:59, 1.94it/s] なにが問題なんでしょうか?
156 名前:デフォルトの名無しさん [2022/06/24(金) 14:31:40.66 ID:yJmddVFh.net] 実際のコードを書かないこと
157 名前:ぴよ [2022/06/24(金) 14:59:09.01 ID:XR8KeGTq.net] ほげほげ
158 名前:デフォルトの名無しさん [2022/06/24(金) 19:30:36.14 ID:n0/ceoPd.net] >>152 lenが不明なiteratorだとそうなる tqdm(iterator, total=100)のようにする
159 名前:デフォルトの名無しさん mailto:sage [2022/06/24(金) 23:45:09.14 ID:/S8ogjuv.net] >>150 VSCode で、バイナリエディタの拡張機能・Hex Editor でも使って、バイナリとして見てみれば? 文字コードなどが不明なので、テキストとして見るには困る 適当に内容を作って、ファイルの拡張子を .zip にしても、 正しいZIPファイルの形式になるはずがないので、ZIPファイルとしては動作しない 各拡張子のファイルには、決められた構成があるため、 それに従っていない場合は、正常に動作しない
160 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 00:01:18.86 ID:eoWHGkrH.net] Phil Katz に聞くべき
161 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 00:11:42.65 ID:z9QRxAiq.net] 降霊術を習得しないと
162 名前:デフォルトの名無しさん [2022/06/25(土) 19:47:06.55 ID:fwnfW89W.net] Pythonでsetの要素がイミュータブルでないといけないのはなぜですか? a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9] S = {a, b, c} a.append(0) この状況で、 a in Sの値が偽になっても別に構わないと思います。 Sに登録した時点でのaは{1, 2, 3}だったわけですから、 d = {1, 2, 3} d in Sが真になりさえすれば何もおかしなことはないと思います。
163 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 19:57:20.22 ID:I0eUacPf.net] S = {a,b,c} TypeError: unhashable type: 'list'
164 名前:デフォルトの名無しさん [2022/06/25(土) 20:23:18.44 ID:bZig/WUT.net] こういう馬鹿が辞書のキーにまでリスト入れたいとか言い出すんだろうな
165 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 20:26:09.88 ID:gQjoPRQF.net] >>159 Pythonのオブジェクトは基本参照だし、setに突っ込んでもコピーされる訳じゃない 重複を許さないsetの要素が変更されたら保証できないし、比較のコストも考えたら…かな
166 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 20:36:01.58 ID:9jpr7vFN.net] >>159 自作クラスとか、mutableでもsetに突っ込めるよ。 何か読み違えたのでは?
167 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 21:18:41 ID:gQjoPRQF.net] >>163 本質的にはそうじゃない、ユーザークラスは既定でハッシュ化できるが これは一般的な実装ではid()、即ちインスタンスアドレスに基づくもの 実質的に求められているのはハッシュの不変性であり、それならば通る しかし同一性を内容で評価するなら意味は成さないのでlistだと未定義 データモデル曰く「クラスがミュータブルなオブジェクトを定義しており、 __eq__() メソッドを実装しているなら、 __hash__() を定義してはなりません。」
168 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 01:34:01.17 ID:A2gDvo6x.net] やってやれないことはないけど デメリットを打ち消すだけのメリットを見いだせなかったんでしょGuidoが 単に他の言語のdict/setに合わせただけかも知れんが ともかく、真実が知りたかったら開発者に聞いてこいよ
169 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 07:16:45.51 ID:eSuyoUi6.net] >>95 print('QHG pj.og.ldn.iakkok:etis'[::-1], '/elpmis/pj.og.ldn.iakkok//:sptth'[::-1], sep='\n')
170 名前:デフォルトの名無しさん [2022/06/26(日) 13:31:03.88 ID:DTfGvOZF.net] ねんまつ
171 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 08:09:04 ID:Zqv939YP.net] PCでのアプリ操作を自動化したいのですが、pyocrで文字認識して、内容によって判断し、pyautoguiでxy座標指定して、ボタン押すしかないでしょうか?
172 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 08:14:55.95 ID:RN7qnQjk.net] 物によるとしか言いようが無いな
173 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 08:17:13.06 ID:RN7qnQjk.net] PyAutoGui でカバー出来るか出来ないかを判断してみたら?
174 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 18:27:20 ID:3qzf3wBJ.net] 以前MACにいれたpython3を削除できないです。 % rm -rf /usr/bin/python3 rm: /usr/bin/python3: Read-only file system % sudo rm -rf /usr/bin/python3 Password: rm: illegal option -- ? usage: rm [-f | -i] [-dPRrvW] file ... unlink file 原因わかる方いますか?
175 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 18:53:43.40 ID:0yF6vhsn.net] >>171 sudoのほうは全角スペースが入ってるのが原因
176 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 19:05:21.65 ID:a8sMrZjJ.net] 172の優しさに感動
177 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 19:25:49.92 ID:cL/RIHXE.net] そのpython入れたのはAppleだから通常起動したOSからは削除できない仕組み 消えたらOS内のスクリプトが動かなくなるよ よかったねOSが壊れなくて
178 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 20:20:17.78 ID:3qzf3wBJ.net] >>172 迅速なレスありがとうございます。 もう一度コメント打ちましたが同じ結果でした。全角は入ってないようです。 >>174 MACから元々インストールされているのはphyon2なので Phyon3とは関係ない、削除しても問題ないと思うのですが.. https://i.imgur.com/PpXh6yu.png
179 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 20:45:49.02 ID:xsOnLI+U.net] >>175 何経由でインストールしたんだこれ Homebrew使ってインストールしたなら brewコマンド経由でアンインストール出来ない?
180 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 21:25:48.96 ID:cL/RIHXE.net] >>175 python3入ってないmacOSってわりと古いよ? ここ最近はpython2が逆に入ってない(公式サポート終わってるからね) もし自前で /usr/bin にインストールしたってんならクラッカー気質あるわw
181 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 21:44:39.26 ID:XFwxgXBL.net] >>175 同じ結果とちゃうやん 全角入ってた時とエラーメッセージ変わってるやん どうしても削除したいならSIP無効にしてから削除で
182 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 22:13:08.24 ID:3qzf3wBJ.net] >>175 追記 すみません自分の勘違いでこのpython3はデフォルトから入ってるファイルのようです。 >>177 さんの仰る通りでした。申し訳ありません。 そして再度インストールしようとhomebrewを入れpyenvを入れ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc を追加し source ~/.zshrcを実行してpython3.10.4をインストールするとうまくいきません。。おまかんなのでしょうか?? https://i.imgur.com/ErhCpgK.jpg
183 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 22:13:29.06 ID:3qzf3wBJ.net] >>178 申し訳ありません。
184 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 01:52:22.87 ID:GjoTbrJZ.net] >>179 自決ですが、xcodeが古かったので新しいバージョンにいれた所無事インストールできました。
185 名前:デフォルトの名無しさん [2022/06/28(火) 08:26:42.80 ID:UgaAibo1.net] またしても犠牲者が。 pythonの乱用は精神に作用するのかもしれない
186 名前:デフォルトの名無しさん [2022/06/28(火) 12:11:58.39 ID:W8L8uteA.net] macのOS環境ごとふっとんで死ねば良いのに
187 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 12:22:02.22 ID:SMUgtqGT.net] 日本人が作った、多言語バージョンマネージャーのanyenv を使えばよい。 同様のツールには、asdf もある nodenv, pyenv, rbenv, exenv, goenv, tfenv など node, python, ruby, elixir, go, terraform など 他には、Docker も多い
188 名前:デフォルトの名無しさん [2022/06/28(火) 13:58:17.02 ID:5S91HeIj.net] re.subで[]で囲まれた文字列の中を置換するとき、どんな記述をすればよいですか? re.sub(r'\[.*c.*\], 'x', '[abcabc]abc') 期待する値 [abxabx]abc
189 名前:デフォルトの名無しさん [2022/06/28(火) 14:07:39 ID:N3XtpiKU.net] >>185 re.sub(r'\[[^\]]*\]', lambda m: m[0].replace('c', 'x'), '[abcabc]abc')
190 名前:185 [2022/06/28(火) 14:31:31.24 ID:5S91HeIj.net] >>186 多謝!! そしてごめんなさい。良ければ解説を。
191 名前:185 [2022/06/28(火) 14:49:53.04 ID:5S91HeIj.net] []の中だけを対象にreplaceしているのは、なんとか分かるんですが、re.sub の第2引数、 lambda m: m[0].replace('c', 'x') が何をしているのかわかりません(泣)
192 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 14:52:51.94 ID:dX7Zsa+9.net] マニュアルを読もう https://docs.python.org/ja/3/library/re.html#re.sub
193 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 14:59:09.76 ID:d3+RKzUY.net] repl が関数であれば~の下りね、m[g]はm.group(g)と同等 後読みアサーションに固定幅制約がないライブラリなら 面倒なことしなくても(?<=\[.*)c(?=.*\])で済みそうだが
194 名前:デフォルトの名無しさん [2022/06/28(火) 15:42:31.79 ID:5S91HeIj.net] re.sub(r'\[.*\]', lambda m: m.group(0).replace('c, 'x') でlambda関数がヒットするたび呼ばれるわけか!! 仕組みは理解できました。 >>190 look-behind requires fixed-width pattern に阻まれました。
195 名前:デフォルトの名無しさん [2022/06/28(火) 19:31:26.15 ID:mooH0Iqw.net] m.group はめんどくさい findall の方が便利
196 名前:デフォルトの名無しさん [2022/06/29(水) 07:52:27.56 ID:9vdu/PbE.net] >192 re.findall だと re.sub のような仕掛けが利用できなくないですか? >185 できますか??
197 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 10:56:55 ID:CtIvUBkO.net] re.findallで[]付きとそれ以外に分けて処理 ちょっと長くなるけど色々応用がききます # []の中だけreplace >>>re.findall(r'\[[\w]+\]|[\w]+', 'a[abcabc]abc[abc]') ['a', '[abcabc]', 'abc', '[abc]'] >>>[m.replace('c', 'x') if m[0]=='[' else m for m in _] ['a', '[abxabx]', 'abc', '[abx]'] >>>''.join(_) 'a[abxabx]abc[abx]' # []の中以外をreplace >>>re.findall(r'\[[\w]+\]|[\w]+', 'a[abcabc]abc[abc]') ['a', '[abcabc]', 'abc', '[abc]'] >>>[m.replace('c', 'x') if m[0]!='[' else m for m in _] ['a', '[abcabc]', 'abx', '[abc]'] >>>''.join(_) 'a[abcabc]abx[abc]'
198 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 19:29:51.42 ID:CtIvUBkO.net] 完成形できました!記号が含まれていても[]がちゃんと閉じてなくても ちゃんと閉じているのだけreplaceします >>186 が秀逸だけど、[]で囲まれていない方をreplaceするとなると 途端に難しくなるから、やっぱ私の方法が良いんじゃないでしょうかw >>>re.findall(r'\[[^\[\]]*\]|[\[\]]*|[^\[\]]*', 'a[abcabc]abc[abc]') ['', 'a', '[abcabc]', '', 'abc', '[abc]', ''] >>>[m.replace('c', 'x') if m and m[0]=='[' else m for m in _] ['', 'a', '[abxabx]', '', 'abc', '[abx]', ''] >>>''.join(_) 'a[abxabx]abc[abx]' # 文字列に記号が含まれていて[]がちゃんと閉じていなくても大丈夫 >>>re.findall(r'\[[^\[\]]*\]|[\[\]]*|[^\[\]]*', 'a[abcabc]abc[abc$$[abc]') ['', 'a', '[abcabc]', '', 'abc', '[', '', 'abc$$', '[abc]', '']
199 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 22:12:59.69 ID:sd1PgpdM.net] 見通し悪すぎて要件満たしててもレビューで蹴られるコード
200 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 22:25:07.73 ID:TQFqK5Fi.net] ちゃんと閉じているの定義があやしい [[abc]とか
201 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 23:13:54 ID:CtIvUBkO.net] >>196 見通し良いでしょ、角カッコで囲まれた角カッコ以外 or 角カッコ or 角カッコ以外でfindallじゃん 角カッコしか出てこないじゃん、簡潔、シンプル、分かりやすい >>197 良い指摘、アナタのおかげで改善されました^^ >>>re.findall(r'\[[^\[\]]*\]|[\[\]]*?|[^\[\]]*', 'a[abcabc]abc[[abc]') ['', 'a', '[abcabc]', '', 'abc', '', '[', '[abc]', '']
202 名前:デフォルトの名無しさん [2022/06/30(木) 02:06:34.63 ID:HSayXmFT.net] kazuyuki
203 名前:デフォルトの名無しさん [2022/06/30(木) 20:55:30.42 ID:QXLJbWFQ.net] ナンプレのゲーム作りたい 縦横はチェックする方法わかるが 3x3マスの部分だけ配列で考える方法がわからない ↓までは考えたんだが方向性が違う気もする https://techiedelight.com/compiler/?xIkw 9進法から3進法への変換がベース(ただし3進法は0から始まる) for x in range(81) x // 3 x % 3 3桁目に入る場合、1桁目に(3桁目)*3が足される 10 (1,0,0)→(0,3) 4桁目に入る場合、2桁目に(4桁目)*3が足される 28 (1,0,0,0)→(3,0)
204 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 21:46:07.32 ID:0uxZVqVl.net] 簡単なのは3x3を座標系とは別の9マスの配列の配列として保持 置いたとき
205 名前:ノ縦横とは別にその配列へ反映させる 縦横も同じ手法をとると統一感ある コード上は9マスの配列はクラスにするかも [] [ここ壊れてます]
206 名前:デフォルトの名無しさん [2022/06/30(木) 22:01:04.82 ID:zKJ67H3+.net] 5桁8色のhit&blowを造りたい 人間が設問してpythonに解かせたい
207 名前:デフォルトの名無しさん [2022/07/02(土) 07:54:20.82 ID:oFwScFTn.net] >>201 既存の座標系にこだわらないほうがいいか ありがとう ナンプレのゲーム作りたいから手始めにナンプレを解くプログラムの検証をしてたんだけど https://techiedelight.com/compiler/?b-I8 37行目の部分ってどうなってるの? 再帰関数なのはわかるんだけど、if文の中で再帰してるじゃん def 関数(): if 再帰関数(): retrun Ture retrun Flase
208 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 09:00:34.91 ID:Zph8lW04.net] >>203 再帰だけどやってることは探索のための分岐 rangeの列挙からcontinueされなかった分を順番に分岐してて 呼んだ先で18-20にひっかかると中断して最初の呼び出しまで戻ってる deepcopyしてるところが富豪的だけどシンプル
209 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 09:39:17.61 ID:EefHjxyZ.net] >>204 この37行目 if set_num(ndata, idx + 1): return True これを set_num(ndata, idx + 1) に変えてみたんだけど結果変わらなかった if の中に入れる意味あるの?
210 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 09:44:12.51 ID:EefHjxyZ.net] 答えが出た後も探索しちゃうからそれを止めるための処理ってことか
211 名前:デフォルトの名無しさん [2022/07/02(土) 09:57:44.64 ID:COZLaCzb.net] ninbe
212 名前:デフォルトの名無しさん [2022/07/11(月) 12:19:00 ID:aiHSnYNz.net] google colabでcuda使いたい。 良い方法ある?
213 名前:デフォルトの名無しさん [2022/07/11(月) 12:19:00 ID:aiHSnYNz.net] google colabでcuda使いたい。 良い方法ある?
214 名前:デフォルトの名無しさん mailto:sage [2022/07/11(月) 12:39:20.78 ID:L4tB3bvp.net] 金払ってないのか?
215 名前:デフォルトの名無しさん [2022/07/11(月) 14:48:46.26 ID:aiHSnYNz.net] >>210 colabはdjangoやfraskができないっぽいからやってない。 もしdjangoが使えるならお勧めあったら教えてほしいっす! vsかチャームか、atomか・・・。
216 名前:デフォルトの名無しさん mailto:sage [2022/07/11(月) 15:51:00.64 ID:EGP2A4JX.net] 好きなテキストエディタないの?それで基本いいんだけど 拘りないなら拡張とユーザ数からvscodeでいいんじゃない PyCharmはリファクタまわりが優れているけど必須じゃないし Atomはオワコン
217 名前:デフォルトの名無しさん mailto:sage [2022/07/11(月) 17:35:44.11 ID:rDGcpouH.net] vsもマイクロソフト以外のプラグインが信用出来ないからあまり良いとは言えないかなー
218 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 00:04:57.18 ID:eIaiUALg.net] 文字列〜〜〜ID123456.text みたいなファイルからID123456だけを抜き出したいんだけど、どんな方法がある? IDの後には必ず数字がきて、桁数はかならず6
219 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 00:06:23.62 ID:eIaiUALg.net] 補足 IDが書かれてる場所はファイルによって異なる 文字列〜〜〜ID123456文字列〜.text ID123456文字列〜〜〜.text みたいなときもある
220 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 02:57:47 ID:yBYukR5V.net] >>214 普通は正規表現でも使うのかな 俺は正規表現使えないからこう書く from pathlib import Path p="C:\abc\あいうID1234567XYZ.text" print("ID" + Path(p).stem.split("ID")[1][:6])
221 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 08:19:17.52 ID:hTnf4I/y.net] >>215 正規表現を制する者は文字列を制する、他の言語でも仕様はほぼ同じ、覚えて損は無し >>>import re >>>s='''文字列〜〜〜ID123456文字列〜.text ・・・ID789012文字列〜〜〜.text ・・・みたいなときもある''' >>>re.findall(r'ID\d{6}', s) ['ID123456
222 名前:', 'ID789012'] [] [ここ壊れてます]
223 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 10:53:36 ID:eIaiUALg.net] >>216 >>217 ありがとうございます、勉強になります
224 名前:デフォルトの名無しさん [2022/07/12(火) 20:48:55 ID:gRW1mfOh.net] 例外処理ってどう使えばいいんだろ スクレイピングしてあるサイトのデータ拾いに行って ”データ”がある場合に代入となるんだけど 拾いに行くページによって、その行自体がなくてエラーになってしまうんだよな if Data[0][0] == ”データ”: s = Data[0][0] Data[0][0]がそもそも存在しない時にエラーにならないよう例外処理を使うといい、ぐらいまでは調べたんだけど 書き方がよくわからない
225 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 21:11:11 ID:hTnf4I/y.net] >>218 より具体的な例としてC:/hogehogeディレクトリ内の全ファイルのファイル名からIDを抜き出します >>>import pathlib, re >>>src = pathlib.Path('C:/hogehoge') >>>list(src.glob('*')) #ファイル確認、この例ではディレクトリ内にファイルが2つあります [WindowsPath('C:/hogehoge/ID789012文字列〜〜〜.text'), WindowsPath('C:/hogehoge/文字列〜〜〜ID123456文字列〜.text')] # 以下、ID抜き出し処理 >>>l = [re.findall(r'ID\d{6}', f.name) for f in src.glob('*')] >>>l [['ID789012'], ['ID123456']] >>>sum(l, []) #フラット化 ['ID789012', 'ID123456']
226 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 21:56:43.39 ID:UQgGu1pu.net] >>219 データがなかった場合にどう処理したいのかによって 例外処理にするのかif-elseみたいな分岐処理にするのかを選択する スクレイピングの場合は対象データがなかったら 何も処理しないとか空文字とかのデフォルト値を入れる場合が多いんだけどそのやり方もいろいろ if-elseで簡易的な関数にした例 def extract(html, selector, fn, default=""): return fn(element) if (element := html.select_one(selector)) else default def extract_text(html, selector, default=""): return extract(html, selector, lambda x: x.text.strip(), default) def extract_link(html, selector, default=""): return extract(html, selector, lambda x: x.get('href'), default)
227 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 22:40:42.84 ID:xLkMA/UK.net] >>219 スクレイピングでたとえると 途中の要素が取得できないと結局な結果が得られないのでその場でプログラム終了する とすると、取得失敗の都度ifでsys.exit()と書けはする ここで終了前になにかメッセージ出力したり上位の関数にエラーで戻ったりアレコレしたいとすると 共通化したくなり例外以外では見通しが悪く書きにくい そういうのもうまく関数設計すれば書けはするけど Pythonは標準の操作(Data[0][0] とか)で例外あげる場面が多いので例外に寄せる方が楽
228 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 20:23:40.86 ID:EtP8dxEe.net] Pythonのトップ・キノコードがキノクエストと言う、Pythonの学習サービスを作った!
229 名前:デフォルトの名無しさん [2022/07/13(水) 22:27:14.03 ID:XjBOe/Qa.net] s = ’aaa bbb ccc ddd’ という文字列を s = ’[aaa],[bbb],[ccc],[ddd]’ という文字列にする方法って s.split() で一度リストにして for文内で新しいリストにappendとか使って [ や ] や , をリストの要素として追加して そのリストをまた文字列に戻すって方法しか思いつかないんだけど、他にあるかな?
230 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 22:38:12.38 ID:ZiN6uKeA.net] >>224 s = '[' + s.replace(' ', '],[') + ']'
231 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 22:42:11.0
] [ここ壊れてます]
232 名前:0 ID:tPrODk9K.net mailto: s='[' + s.replace(' ',']',[') + ']' これでいけんか? [] [ここ壊れてます]
233 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 22:43:26.48 ID:tPrODk9K.net] かぶったし打ち間違いあるしスマホでコード書くの合わないな…
234 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 22:44:17.92 ID:hJXXd+YV.net] “,”.join(map(lambda x:f”[{x}]”, s.split(“ “))) そらで書いてるから動くか分からんが、こんな感じ
235 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 22:46:15.33 ID:tPrODk9K.net] あと方法としてはjoin使うのとリストをそのまま文字列にするのができる気がする
236 名前:デフォルトの名無しさん [2022/07/13(水) 22:53:13.90 ID:XjBOe/Qa.net] >>225-229 マジか 思いつかなかった
237 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 23:08:11.77 ID:Hjnw35/j.net] 教科書的に書くとつまらんな ','.join(f'[{x}]' for x in s.split(' '))
238 名前:デフォルトの名無しさん [2022/07/14(木) 10:16:40.49 ID:dxotV0yq.net] くだらんすれ
239 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 11:38:32.14 ID:3XfxOzel.net] python使い始めて何年も経つが ‘,’.join(…)書くたびにクソコード書いてんなと思う
240 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 12:12:10.59 ID:mZF8rPll.net] >>233 よく言われるけど、私はPythonスタイルが好きだな 文字列にするのだから文字列のメソッドであるべき ちゃんと議論されてRubyスタイルは否定されてんだよね ttps://www.lifewithpython.com/2017/07/why-python-join-is-string-method.html
241 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 16:24:53.41 ID:NrPRW2+E.net] >>234 読んだけど結構乱暴な議論だな > 文字列にするのだから文字列のメソッドであるべき 数字かどうかを判定するisdigit()をboolのメソッドにしろってか?w
242 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 16:42:14.94 ID:VCUQdsgR.net] >>234 じゃsplitはリストにするのだからリストのメソッドであるべきだなw ちゃんと議論ww
243 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 17:24:02.64 ID:TABkZ95a.net] Pythonって何故だかこういうエクストリームな擁護者が他言語に比べて多いんだよなぁ どの言語にも良い点悪い点はあるのになんでなんだろ?
244 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 17:57:33.90 ID:mZF8rPll.net] エクストリームな擁護ならRubyの右に出るものはないよ 「日本人ならRuby」「楽しいからRuby」だもん、初めて聞いた時は寒気がしたね RubyじゃなくてPython選んでマジで良かった、Python最高! joinもsplitの話ももう出尽くしているから、勝手にググってフンガーって発狂しててよ 私に言われても困っちゃうし、公式で結論出ているのだからそれで理解できないなら素養が無いよ
245 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 18:15:53.09 ID:ObgbLbGZ.net] あ~あ、みんな寄ってたかって叩くからファビョっちゃったじゃん
246 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 18:18:53.53 ID:ATT2arO1.net] >>237 pythonのスレ(しかも超初心者用)で言うことですか?
247 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 18:40:20.64 ID:NYmoorKP.net] 超初心者に変な常識を植え付けないように色んな意見のレスがあっていいと思うよ 変だと思う人も居るんだなということを知ってて損は無い 超初心者だと他言語における常識を知る機会も無いし
248 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 19:04:20.42 ID:ji0JpZgM.net] >>238 > 私に言われても困っちゃうし これお前の意見だろ? > 文字列にするのだから文字列のメソッドであるべき リンク先も公式もそんなアホなことを言ってないぞw
249 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 19:09:23.50 ID:mZF8rPll.net] >>242 ひゃーファビョッちゃってるぅーw 素養も読解力も無いことをアピールされましても困りますw
250 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 19:51:42.67 ID:/4X/rYOa.net] >>243 レスするならちゃんと反論したら? 読解力ガーとか低脳が顔真っ赤になりながらレスしても虚しいだけだろw
251 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木)
] [ここ壊れてます]
252 名前:20:59:57.30 ID:jjxIhgjT.net mailto: スレ違い自演連投荒らしが誰何に反応して身元確定したので新スレで書き込み禁止されたのを「いじめ」だと言い出す被害妄想っぷりが狂人クオリティ [] [ここ壊れてます]
253 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 21:03:26.05 ID:mZF8rPll.net] >>244 IDコロコロ変えるコロ助が何をファビョってんの?w もう>>238 で終了してんだよ、公式読んで理解できないなら反論も糞も無いじゃんw 認めたくないだろうけど、そこは認めようよ、君は低能だから理解できなわけよww 別に理解できなくてもいいじゃん、joinって変だな、何でなんだろう?ってずーっとファビョってればいいじゃん こういう経緯でこうなってんだよってリンクまで貼ってんのに、それで理解できずにそんなことなーい!って 言われてもさ、公式に文句言えばいいじゃん、ほんと低能だなぁーw 何と戦ってんの?w
254 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 21:41:30 ID:1UfgY23j.net] >>246 どっちが読解力ないだか... もう一度書いとくね、 > これお前の意見だろ? >> 文字列にするのだから文字列のメソッドであるべき 公式もリンク先も関係なくお前がアホなだけw
255 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 21:53:51.76 ID:GadqcTvG.net] これ読むと>>237 に同意せざるを得ないな https://stackoverflow.com/questions/493819/
256 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 22:25:47.47 ID:mZF8rPll.net] >>247 うん?じゃあ文字列のメソッドでなくてもいいの? どーやったらそう読めるんだよwwwwバーーカwww
257 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 22:56:25.17 ID:vHzneFGJ.net] >>249 まだ恥の上塗りするのかよw 「文字列にするのだから」がアホだって話な >>235-236 のツッコミみたら普通わかるだろ
258 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 23:02:08.05 ID:53iLOIJP.net] わざと馬鹿のフリしてんのかな?どっちにしても馬鹿にしか見えないが。
259 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 23:02:36.06 ID:pmXXTX87.net] 読んだけどseqは引数な方が良いってだけで > 文字列にするのだから文字列のメソッドであるべき こんなこと書いてない
260 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 23:04:03.42 ID:mZF8rPll.net] >>250 君が読解力無いのは分かったから、それよりIDコロコロ変えているのバレちゃったねw >>247 の「もう一度書くね」でヘマしちゃったのはやっぱりファビョってるからなの?ww これ全部オマエだろ、何連投してんだよw顔真っ赤なのどっちだよって話だよ いやー自作自演バカって本当にいるんだなぁー アホなりに頑張ってるのは分かるけど低能だから 全部台無しだわぁ〜ww アホだからすぐバレちゃうwww そのIDコロコロ変えるようになった経緯を思い出せよ、まともにやるとすぐ負けちゃうからだろ? 自作自演で勝ってる感が欲しかったけど、それも手に入りませんでしたぁ〜w 恥の上塗りって 自分のこと言ってんのかよww 全部ブーメラン!おまえは民主党かよってw
261 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 01:28:28 ID:wi0x7exo.net] すごいチー牛顔引き攣らせて笑ってそう
262 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 03:30:42.52 ID:MdZ2tfzQ.net] >>253 とうとう壊れちゃったw
263 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 07:32:09 ID:mXh/FC5X.net] なんかこわい
264 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 12:20:14.72 ID:Y2OiW31R.net] こんな人生終わってそうな社会不適合者でも稼げちゃうのがIT業界なんだよな 人生終わってそうな外見のやつばかりなのに、金が稼げるからジョーカーみたいなのが生まれにくい
265 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 14:11:44.43 ID:78D2/2K4.net] iterableを定義してそこにjoinメソッドを追加するだけでよかったのにね joinメソッドは今どきこんな設計する人がいたらすぐ外されても文句言えないレベル
266 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 14:28:12.17 ID:MVHCgXBf.net] 当人ちゃうけどまず >>234 のリンク先読んどこう
267 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 15:21:03.77 ID:cpkuMkfN.net] 俺も当人ちゃうけどそのリンク先読んでも>>258 に同意するわ
268 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 15:35:58.33 ID:rlSsskU5.net] ずいぶんとお利口な超初心者の集まりだこと…
269 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 15:52:36.65 ID:cpkuMkfN.net] 超初心者が質問できるスレであって住人全員が超初心者というわけじゃないよ
270 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 17:56:14 ID:qGSK8RbV.net] メーリングリストのログ追ってみたが議論らしい議論は全くなかったぞコレ Tim Petersが案をだして、じゃそれでくらいのノリ
271 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 19:33:17.31 ID:5LwbToQX.net] 悲しいとき〜、悲しいとき〜、不毛な努力をしているアホをみたとき〜
272 名前:デフォルトの名無しさん [2022/07/15(金) 21:59:49.41 ID:Mg+hVTQU.net] 少し内容がずれているかもしれませんが質問させてください。 Windows10で右クリック-新規作成で空のpythonファイル(.py)を作成するようにしたいのですが、 何か方法はありますでしょうか? 下記のURLを参考にしてレジストリを変更する方法を調べて実行したのですが、反映しません。 https://qiita.com/ioComk/items/ab79749b0f0bf05db97e 教えていただきたく。よろしくお願いします。
273 名前:デフォルトの名無しさん [2022/07/15(金) 23:42:53 ID:Fa+NFDEY.net] >>258 実際bytesとかでjoin相当のことをしようとしたらどうすればいいんだろう?itertools使えばなんとかなりそうだけど
274 名前:デフォルトの名無しさん mailto:sage [2022/07/16(土) 00:03:25 ID:HB6roBeY.net] __add__かjoin専用メソッドがある前提でひたすらinject それらが型変換できないケースだと失敗とか
275 名前:デフォルトの名無しさん mailto:sage [2022/07/16(土) 00:23:45.26 ID:fjBrDVen.net] >>265 少なくとも今試しても記事の通りできた 詳しくどうやったか開示しないと分からん
276 名前:デフォルトの名無しさん [2022/07/16(土) 10:38:02.22 ID:5edRFReA.net] >>268 詳しくといっても難しいですが pythonはAnacondaでインストール。 新規pyファイルはサクラエディタと紐づいています。
277 名前:デフォルトの名無しさん mailto:sage [2022/07/16(土) 14:30:48.70 ID:7RINBtm9.net] >>269 そしたらサクラエディタに関連付けしてるからだろうね 新規作成は関連付けされてるアイコンとファイルタイプ名称で表示される
278 名前:デフォルトの名無しさん [2022/07/16(土) 16:20:01.38 ID:ck4+820Y.net] なんでこうなるのかわからない _, *elements , _ = [1, 2, 3, 4, 5, 6, 7, 8] print(elements) # [2, 3, 4, 5, 6, 7] print(type(elements)) # <class 'list'> elements_B = [1, 2, 3, 4, 5, 6, 7, 8] B = _, *elements_B, _ print(B) # (8, 1, 2, 3, 4, 5, 6, 7, 8, 8) print(type(B)) # <class 'tuple'>
279 名前:デフォルトの名無しさん mailto:sage [2022/07/16(土) 16:34:54.36 ID:730D9OZt.net] print(_)してみたら
280 名前:デフォルトの名無しさん [2022/07/16(土) 16:56:27.29 ID:ck4+820Y.net] ああ、理解したわ a, b, c = 1,2,3 a=1 b=2 c=3 ってのと変わらんのか a, *b, c = 1,2,2,2,2,3 a=1 b=2,2,2,2 c=3 みたいなことか
281 名前:デフォルトの名無しさん [2022/07/16(土) 19:51:21.14 ID:GdTpN6Df.net] bytes で join ってさ b''.join(bytes_data) で良いんじゃね
282 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 11:57:25.95 ID:VAtjDotR.net] 2^26倍精度浮動小数点数の最大値 (2^((2^(111-1))-1))*(2-(2^-2147483536)) https://ideone.com/3sxXF1 は計算できるが、 2^27倍精度浮動小数点数の最大値 (2^((2^(115-1))-1))*(2-(2^-4294967180)) https://ideone.com/MDO46W は誤差が出て計算できない。 何とかならない?
283 名前:デフォルトの名無しさん mailto:
[] [ここ壊れてます]
284 名前: mailto:2022/07/17(日) 12:39:58.12 ID:Un2LAdnT.net [ emaxの最大値は999999999999999999みたいだからどうにもならんのでは ] [ここ壊れてます]
285 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 15:02:05.03 ID:QiBhjgar.net] emacs
286 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 15:16:14.73 ID:VAtjDotR.net] >>276 10^10^100000 https://ideone.com/PIILdo
287 名前:デフォルトの名無しさん [2022/07/17(日) 15:22:34.18 ID:QiBhjgar.net] >>266 >>274 https://ideone.com/cEpoSf # joinの問題と言うよりもlist(b'hoge')の方に問題が在る訳だな
288 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 15:44:47.39 ID:7GRljLrT.net] def f(a): return a+1 a=[1,2] print(f(a)) >[2,3] みたいなことがやりたいんですが、 関数にまとめてデータを渡して処理してもらうようなことはできないでしょうか 本来はf(1),f(2)とするところです 数が多ければforで回すのですが、まとめてどさっと渡したいです
289 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 16:13:54.34 ID:eihDCF0F.net] >>280 https://www.tech-teacher.jp/blog/python-map/
290 名前:デフォルトの名無しさん [2022/07/17(日) 17:40:51.90 ID:mQpJsc2r.net] 何だこの記事は
291 名前:デフォルトの名無しさん [2022/07/17(日) 17:47:08.08 ID:GTQ/Lt+k.net] >>279 なるほど。strをバラしてもstrだが、bytesはバラすとintになってしまうということか。 まあ、実用上は問題ないかなあ。というかここを崩すとbytesを1バイトずつバラしてjoinするという殆どしない操作のために、 strとbytesの実用性がかなり失われるよね
292 名前:デフォルトの名無しさん [2022/07/17(日) 17:58:37.99 ID:Fxi+TDuE.net] >>280 素直にnumpy使う ではツマランのでこんなのはどうだろう def matome(func): __def process(*list_args): ____return [func(*args) for args in zip(*list_args)] __return process @matome def f(a): __return a+1 a = [1, 2, 3] print(f(a))
293 名前:280 mailto:sage [2022/07/17(日) 18:36:03.96 ID:jWrWgoZv.net] なるほど、map関数や*list_argsなどのやり方があるのですね これはどちらもforよりは軽くなりそうな感じはします >>284 素直にnumpy、がそもそもわかってないのですが、教えていただけませんか?
294 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 19:23:47.87 ID:pr2Iyzs9.net] >>284 無駄な処理があるので修正しときますね def matome(func): ____def process(list_arg): ________return [func(list_item) for list_item in list_arg] ____return process >>285 ググレば一発で出てきますよー import numpy as np a = np.array([1,2,3]) a+1 _.tolist()
295 名前:デフォルトの名無しさん [2022/07/17(日) 19:47:38.44 ID:Fxi+TDuE.net] >>286 それだとfの引数が増えた時に対応できない
296 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 20:59:15.42 ID:4v0QWrzY.net] mapと内包表記どっちが軽いんだろ? a=[1,2] b=[i+1 for i in a] これで終わる話ではあるよね
297 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 21:23:00.57 ID:zoulLgXv.net] 話を単純化して話してんだろ 一般的な解があるほうが親切
298 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 21:25:35.67 ID:pr2Iyzs9.net] >>287 なるほど、f([1,2,3],[4,5,6]) → [5,7,9] とかにするならmatomeはそのままで def f(*a): __return sum(a) で対応できるけども、しかし! 引数が1つの場合が f([1,2,3]) → [2,3,4] であるならば、 引数が2つの場合、f([1,2,3],[4,5,6]) → ([2,3,4], [5,6,7]) となるのが自然ではなかろうか? であるとするならば、fはリストの各要素の計算でありそのままにして、matomeを改造する必要がある
299 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 21:31:17.15 ID:LbIjTSt1.net] >>289 どれに対しての話?
300 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 21:38:02.50 ID:Rw0hMsrD.net] >>290 sumでない場合は? たとえばa1*a2+a3みたいな一般式もありう
301 名前:るよね [] [ここ壊れてます]
302 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 21:38:57.48 ID:Rw0hMsrD.net] というか、ただのsumなら普通は関数にぶっこまないよね
303 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 21:43:59.07 ID:pr2Iyzs9.net] リストの各要素に1足すだけの場合も普通に関数にぶっこまないけどな
304 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 22:12:41.33 ID:pr2Iyzs9.net] >>292 matomeのデコレータ付けるだけで色んな一般式を適用した関数が簡単に作れるってことね はいはい、理解しました fをそのまま可変にすることばかり考えてたわ
305 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 22:43:41.36 ID:Xin01ayH.net] zipするのは違うと思うけどな
306 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 09:21:19.20 ID:4im9UY7E.net] >>286 教えてくださりありがとうございます >>284 のほうが拡張性があって気に入りました やりたいことはできそうです ありがとうございました
307 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 10:01:23.22 ID:4lWXgehE.net] f(a,b,c) -> rをリスト用にリフトするなら f'([(a1,b1,c1), (a2,b2,c2),(a3,b3,c3)…]) -> [r1,r2,r3,…] f'(([a1,a2,a3,…], [b1,b2,b3,…], [c1,c2,c3,…])) -> [r1,r2,r3…] にするのは筋が悪い
308 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 10:22:26.91 ID:q/MsDqBP.net] >>290 の完成イメージ def get_list_items(func): ____def process(*lists): ________ret = tuple([func(item) for item in lst] for lst in lists) ________return ret[0] if len(ret) == 1 else ret ____return process @get_list_items def f3(item): ____return item+1 f3([1,2,3],[4,5,6],[7,8,9]) → ([2, 3, 4], [5, 6, 7], [8, 9, 10]) f3([1,2,3],[4,5,6]) → ([2, 3, 4], [5, 6, 7]) f3([1,2,3]) → [2, 3, 4] なるほど、この場合は可変にする必要性をあまり感じないね f3([1,2,3]), f3([4,5,6]), f3([7,8,9])って個別に呼べばいいだけだし >>284 の方が断然優れていますわ
309 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 10:36:45.20 ID:E3N1Hbif.net] 個別に呼ぶよりまとめて呼んだほうが処理が軽いんじゃないの
310 名前:名無し募集中。。。 mailto:sage [2022/07/18(月) 10:39:15.32 ID:kc1Sb0dj.net] FOR文でフォルダ以下のサブフォルダの中のファイルを 拡張子毎に振り分けるプログラムを作ってみましたが 1ファイルを移動するのに1秒くらいかかってしまいます shutil.move(FFF, KKK) (FFFとKKKは変数) この文を削除するとものすごく早くなります どうすれば早くなりますか?
311 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 10:44:27.05 ID:E3N1Hbif.net] でもあれか、matomeをつけてfを宣言してしまうと、普通にfを使うことができなくなってしまうのか このへん関数を呼ぶときにmatomeをつけるかどうかで使い分ける方法ないのかな
312 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 10:54:26.68 ID:Tf87Irt3.net] >>302 ごく素直に、fはデコレーターを付けずそのまま宣言する matomeを適用する関数はf_matome = matome(f)と定義する
313 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 11:04:03.01 ID:q/MsDqBP.net] >>302 デコレータ付けた関数はまとめてモジュール化するのが一番良いと思う list_func.f([1,2,3])
314 名前:デフォルトの名無しさん [2022/07/18(月) 11:36:57.20 ID:1omE+gQa.net] なんか頭の可笑しいのが劣化版だしまくるスレになってるな
315 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 12:10:19.60 ID:jgot1txW.net] >>301 srcとdstが同じドライブならos.renameかPath.renameにすれば速くなる 1秒が遅いのかどうかはファイル内容や環境によるから分からない
316 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 12:13:47.35 ID:J9TOF8GR.net] numpy ぐらい、Python のトップ・キノコードの動画があるのでは? キノクエストと言う、2千円のサロンも始まった
317 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 12:42:22.47 ID:Ni7oGdeS.net] >>301 PythonのバージョンやOS、テストしたファイルサイズ書こうよ Python3.10.5 Windows10は同じドライブならそんな時間かからないよ
318 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 12:47:11.59 ID:q/MsDqBP.net] >>305 いじけてないでキミも劣化版出せばいいんだよ 格好つけてたら何も
319 名前:できないぞ [] [ここ壊れてます]
320 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 13:41:26.68 ID:Zd8mDGLh.net] 少なくとも>>280 をやるためにデコレーターはないわ
321 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 14:39:38.37 ID:lIUF2c+K.net] >>310 >>289
322 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 14:46:42.16 ID:koL1rSR0.net] 初心者に対して不要な一般化は余計に分かりにくくするだけやろ やり方自体が御世辞にもいいアプローチとは言えないし
323 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:01:53.40 ID:q/MsDqBP.net] >>310 デコレータみたときは「やられた!」って思ったね しかも可変、嫉妬してちょっと噛みついてみたけど見事に返り討ち いやはや、彼のコードはみんなマネした方がいいよ、良いものはどんどん取り入れよう そういえば、ひろゆきが良く自慢げに言う話を思い出したんだけど、 ゲームを作ってみる授業?か何かで友達が書いたコードがメチャメチャ短かったんだって 上下左右の操作なんだけど、ちょっとした計算で実現していて、それ見たひろゆきが才能の差を 感じてゲームクリエイターをあきらめたとかいう才能の話 それ聞いたときはアホじゃね?良いコードみたらパクればいいだけじゃんって思ったものだよ たぶんひろゆきはすごくプライドが高くてちょっと躓いただけで諦めちゃうメンタルなんだよね そんなこんなで出来上がったのがヒマつぶしwとか言って他人の文句しか言わない人間になっちゃった 「頭悪い!」と他人を下げることで自分を慰める毎日、やっぱ諦めずに挑戦するのって大事だなって思いました そうホリエモンってひろゆきと真逆だよね、ホリエモンは今も色んなことに挑戦している、ホリエモンは輝いているよ
324 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:04:25.71 ID:PImFDAtt.net] >>312 >>297
325 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:04:43.60 ID:EPf9iKEG.net] >>311 一般的?
326 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:17:32.88 ID:J9TOF8GR.net] Ruby とか、関数型言語Elixir では、map が基本
327 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:18:04.67 ID:o0lyPM3S.net] 他人の話を否定するだけの奴って何の生産性もないよな 低レベルでもコード提示するほうがよっぽど役に立つわ
328 名前:デフォルトの名無しさん [2022/07/18(月) 15:22:34.62 ID:qwr+PsCM.net] >>312 参考までに良いアプローチplz
329 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:36:01.64 ID:y8tEu6pL.net] matomeとmap、どっちが速いんだろうか どっちもforで毎回f呼び出すよりは速そうだけど
330 名前:デフォルトの名無しさん [2022/07/18(月) 15:55:55.10 ID:GojDtZHN.net] デコレータ 使って観たい 御年頃
331 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:59:17.63 ID:LKJtspF0.net] 処理時間測定してみたらmapのほうが2割前後速かったわ
332 名前:デフォルトの名無しさん [2022/07/18(月) 15:59:40.46 ID:GojDtZHN.net] >低レベルでもコード提示するほうが ないわ
333 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 16:06:47.73 ID:kISKbyyY.net] ついでなんで書いとくね 実行時間 forを使ってf呼び出し:1 matome:0.5 map:0.4
334 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 16:21:22.72 ID:ln/vUyrz.net] >>322 比較対象は > 他人の話を否定するだけの奴 だぞ、頭大丈夫か?
335 名前:デフォルトの名無しさん [2022/07/18(月) 16:30:53.42 ID:qwr+PsCM.net] デコレーターに親殺されたニキがおるな
336 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 17:45:39.65 ID:UwLRS3iL.net] 普通に考えてリストに関数をそれぞれ適用させたいならmapが一番シンプルでmapと同意の内包表記が最もPythonらしいのでは?
337 名前:デフォルトの名無しさん [2022/07/18(月) 18:04:13.67 ID:LNL0CNxW.net] mapと同意?どういうこと?
338 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:04:19.00 ID:pfq1SIlO.net] お盆も近いからデコレータに恨みがある奴も 這い出して来ているんでしょう
339 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:08:48.63 ID:PImFDAtt.net] 単にmapの人が、なんでmap使わないんだと言っているだけなのでは? それがデコレータsageに見えると
340 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:23:16.60 ID:q/MsDqBP.net] 内包表記の方が断然好きだな〜、mapはシンプルになる場合もあるけど 今回のようにゴチャる場合もあるんだよな〜 下記はmatomeを自分好みの関数名と変数名に改変したヤツでっす! def get_lists_items(func): ____# 内包表記版 ____def process(*lists): ________return [func(*items) for items in zip(*lists)] ____return process def get_lists_items(func): ____# map版 ____def process(*lists): ________return list(map(lambda items: func(*items), zip(*lists))) ____return process
341 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:28:18.32 ID:2ipqvE3v.net] >>330 なんでzip? そういう引数リスト専用の関数を作りたいの?
342 名前:デフォルトの名無しさん [2022/07/18(月) 18:40:20.03 ID:qwr+PsCM.net] >>280 の望みは「intを引数に取り計算結果を返す関数を、"シームレスに"リストにも拡張すること」だからデコレーターが適当じゃない?Pythonicかどうかは知らん
343 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:50:45.67 ID:0V7pBSnr.net] デコレータは不適当 デコレータは基本的に元の関数を透過的に拡張するために使う物 def f(a, b, c)をデコレートしても デコレート前と同じf(a, b, c)で呼び出し可能で 成功時には同じ戻り値を得られるように作る 高階関数ならなんでもデコレータにすればいいわけじゃない
344 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:52:28.91 ID:q/MsDqBP.net] >>331 そのとおり、>>280 だけでなく色んなパターンのリスト関数が簡単に作れるのだよ このデコレータがあればね!
345 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:53:15.28 ID:9fYXH/DB.net] 勉強になったわ。 今までPyQtでアプリ作っていたが、@pyqtSlot()がQtデザイナーからのリンクみたいなもんかと思ってました。 すっきりです。
346 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:58:21.00 ID:VjQ/Ckj0.net] デコレーターのメリットがあるならそれ使えばいいけど遅い上に記述量増えるしね どう見ても>>320 だろw
347 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 20:38:42.55 ID:FbOneiqz.net] forよりは速い
348 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 22:52:23 ID:P7xIx3wJ.net] 今回の話でデコレータが内包表記より優れているという理屈が理解できない def f(a): return a+1 a=[1,2] print([f(i) for i in a]) これで事足りるでしょ
349 名前:デフォルトの名無しさん [2022/07/18(月) 22:52:35 ID:SFjyzDm9.net] 超絶初心者です。 counter: int = 0 # 他の処理で変わっていく def test(self): user_name = "xxxx" if counter > 0: now = datetime.datetime.now() ..... # 色々処理 now ←ここで nowは参照させたくない、スコープ外にしたい 今だとnow変数はif文が処理されれば値が入ります。 now変数のスコープをif文内だけにするってことはできますか。
350 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:05:31.63 ID:2hrGCnNJ.net] self ということはクラスメソッドだと思うけど 他のメソッドから self.test() を呼べば now は隠蔽される。 もしくは頭で now = None しておいて if now is not None: でわけるとか。
351 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:13:05.76 ID:1e6Pm9kS.net] >>330 starmap使えばlambdaいらない
352 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:22:42.01 ID:q/MsDqBP.net] >>341 なるほど、でも内包表記の方が見やすいよね! from itertools import starmap def get_lists_items(func): ____# starmap版 ____def process(*lists): ________return list(starmap(func, zip(*lists))) ____return process
353 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:35:38.05 ID:Yb4pZTqb.net] >>342 二択ならね でもどっちも用途に対してアンチパターンだから使わないのが吉
354 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:42:11.41 ID:q/MsDqBP.net] >>343 for文使うのがベストってこと?
355 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:54:17 ID:8wpG6nJ0.net] re.matchで何がマッチしたか知る方法てある? s = 'ABCDEFGHIJK' m = re.match(r'ABC|HIJ', s) 'm: <re.Match object;
356 名前:span=(1, 4), match='BCD'> match='BCD'を取ってきたいのだが、方法てある? ネットだと()でくくってgroupsでとれて書いてあるけど、 s = 'ABCDEFGHIJK' m = re.search(r'(BCD|HIJ)', s) x_text = m.groups(0) print(x_text) ('BCD',)て表示されるし、x_textはstr型じゃないから文字列操作ができない。 Python 3.9.13です。 [] [ここ壊れてます]
357 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 00:05:16 ID:pVZms+nG.net] >>339 pythonにはブロックスコープがないので if文の中で新しく作成した変数のスコープをif文内だけにすることはできないよ
358 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 00:32:46.32 ID:8NIkYSWg.net] >>345 groupとgroupsとそれぞれある group(0)ならstr
359 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 01:22:31.44 ID:XqVlnmi4.net] >>339 del now でどうでしょうか
360 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 08:41:05.75 ID:UwsMPoKY.net] 内包表記って普通のforと違うみたいだけど、なんでこんなに速いの?
361 名前:デフォルトの名無しさん [2022/07/19(火) 09:10:11.34 ID:mYl9AT7Z.net] >>340 ,346,348 339です、どうもありがとうです。言語仕様的にブロックスコープないのはしょうがないですね。 del は試してみたいと思います。
362 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 09:30:11.93 ID:ioxaO2di.net] a=[f(x) for x in range(100)] で、今xがいくつのところをやってますとprintする方法はありますか? forを外に持ってくると処理が遅くなってしまうので避けたいです
363 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 09:32:53.74 ID:Dm4GA3mb.net] 訂正 a=[f(x[i]) for i in range(100)] にします iの値は関数に持ち込みません 持ち込むのなら関数でprintできますが、それはなしにします
364 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:04:16.93 ID:L7UUhMht.net] >>352 a = [print(i) or f(x[i]) for i in range(10)]
365 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:12:32 ID:zbPEuSRT.net] CPU処理を高速化するのはmultiprocessingを使うことでできたのですが、 今度はGPUでmodel.fitするほうが遅くてしょうがないです multiprocessing同様に簡単に速くする方法があれば教えてください
366 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:15:51 ID:XqVlnmi4.net] >>352 fの中でカウント用の変数を持ってインクリメントする
367 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:20:19 ID:+zTkD2Kt.net] で
368 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:20:59 ID:+zTkD2Kt.net] >>353 できましたありがとう ところで、どうしてorなんでしょう?
369 名前:デフォルトの名無しさん [2022/07/19(火) 10:23:27 ID:2mzjLS5j.net] >>332 numpyが最適 わりとまじで
370 名前:デフォルトの名無しさん [2022/07/19(火) 10:30:11 ID:2mzjLS5j.net] >>345 re.findall
371 名前:デフォルトの名無しさん [2022/07/19(火) 10:31:34 ID:2mzjLS5j.net] >>349 普通のforと違うから
372 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:36:57 ID:COa8jHBw.net] >>357 print(i)の戻り値がNoneだから、必ずorの右辺を返す
373 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:51:26.50 ID:brlHmAiq.net] >>357 どうして?という直感はまっとうで 読み手の思考が止まるので必ず成功・失敗するケースだとその用法は不適 書き捨て用
374 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 11:07:31 ID:+zTkD2Kt.net] >>361 なるほど、かしこいですね >>362 では、どのような書き方が適切なのか教えてください
375 名前:デフォルトの名無しさん [2022/07/19(火) 11:30:53 ID:bdrM7/md.net] printしたらforと内包表記の違いなんて誤差に見えるほど遅くなると思うがそれはええんか?
376 名前:デフォルトの名無しさん [2022/07/19(火) 11:33:51 ID:RISkfx3J.net] forと内包表記で速さに違いが出るのはなぜですか? 同じコードをなぜ生成しないんですか?
377 名前:デフォルトの名無しさん [2022/07/19(火) 11:37:38.74 ID:856tCJOd.net] 内包表記でプログレス挟んで遅いのは嫌とかバカの極み 可読性考えて普通のforで回せ。 つか速度測ってみろ。大差ねえわたぶん [(f(x[i]), print(i)) for i in range(10)]
378 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 12:00:14.16 ID:GEUE7oT9.net] 超初心者を馬鹿にしないと精神の安定が保てない
379 名前:ゥわいそうな人 [] [ここ壊れてます]
380 名前:デフォルトの名無しさん [2022/07/19(火) 12:19:44 ID:192s6b8D.net] 馬鹿にされるような日本語使いする自称超初心者が悪い
381 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 12:24:07 ID:AricPVYV.net] >>349 比較したコードを出してみて
382 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 12:31:03.42 ID:ZGMRA42U.net] >>351 print等の副作用を伴う処理を繰り返す場合は 内包表記ではなくforを使うのがpythonにおける暗黙の了解 値の加工生成と入出力を分けて書くのはpythonに限らずプログラミングの基本
383 名前:デフォルトの名無しさん [2022/07/19(火) 12:45:56.52 ID:2mzjLS5j.net] >>363 a = [[print(i), f(x[i])][1] for i in range(10)]
384 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 12:59:28.59 ID:COa8jHBw.net] カウント1毎にプログレス表示すると内包表記使う意味ないかもしれんが、 リストへの追加100毎 カウント10000000毎にプログレス で時間計測してみた 内包表記 a = [(i%10000000 or print(i), str(i))[1] for i in range(100000000) if i%100 == 0] 8秒 forループ a=[] for i in range(100000000): ____if not (i%10000000): ________print(i) ____if i%100 == 0: ________a.append(str(i)) 20秒 行儀悪い書き方だが、条件しだいで効果はある
385 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 13:09:56.89 ID:ieHxnJ8/.net] >>365 ループ内でpythonのインタプリタで実行される処理とコンパイル済みのCのコードで実行される処理の行き来が減れば速くなる 内包表記は式しか書けないのとlist.appendのようにインタプリタがメソッドを探す処理が不要にになることが多いので単純な式評価だと内包表記がやや速い結果になりやすい (例えばループの外でappend = outlist.appendとしてループ内ではメソッドじゃなく関数呼び出しにすれば多少速くなる) ただforより内包表記が速いから内包表記を使うというのは使い方が間違ってるか使う言語を間違ってる
386 名前:デフォルトの名無しさん [2022/07/19(火) 13:35:02 ID:RISkfx3J.net] >>373 ありがとうございました。 処理系が書き方の違いを吸収して同じ(速い)コードを生成することは難しいのでしょうか?
387 名前:デフォルトの名無しさん [2022/07/19(火) 13:41:20 ID:2mzjLS5j.net] 8秒の方はstr()呼ばれる回数も少ないんじゃね やり直し
388 名前:デフォルトの名無しさん [2022/07/19(火) 13:45:55 ID:e6PA2QPH.net] 内包表記を配列操作以外に使うな(関数叩くな)って書いてるのeffective pythonだっけ >>374 速いコードって、たとえば進捗吐かないとか、無駄な評価式やループしないとか、そうやって作ってくんよ 鈍重な書き方しても速いのがいいっていうなら、もう根本的にpythonは遅い言語だよ
389 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 13:57:38.21 ID:COa8jHBw.net] >>375 str()呼ばれる回数は同じじゃね でも、i%10000000の回数違ってた 内包表記 a = [(i%10000000 or print(i), str(i))[1] for i in range(100000000) if i%100 == 0] 8秒 forループ a=[] for i in range(100000000): ____if i%100 == 0: ________if not (i%10000000): ____________print(i) ________a.append(str(i)) 12秒
390 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 14:02:29.41 ID:6WNMcjy9.net] >>377 printしない場合は?
391 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 14:08:53.16 ID:COa8jHBw.net] >>378 str(i)呼ぶ回数は、両方 100000000 / 100 = 1000000回
392 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 14:12:29.27 ID:6WNMcjy9.net] >>379 うんだから何秒なの?
393 名前:デフォルトの名無しさん [2022/07/19(火) 14:12:50.87 ID:Xr1AbmZQ.net] 結局書きづらい、読みづらくてミスしちゃうんだから 普通のforループの方が総カロリー低いと思います
394 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 14:17:28.28 ID:COa8jHBw.net] >>380 printしない内包表記 a = [str(i) for i in range(100000000) if i%100 == 0] 8秒
395 名前:デフォルトの名無しさん [2022/07/19(火) 14:19:06.99 ID:RISkfx3J.net] 行列プログラマーという本では、集合の表記に近い内包表記のほうが分かりやすいと書いてあります。 実際、もっぱら内包表記を使っています。
396 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 14:40:11.78 ID:HHxHBIIc.net] >>382 つまりprintは時間がかかってないわけだよね で、普通のforより内包表記のほうが速い分だけ速くなってると それは何の実験なんだい?
397 名前:デフォルトの名無しさん [2022/07/19(火) 14:49:08.31 ID:Dd2ngZhk.net] 内包表記でもインデントしていいんですよ 可読性高めていけ
398 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 14:
] [ここ壊れてます]
399 名前:52:21.67 ID:COa8jHBw.net mailto: >>384 進捗を大雑把に表示したい場合、内包表記でprintするのも有りという実験 俺は開発中以外では使わんけど 完成したコードにこんなの書いてたらやだ [] [ここ壊れてます]
400 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 15:07:57 ID:COa8jHBw.net] printは時間がかかってないのではなく回数を少なくしてる 他の人が指摘してるように、進捗を細かく表示したい場合、内包表記もforループも時間差はほぼ無くなる printはやはり時間がかかる
401 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 15:17:30 ID:kjnFmzM9.net] 時間差は4秒で変わらないんじゃないの printに時間がかかるから4秒の割合が小さくなってほとんど意味ないじゃんってことでしょ
402 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 15:40:36.31 ID:COa8jHBw.net] >>388 そういうことです 進捗を細かく表示したい場合、ほとんど意味ないってこと 完成状態で内包表記にprintはおすすめできない テスト中に内包表記にprintを入れるのはお好みで
403 名前:デフォルトの名無しさん [2022/07/19(火) 15:40:46.26 ID:bdrM7/md.net] a=[] … a.append(str(i)) でなくて、 a=[0]*100000000/100 … a[i]=str(i) だとますます変わらなそう
404 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:01:31.52 ID:Ao+3qyOr.net] >>377 そんな差でる? むしろforループのほうが3~5%程度速いんだが
405 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:03:31.06 ID:/jGGKkxp.net] >>389 であれば、可読性より速度を重視する場合、内包表記にprintを入れたほうがいいということですよ 意味は4秒ぶんあるわけです
406 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:18:19 ID:COa8jHBw.net] >>391 こちらは化石PCで測定したので。 誤差じゃない充分な時間差が開く程度にrangeの値を大きくしてみて
407 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:28:38.52 ID:L7UUhMht.net] そもそも内包表記は可読性良いよ、ギュッと1行にまとまりつつも分かりやすい for文見る方がダルイわ、内包表記にできないものを仕方なくfor文にしているよ 慣れだよ慣れ、最近だと二重ループの内包表記も全然苦じゃない、美しいとさえ感じる
408 名前:デフォルトの名無しさん [2022/07/19(火) 16:31:26.97 ID:RISkfx3J.net] >>394 ですよね。集合論的な表記に似ています。
409 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:40:41.64 ID:wHnodxSw.net] forループのほうが内包表記より速いなんてことあるの?
410 名前:デフォルトの名無しさん [2022/07/19(火) 18:36:04.44 ID:paq2dZhq.net] それこそ、内包表記で呼ぶ関数の回数をカウントして確認たいならデコレーターとかでtqdm使うようにした方が良くないかな? 内包表記の中をごちゃごちゃにするのは基本的には避けた方がいいと思うんだよな。 シンプルに書くために内包表記を使ってるのであって、Zコンビネーターとか使ってへんなことするなら普通のforとかにした方がいいよね 遊びとしては否定しないけどね
411 名前:デフォルトの名無しさん [2022/07/19(火) 19:06:26 ID:xA31LZ9f.net] code golf で言うと 打数多い方が自慢してるような 糞な流れ もうやめませんか
412 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 19:27:22 ID:w0DVg8Bk.net] 自治厨久しぶりに見た
413 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 19:55:09.64 ID:z/It7jZN.net] >>397 に一票 こういうのこそデコレーターの出番だと思う
414 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 20:20:06.84 ID:n8OVMrsb.net] つまり具体的にはどういうこと?
415 名前:デフォルトの名無しさん [2022/07/19(火) 22:29:55.85 ID:Dd2ngZhk.net] 一行にまとめた内包表記より、インデントした内包表記の方が可読性が下がる
416 名前:デフォルトの名無しさん [2022/07/19(火) 22:32:42.31 ID:Dd2ngZhk.net] の?
417 名前:デフォルトの名無しさん [2022/07/19(火) 23:31:48.45 ID:paq2dZhq.net] >>401 こんな感じ imgur.com/a/UsKhUuD tqdm使いたくなかったらpbarの初期化やpbar.updateの代わりにカウント変数とprintでも使っておいて
418 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 00:25:50.52 ID:sLuJt4wx.net] >>404 rangeの100で100回ループさせるから tqdm_wrapperに100を渡してるんだよね?
419 名前:デフォルトの名無しさん [2022/07/20(水) 01:30:58.07 ID:aFoX4Dx/.net] >>405 そうそう、その辺はもっといい方法があるかもしれないが、ちょっと思いつかなかったのでそんな感じ。 回数が決まってないときは棒グラフは出せないけど1秒に何イテレーションできてるとかはわかると思う。
420 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 03:27:59.73 ID:vTCCBmkT.net] @tqdm_wrapper(total_count)ってできればいいんだけど、そういうのは無理なのかな?
421 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 06:19:50.33 ID:uVwid/eb.net] printなしでやってもforループのほうがほんの少し内包表記より速いんだけどなぜだろう
422 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 07:14:30.03 ID:vC0V/6Za.net] PEP pythonは描き方がひとつ(キリっ
423 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 07:58:53 ID:rNnuNQ69.net] >>408 計測結果は何秒だったの メモリが少なくてスワップ発生してるとか?
424 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 09:48:14.82 ID:53g3nF67.net] Pythonのネット記事読んでるとAnacondaを入れてどうこう、というチュートリアルばっかりあるんだけど 肝心のAnacondaはどういう状況下で使うものなのか、説明省かれててよくわからないんだよな ライブラリとpythonのバージョンが合わないと使えないことがあるからそれを避けるため、って認識でいいの? 不具合無かったらAnacondaつかわなくていいのかな?
425 名前:デフォルトの名無しさん [2022/07/20(水) 11:17:28.13 ID:wWIP1AbD.net] anacondaはAnaconda社の計算科学のための商品で学生の方など教育や学術目的、または趣味の用途であれば無償でご利用いただけます 入門書とかで使われてるのは、色々と最初から入ってるから開発やデプロイ先の環境構築を解説しなくて済むからだよ anacondaに依存しないやり方覚えた方が楽っていうか、むしろその方が必須になる
426 名前:デフォルトの名無しさん [2022/07/20(水) 11:22:56.97 ID:wWIP1AbD.net] 退屈なことは Python にやらせようを書いた人も同じような事言ってた
427 名前:デフォルトの名無しさん [2022/07/20(水) 11:27:11.69 ID:wWIP1AbD.net] アナコンダを否定してるわけじゃないよ。素晴らしい商品ですし、選択肢の一つとして選べるのは良いことだと思います
428 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 11:55:51.53 ID:L6JCmqAC.net] あえて、IronPythonに手を出して茨の道をw
429 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 13:27:25 ID:SSFD7/IV.net] 今Twitterなどで話題になってる仮想通貨のbotを作りたいです 年間で1億円ぐらい稼ぐには何の勉強すればいいですか?
430 名前:デフォルトの名無しさん [2022/07/20(水) 13:38:38 ID:pMrjs46b.net] 経済と仮想通貨
431 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 13:38:57 ID:ShYgaPwJ.net] デッサン力
432 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 14:14:10.83 ID:hOJNeZde.net] これからのキーワードは仮想環境 anacondaもIronPythonもPyTorchも欲しい環境をコンテナ一発でドーン! ってやりたいからDocker勉強しようかと思っている
433 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 15:00:19.03 ID:qJwz0nM8.net] ぶっちゃけ docker の anaconda 版とか docker の 標準 python 版とか そういうので良いんだわ 解説書あっても各々インスコ時にバージョンガーとかおま環とか だるいサポートにみんな疲れたんだろ
434 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 15:29:51 ID:djIfGOxS.net] windows10 + python3.9 では生ソケットを扱う事ができないのでしょうか import socket s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP) ソケット作成のとこでエラーがでます [WinError 10013] アクセス許可で禁じられた方法でソケットにアクセスしようとしました とエラーメッセージがでます ログインしているユーザはadministratorの権限も持っています
435 名前: 英語のサイトで調べるとprohibitというワードもありました 識者の方ご指導願います [] [ここ壊れてます]
436 名前:421 [2022/07/20(水) 15:40:01 ID:djIfGOxS.net] 421です コマンドプロンプトを管理者権限で実行する事が必要であると学びました
437 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 16:51:36.92 ID:rnlV1uw8.net] anacondaはまああれだけどspyderはなんか好きだ
438 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 17:04:37.61 ID:rNnuNQ69.net] a=[] append = a.append for i in range(30000000): ____append(i) のように、メソッドをあらかじめ変数に入れると高速化できるという情報をよく見かけるけど本当なの? 何回計測しても誤差程度の差しかなく、速くなってるのか確認できないんだけど
439 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 17:27:44.50 ID:Lx4+ezqp.net] https://wandbox.org/permlink/xE2gHLprP4RKuqf0
440 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 17:49:55.19 ID:ZOYHOoJs.net] このくらい最適化してよと思っちゃうんだが無理なんかな?
441 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 17:50:04.72 ID:rNnuNQ69.net] >>425 ありがとうございます 計測方法のミスに気づきました 関数を作らず計測していたので、append = a.append のところがグローバル変数になって遅くなり、 その結果、高速化していなかったようです
442 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 18:01:43.03 ID:D9vTvaEa.net] これの出所は概ね公式Wikiだけど、2が全盛期に書かれた物なので https://wiki.python.org/moin/PythonSpeed#Take_advantage_of_interpreter_optimizations 属性を検索したり、インスタンスを紐付けてバウンドメソッドを返す様な https://docs.python.org/ja/3.7/howto/descriptor.html#invoking-descriptors こういった機構を回避するので多少速くなるけど、現行のPythonでは比較的小さい ローカル変数がグローバル変数より読み書きが速いのも実際そう >>426 型がないダックタイピングな以上は都度解決するしかないであろうなぁ…
443 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 18:58:09.37 ID:QlVkmKZp.net] anaconda入れたけど、avastがなぜかウイルス扱いしていて、anaconda立ち上げるとすぐ落ちて使えなくて、あきらめてvscにした
444 名前:デフォルトの名無しさん [2022/07/20(水) 20:09:39 ID:eRSlBPBh.net] pythonで質問なんですがコンソールに表示される数値の横に量を表したバーを表示させたいのですが 300 ■■■ 20 ■ 150 ■■ ぐぐっても進捗率をあらわすプログレスバーのtqdmが出てきてしまいどうやって数字に連動した量を表示させるのかわかりません 何かヒントがあればお願いします
445 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 20:21:54 ID:hglVd79x.net] pbar.update(1) ←これの数字をいじる
446 名前:デフォルトの名無しさん [2022/07/20(水) 21:24:08.50 ID:npea7ePl.net] >>431 ありがとうございます、おかげさまでなんとかできそうです 素敵なお方だ
447 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 22:26:00.73 ID:rNnuNQ69.net] >>432 「tqdmが出てきてしまい」て書いてるので、静的に表示するだけだからtqdmは使いたくないのかと思った 静的に表示したい人用おもちゃ def print_bar(n, max, expansion): ____box = "▏▎▍▌▋▊▉█" ____rate = (n * expansion * 100) // max ____bar = "" + box[7] * (rate//8) + box[rate%8] ____print(bar) print_bar(50, 100, 1) print_bar(55, 100, 1) print_bar(100, 100, 1) print_bar(100, 200, 1) print_bar(100, 200, 3) 今書いた書いたらちゃんとテストしてない
448 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 22:32:08.75 ID:rNnuNQ69.net] >>433 バグってた すぐ直します
449 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 22:42:20.27 ID:rNnuNQ69.net] def print_bar(n, max, expansion): ____box = "█ ▏▎▍▌▋▊▉" ____rate = (n * expansion * 100) // max ____bar = "" + box[0] * (rate//8) ____if rate%8 != 0: ________bar += box[rate%8] ____print(bar) print_bar(0, 100, 1) print_bar(1, 100, 1) print_bar(2, 100, 1) print_bar(3, 100, 1) print_bar(4, 100, 1) print_bar(5, 100, 1) print_bar(6, 100, 1) print_bar(7, 100, 1) print_bar(8, 100, 1) print_bar(50, 100, 1) print_bar(55, 100, 1) print_bar(100, 100, 1) print_bar(100, 200, 1) print_bar(100, 200, 3)
450 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 22:53:43.67 ID:JXXlHdvc.net] Ruby on Rails なら、VSCode, WSL2, Vagrant, Virtual Box でも出来るけど、 Python は依存モジュールが多いから、Docker が普通 自宅ではじめるDocker入門[改訂版]、浅居 尚、2021/4 この本が最も簡単
451 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 23:38:31.06 ID:hOJNeZde.net] >>435 barだけだとやっぱり分かりにくいですね数字も必要だと思いました もしくはbarの到達位置の表示が必要
452 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 23:59:09.30 ID:hOJNeZde.net] >>436 Dockerの書籍でているのね、レビュー評価もメチャいいじゃん でもネット上に公式?の日本語ドキュメントがあるからこれでいけるんじゃないかな??どうかな?w ttps://matsuand.github.io/docs.docker.jp.onthefly/ ttps://docs.docker.jp/index.html
453 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 01:17:04.66 ID:dz51dLzk.net] >>437 値、開始位置、最大到達位置を表示しました def print_bar(n, max, expansion): ____box = "█ ▏▎▍▌▋▊▉" ____rate = (n * expansion * 200) // max ____bar = "" + box[0] * (rate//8) ____if rate%8 != 0: ________bar += box[rate%8] ____print(f"{n:{len(str(max))}d} | {bar:{expansion*25}s} |\n") print_bar(8, 100, 4) print_bar(50, 100, 4) print_bar(90, 100, 4) print_bar(100, 100, 4)
454 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 03:59:00 ID:c34Fgnuj.net] PythonでAI作り始めてから電気代が2000円以上高くなった
455 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 08:50:46 ID:nja0E+A7.net] >>439 すばらしい全部入っている! けども200とか25とかなんだろう?ああ小数点がイヤだから2倍しているのか となったので、計算式が分かるようにした方が可読性とメンテナンス性があがると思いました 以下計算式を明示した改良版 import math def print_bar(n, max, expansion): ____box = "█ ▏▎▍▌▋▊▉" ____rate = (n * expansion * 100) // max ____bar = "" + box[0] * (rate//8) ____if rate%8 != 0: ________bar += box[rate%8] ____print(f"{n:{len(str(max))}d} |{bar:{math.ceil(expansion*100/8)}s}|\n")
456 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 11:05:44.45 ID:nja0E+A7.net] さらに良くなった import math def print_bar(n, max=100, expansion=1): ____box = "█ ▏▎▍▌▋▊▉" ____rate = (n * expansion * 100) // max ____bar = box[0] * (rate//8) ____if rate%8 != 0: ________bar += box[rate%8] ____print(f"{n:{len(str(max))}d} |{bar:{math.ceil(expansion*100/8)}s}|\n")
457 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 19:29:07 ID:dz51dLzk.net] やっぱりmath.ceil使ったほうがいいよな importを減らしたがる癖が抜けず2倍してしまった
458 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 20:09:26.68 ID:dz51dLzk.net] 最終型 import math def print_bar(n, max=100, expansion=1, *, cr=2, sep="|", prefix="", suffix="", unit=""): ____box = "█ ▏▎▍▌▋▊▉" ____rate = (n * expansion * 100) // max ____bar = box[0] * (rate//8) + box[rate%8] * bool(rate%8) ____print(f"{prefix}{n:{len(str(max))}d}{unit} {sep}{bar:{math.ceil(expansion*100/8)}s}{sep}{suffix}" + "\n"*cr, end="")
459 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 21:25:09.45 ID:nja0E+A7.net] >>444 すんごーい! crの初期値は1が良いかな、それ以外は全部気に入りました
460 名前:デフォルトの名無しさん [2022/07/22(金) 00:46:45.54 ID:LN4IvGf8.net] >>444 ありがとうございます
461 名前:デフォルトの名無しさん [2022/07/22(金) 11:32:26.12 ID:emgmw9dd.net] >>421-422 runas
462 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 14:53:38.79 ID:hAgOKfi8.net] >>444 数値を非表示にするオプションつけ忘れた
463 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 17:03:59.46 ID:t+dBeaSp.net] >>448 そのオプション名を何にするかでセンスが問われる num, display_num, meter, bar_value, ..etc さあ、キミのセンスを見せてくれ!
464 名前:デフォルトの名無しさん [2022/07/22(金) 17:47:22.62 ID:iaUAG8EO.net] ここはきみの日記帳じゃない
465 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 19:07:18.92 ID:t+dBeaSp.net] >>450 関数や変数の命名はとても重要だよ? 端的で分かりやすくする必要がある それが可読性やメンテナンス性をあげるわけなのだよ プログラミングは名前付けであると言われる所以はそういうことなのだよ 今回の数値の非表示オプション名は非常に難しい、私的にはdisplay_valueがベストかな? と考えつつも彼の意見も参考にしたいわけだ、もちろんtqdmではどうしているのかな? と調べたりもした、tqdmではbar_formatで書式を指定できるみたいだね その中で数値部分はpercentageという変数名のようだ print_barはunit指定ができるわけで%表示固定ではないから、percentageは適切ではない と考えると・・ね?難しいでしょ? 皆の意見も聞きたいじゃん!
466 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 19:43:18.38 ID:bpOnuI9e.net] 名前は重要。 開発が終わった後でも、コードを見る事があるから プログラミングの3割の時間は、分かりやすい名前を考えること 簡潔に説明されている名前なら、 処理を詳しく見なくても理解が進むので、バグも減って高品質になる リファクタリング・メソッド化などは、Rubyist の基本
467 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 19:52:25.71 ID:PdYjn4LX.net] メソッドが長すぎると名付けが難しいから結局は短く作るのがいいのか? でもそれだと分割しすぎとか言われそうだし 「汎用的、抽象的」な名前がいいのか「汎用的な名前を避けて具体的」にすべきなのか
468 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 19:52:35.56 ID:t+dBeaSp.net] >>448 でけた! tqdmのbar_formatを採用 これで数値の表示/非表示はもちろん色々柔軟に対応できる def print_bar(n, max=100, expansion=1, *, bar_format="{prefix}{num}{sep}{bar}{sep}{suffix}", ____________ unit="%", sep="|", prefix="", suffix="", cr=1): ____box = "█ ▏▎▍▌▋▊▉" ____rate = (n * expansion * 100) // max ____bar = box[0] * (rate//8) + box[rate%8] * bool(rate%8) ____bar = f"{bar:{math.ceil(expansion*100/8)}s}" ____num = f"{n:{len(str(max))}d}{unit}" ____print(bar_format.format(**locals()) + "\n"*cr, end="")
469 名前:452 mailto:sage [2022/07/22(金) 21:05:54.53 ID:bpOnuI9e.net] 例えば、Ruby のモジュール関数の名前なら、 cancel_button_label_text apply_or_cancel_button インスタンスメソッド名なら、 obj.suspended? 末尾の? で、戻り値がbool 型だと表現できる
470 名前:デフォルトの名無しさん [2022/07/22(金) 21:06:08.18 ID:aVBkeTN2.net] >454 print_bar.update ってできない?
471 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 21:29:43.19 ID:t+dBeaSp.net] >>456 tqdmのupdateみたいなことができるかってこと? クラス化すればできるよ ああ、bar_formatとか呼び出すごとに変数指定するのはアホだよね クラス化してインスタンス生成時にbar_format指定した方がいいよね
472 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 22:27:04.77 ID:t+dBeaSp.net] クラス化できたけど、関数バージョン(>>444 )の方が好きかも class print_bar: ____def __init__(self, max=100, num_format="{num:{max_digit}d}{unit}", ____________ bar_format="{prefix}{num_format}{sep}{bar}{sep}{suffix}", ____________ unit="%", sep="|", prefix="", suffix="", cr=1): ________self.box = "█ ▏▎▍▌▋▊▉" ________self.max = max ________self.max_digit = len(str(max)) ________self.num_format = num_format ________self.bar_format = bar_format ________self.unit = unit ________self.sep = sep ________self.prefix = prefix ________self.suffix = suffix ____def update(self, num, expansion=1, cr=1): ________rate = (num * expansion * 100) // self.max ________num_format = self.num_format.format(num=num, **self.__dict__) ________bar = f"{self.box[0] * (rate//8) + self.box[rate%8] * bool(rate%8):{math.ceil(expansion*100/8)}s}" ________print(self.bar_format.format(bar=bar, **dict(self.__dict__, num_format=num_format)) + "\n"*cr, end="") p = print_bar() p.update(70)
473 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 22:57:55 ID:oFTCo3Qt.net] 日記帳で試行錯誤して、結論が出てから書き込んでください
474 名前:デフォルトの名無しさん [2022/07/22(金) 23:49:56.07 ID:XYg2RZCf.net] boxサーバーに上がっているExcelやcsvのデータってpythonで読み取ることできるのでしょうか? https://app.box.com/file/xxxxxxxxxxxxxのようなURLを指定して ファイル内のデータを読み込みたいのですがうまくいきませんでした。
475 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 06:43:50.22 ID:NAv7kQq5.net] beautifulsoupでいったんダウンロードすれば?
476 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 06:53:36.23 ID:DC0Z
] [ここ壊れてます]
477 名前:GSft.net mailto: ども、print_barの作者です。こんな短いプログラムに作者もくそもないですが・・・ 上記コードを参考させてもらい考えました。私ならこうします import math def print_bar(num, max=100, expansion=1, *, prefix="", display_num=True, unit="", sep="|", suffix="", cr=1): ____box = "█ ▏▎▍▌▋▊▉" ____rate = (num * expansion * 100) // max ____bar = f"{box[0] * (rate // 8 ) + box[rate % 8] * bool(rate % 8):{math.ceil(expansion * 100 / 8)}s}" ____num_formated = f"{num:{len(str(max))}d}" * display_num ____print(f"{prefix}{num_formated}{unit} {sep}{bar}{sep}{suffix}" + "\n"*cr, end="") display_valueのほうがわかりやすいけど長いから好きじゃない。何度も書く名前ならdisp_numに短縮するかも。 bar_formatは付けたい人が自分でつければいい 最低限の機能が付いていて、可読性・カスタマイズの容易性を考えるとこんなところでしょうか [] [ここ壊れてます]
478 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 07:10:57.00 ID:DC0ZGSft.net] >>462 formattedです。恥ずかしいミス
479 名前:デフォルトの名無しさん [2022/07/23(土) 07:22:10.22 ID:ytdxYh/D.net] なんか昨日のアップデートでWindows TerminalがIME勝手にON(英字入力)になる。とっても面倒くさい。 OFFにする方法ない?
480 名前:デフォルトの名無しさん [2022/07/23(土) 09:23:17.53 ID:bR39w9BX.net] >>459 ++ ほんそれ
481 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 09:48:06.05 ID:lkZCuVJ2.net] >>462 おつかれちゃーん、なかなか楽しめたし勉強になったわ 日記帳とか言ってる奴等も参加すれば良かったのに、実際にコード書かないと勉強にならないぞっ!w
482 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 10:20:26.06 ID:zqWGCIwO.net] コード出してあれこれやるのはいいと思うけどここまで引っ張るのはさすがにスレチだわな こっちへ行けよ Pythonのお勉強 Part67 https://mevius.5ch.net/test/read.cgi/tech/1653540315/
483 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 10:32:50.67 ID:lkZCuVJ2.net] >>467 引っ張るとスレチって意味が分からんw そっちのスレも同じじゃん何が違うのよ? うーん、、もしかして自分が質問したレスが埋もれちゃったとか? それは関係ないよ、単に答えられるor答える人が居なかっただけで我々のせいではない
484 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 10:41:14.21 ID:iHVC6bwv.net] 我々…
485 名前:デフォルトの名無しさん [2022/07/23(土) 10:43:44.38 ID:bR39w9BX.net] 自演で自分のレス褒めてるレスとか観ると 他人事乍ら哀しくなるな
486 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 10:59:03 ID:zqWGCIwO.net] >>468 スレタイも読めないのか? ここは超初心者用な >>430 はスレタイに沿ってるけどその後print_bar でグダグダ書くのは違うだろ
487 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:09:30 ID:QCnlUATD.net] スレタイに日記帳って書いてあるスレで試行錯誤すべきだったよな
488 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:18:41.28 ID:lkZCuVJ2.net] >>471 うん?>>433 からすでにスレチってこと? コード出してあれこれは良いとか>>467 に書いてるし 何が言いたいのか意味が分からん、どこからスレチなのかレス番号かけや
489 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:21:00.46 ID:Q9mI3iQv.net] しつこい
490 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:29:25.91 ID:zqWGCIwO.net] >>473 スレチかどうかの閾値なんて人によって違うからここからスレチなんて言うことはできない それでも「ここまで引っ張ったら」多くの人がスレチって感じるだろって話
491 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:31:58.41 ID:lkZCuVJ2.net] >>475 ほえぇぇぇぇえぇぇええええええええ〜〜〜〜〜〜〜〜!! ボクちゃんが気に食わなかったからスレチですってことですかぁああああ??? びっくりしましたぁぁああああああwwww
492 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:38:20.58 ID:3Ek+JvxJ.net] 3回までよくて4回目がだめなんてことはない 3回でだめな人もいるし、4回はアウトだろうという人もいる だが10回までくるとさすがに全員がアウトと感じる そういう状況
493 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:49:34.23 ID:lkZCuVJ2.net] >>477 うん?10回は全然良いよ、っていうかスレに沿っているなら何回でもええがな 全員がアウトと感じるとかウソつくなよw 君たちのお気持ちの表明がまさにスレチw なぜならPythonと全く関係ございません!これが完璧なスレチの指摘というものだよ お気持ちとか何だよww 脳みそ付いてんのか?w
494 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:49:41.79 ID:Py93vpAm.net] >>476 > ボクちゃんが気に食わなかったからスレチですってことですかぁああああ??? ダメな理由は前に書いてあるだろ... > スレタイも読めないのか? > ここは超初心者用な > びっくりしましたぁぁああああああwwww お前の無能さにこっちがびっくりだよw
495 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:51:51.55 ID:NAv7kQq5.net] >>478 そう、君たち、この言葉がすべて おまえだけだよいいと思ってんのは
496 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:52:41.39 ID:lkZCuVJ2.net] >>479 ダメな理由は>>475 に書いてあんだろ、スレに沿っていたけど途中で彼の閾値を超えたんだってww 10回はダメでちゅ〜〜ww
497 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:53:42.77 ID:lkZCuVJ2.net] >>480 はい、じゃあ全員じゃないね、答え合わせありがとうw
498 名前:デフォルトの名無しさん [2022/07/23(土) 12:01:36.99 ID:LCkddkGN.net] >>460 460です。beautifulsoupも初めて聞いたレベルなのですが、 チャレンジさせていただきます。 ありがとうございました。
499 名前:デフォルトの名無しさん [2022/07/23(土) 12:01:47.65 ID:LCkddkGN.net] >>461 460です。beautifulsoupも初めて聞いたレベルなのですが、 チャレンジさせていただきます。 ありがとうございました。
500 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:02:11.20 ID:cx+wDCne.net] >>482 そうだね 一人だけ空気読めないやつがいる これが正確な言い方
501 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:12:16.70 ID:zqWGCIwO.net] 今日の様に暑いとID:lkZCuVJ2みたいな奴が犯罪にはしらないか心配になるw
502 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:12:53 ID:DC0ZGSft.net] 462です。 スレ見なおしたけど反省するようなレスしていない 449で予想外のツッコミ受けて驚いたが。 自治厨の相手はしたくないので、この件のコメントはこれが最初で最後
503 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:13:10 ID:Sr9KJy9/.net] 絶望的に適性ないやつがいるな そんな無駄なことは今すぐやめろ 限りある人生をもっと有意義なことに使え
504 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:16:15 ID:cx+wDCne.net] まあ反省できるようなやつだったら最初からこんなことしないわな
505 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:39:52 ID:zqWGCIwO.net] コード出して色々言うのはいいけど適切なスレでやってねって話なんだけど自治厨とか言い出してる時点で反省なんてしてないわなw
506 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:46:43 ID:b3gXMMo0.net] 自己中なんだろ 自分以外見えてない
507 名前:デフォルトの名無しさん [2022/07/23(土) 15:41:49.42 ID:FAO+OpS7.net] ネオ麦茶
508 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 17:14:17.68 ID:QCnlUATD.net] >>492 犯罪示唆ですね 通報しました
509 名前:デフォルトの名無しさん [2022/07/23(土) 18:06:21.74 ID:KR63qUqp.net] 随分とハイコンテクストな犯罪教唆だな
510 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 21:20:29.07 ID:MqDru3I9.net] >>460 例えばRuby では、input.csv が以下の内容として、 a b,c require 'csv' require 'open-uri' url = "localhost:8000/input.csv" CSV.parse( open( url ).string ).each do | row | # 1行ずつ処理する p row end 出力 ["a"] ["b", "c"] または、curl コマンドを使う事もできる。 input_csv = `curl #{ url }`
511 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 22:54:21.58 ID:jIlcufBL.net] 完全自殺なんチャラって本も流行ったなぁ
512 名前:デフォルトの名無しさん [2022/07/24(日) 05:32:21 ID:or5HZl/v.net] 1.適性がない、というその適性を定義してください。 2.適性がない、となぜ判断
513 名前:したのか 1. をもとに詳しく記述してください 3.1.2.が出来ないのではないのならば、あなたこそ、あなたのいう適性をもちあわせていない、と私は判断します 以上 [] [ここ壊れてます]
514 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 10:18:49.14 ID:VDm4wods.net] >>497 非論理的だね 著しく論理的思考能力の低い人はプログラミングの適性がないと言われても仕方ない
515 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 12:33:12 ID:DlP0Pw4T.net] >>498 1.自民党と統一教会の関係を説明してください 2.公明党と政教分離の関係を説明してください 3.おまえは馬鹿
516 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 13:48:43.90 ID:Kadg5L8P.net] >>499 ここで政治の話は止めて頂きたい
517 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:03:28.06 ID:s7YMPwIQ.net] >>500 おまえは馬鹿
518 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:09:01.48 ID:nqGRTr2S.net] プログラミングしてると、 Delete、Enter、BackSpace、半角全角、home、end ここらへんがホームポジションから遠すぎて困るな 半角、全角は無変換と変換に割り当てたんだけど みんなはキーマップカスタマイズとかしてるの?
519 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:12:13.07 ID:s7YMPwIQ.net] それはPythonと関係のある話題ですか?
520 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:14:56.30 ID:QkJUlhBv.net] 手を叩いて大きくすると良い感じになるよ。
521 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:20:46.38 ID:VlRFcd7U.net] >>499 メンバシップ関数を定義するのけ?
522 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:43:22.46 ID:Kadg5L8P.net] >>502 ctrl<->capsの入れ替えくらい
523 名前:デフォルトの名無しさん [2022/07/24(日) 16:12:15.26 ID:ydeGY7xn.net] >>502 親指活用できるエルゴノミクスキーボード使ってる 詳しくはハードウェア板のエルゴノミクスキーボードスレへ kinesis, ergodox, teckあたりかねその辺打ちやすいの
524 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 16:23:06.62 ID:oKMHGzT9.net] 集団自決したはずなのに生きていた人が死去
525 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 19:45:11 ID:e/hljxBO.net] スクレイピングの練習中でリスト内包表記とre.search()について教えてください seleniumとlxmlで取得したデータの変換がうまく行かないです url_list = ['https://www.tekitou'+re.search(r'[^0-9A-Z]dp[^0-9A-Z]([0-9A-Z]{10})([^0-9A-Z]|$)',a.get('href')).group() for a in html.cssselect('#tekitou > div > div > a:nth-child(1)')] html.cssselect('#tekitou > div > div > a:nth-child(1)').get('href')の時点で取得できてるurlは下記のような感じです。 https://www.tekitou/%〇〇%〇〇/dp/(10桁の英数字 英は半角大文字)/ref=zg_bs_10桁の数字_2桁の数字/3桁の数字-7桁の数字-7桁の数字?pd_rd_i=(10桁の英数字 英は半角大文字)&psc=1 https://www.tekitou/music/player/ref=zg_bs_10桁の数字_2桁の数字/3桁の数字-7桁の数字-7桁の数字?pd_rd_i=(10桁の英数字 英は半角大文字)&psc=1 re.search().group()する前のurlが/dp/ありのurlと/dp/なしのurlに分かれるのですが、 re.search(r'[^0-9A-Z]dp[^0-9A-Z]([0-9A-Z]{10})([^0-9A-Z]|$)',a.get('href')).group()の作業の際にエラーがでてしまうため /dp/なしのurlを削除するようにするか、 pd_rd_i=(10桁の英数字 英は半角大文字)&psc=1の(10桁の英数字 英は半角大文字)を取得するようにしたいです。 なにかうまい表記があれば教えてください
526 名前:デフォルトの名無しさん [2022/07/24(日) 19:55:36 ID:IZxLU3+7.net] 秀丸最強
527 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 20:08:14.75 ID:JBPZyDq1.net] アマゾンのURLくらいググったら色々出てきそうだけどクソ見にくい正規表現で無理せずにスラッシュでsplitでifにlengthとアスキー確認くらいでいいんじゃないの?
528 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 23:38:55 ID:GhBFnIe8.net] プログラミングって直感じゃね? 論理は直感を説明するの
529 名前:ノ用いることに有効だけど プログラム書くのにいちいち考えないっしょ 考えるのは設計とテストだけだし [] [ここ壊れてます]
530 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 23:39:26 ID:GhBFnIe8.net] それ以外にもあるかもしれんけど
531 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 23:43:50 ID:nVQ6Xq/p.net] >>509 pd_rd_iから取得 url_list = ['https://www.tekitou/dp/{0}/'.format(re.findall(r'\?pd_rd_i=(\w+)', a.get('href'))[0]) for a in html.cssselect('#tekitou > div > div > a:nth-child(1)')]
532 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 00:22:12.12 ID:kwIPZDW5.net] argparse使って、たとえば1つ目の位置引数(スイッチのようなもの)の違いで、それ以降は全く異なる引数ルールになるような場合はどのような指定をすればよいでしょうか? それともそれぞれ別のルールを定義してパースする必要がありますか? すごく簡単な例ですが、addの場合とlistの場合で指定する引数が違うようなものとか user.py -add name [--prop property] -list [--group group]
533 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 00:41:00.73 ID:YiCqNPeZ.net] >>515 1つめの位置引数を読んでから残りをargparseにかければいいんでないの? それかサブコマンド対応してるライブラリを使うか
534 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 00:57:12.30 ID:kwIPZDW5.net] >>516 なるほど。argparseで一度にまとめてできればと思ったんですが、できないってことですね…
535 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 01:00:15.74 ID:gTrk2zFk.net] >>509 例えば、Ruby なら、 URI.split で、URL のパス部分だけを抜き出して、 その文字列内に、/dp/ が含まれているかで条件分岐する require 'uri' dp_url = "example.com/%E3%81%82/dp/a" # あ = %E3%81%82 non_dp_url = "example.com/%E3%81%82/a" p dp_ary = URI.split( dp_url ) p non_dp_ary = URI.split( non_dp_url ) #=> ["http", nil, "example.com", nil, nil, "/%E3%81%82/dp/a", nil, nil, nil] #=> ["http", nil, "example.com", nil, nil, "/%E3%81%82/a", nil, nil, nil] # パス部分 p dp_ary[ 5 ] p non_dp_ary[ 5 ] #=> "/%E3%81%82/dp/a" #=> "/%E3%81%82/a" p dp_ary[ 5 ].match( '/dp/' ) p non_dp_ary[ 5 ].match( '/dp/' ) #=> <MatchData "/dp/"> : 一致する #=> nil : 一致しない
536 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 01:03:04.79 ID:oCKr0yXR.net] add_subparsersでやればいいんじゃない
537 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 09:00:21.95 ID:9Mfr9nvz.net] >>512 うう……設計がプログラミングに含まれてない……うそやろ……
538 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 09:35:32.16 ID:Tcjxae6G.net] >>509 /dp/(10桁の英数字 英は半角大文字)があれば、その(10桁の英数字 英は半角大文字)を取得 ?pd_rd_i=(10桁の英数字 英は半角大文字)があれば、その(10桁の英数字 英は半角大文字)を取得 どちらも無ければ空文字を返しエラーとはならない方法 url_list = ['https://www.tekitou/dp/{0}/'.format(re.search(r'(?<=/dp/)(\w+)|(?<=\?pd_rd_i=)(\w+)|$', a.get('href')).group()) for a in html.cssselect('#tekitou > div > div > a:nth-child(1)')]
539 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 09:43:03 ID:VgpbHR93.net] >>520 Don't think. Feeeel!!
540 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 10:25:41.85 ID:kwIPZDW5.net] >>519 add_subparsers使えばできますね! ありがとうございます。
541 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 12:52:01.49 ID:gFjrq6Gs.net] >>520 設計は人が考えたものを具現化するプロセスまでの事でプログラミングに含まれないよね プログラミングは優秀な言語と開発支援ツールに頼って直感のままに組み立てる作業 人が本来やることは自身の進化とソフトウエアのアップデート対応に強い設計する事と作業を減らす工夫と世界が前進することへの貢献
542 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 12:57:49.15 ID:gFjrq6Gs.net] 簡単そうに言ってる
543 名前:けど かなり時間かけて様々なことを知らないといけないし知らない未知のことへの挑戦もしてかなきゃいけない そーゆー志を持った人がこのスレの中に居てくれたら俺は嬉しい [] [ここ壊れてます]
544 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 13:20:20.14 ID:9Mfr9nvz.net] >>524 (それコーディングじゃない?)
545 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 14:36:18.33 ID:evu7R6rH.net] docker入れてみたけどやっぱ仮想環境だからGB単位でメモリそこそこつかうんだよな アイドル状態で8GB、vscodeで1〜2GB、dockerで2GB、Chromeで動画見ながら作業したら2〜3GBぐらい使うからギリギリで困る やっぱメモリ32GBは入れないとだめか
546 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 15:07:03.89 ID:fmU0SO/o.net] >>526 (ちんこかゆい)
547 名前:デフォルトの名無しさん [2022/07/25(月) 16:14:04.12 ID:GOtCNvAE.net] https://www.youtube.com/watch?v=B5tSZr_QqXw
548 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 19:47:19 ID:GWKUHzSt.net] >>514 >>521 ありがとうございます 行けました!
549 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 19:49:50 ID:GWKUHzSt.net] seleniumで複数ブラウザ立てて並列処理してみたいけど難しそう scrapyで楽天からスクレイピングしてみたら非同期処理?のせいで早すぎて速攻アク禁くらった
550 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 20:11:37.41 ID:NlibKZuA.net] >>531 プロファイルを別にすればいけるよ 高速化目的で同じサイトに並列アクセスするのはやめた方がいい
551 名前:デフォルトの名無しさん [2022/07/25(月) 20:20:18.30 ID:mO6SEFWJ.net] 流石にもういきなり逮捕はされないと思うけど、librahackみたいなことが起こらないとは言えないから怖いよねー。 アクセスログで見ても、ギリギリ人間がアクセスしてるって言い訳できるぐらいの間隔を乱数で作ってsleepしてるわ。
552 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 21:11:33.84 ID:Tcjxae6G.net] >>511 フハハハハハハハハ、>>521 を刮目せよ! 賞賛の声(>>530 )を聞け! 正規表現はクソ見にくいわけはなく、むしろ簡潔であり完璧であり完全無欠なのである 正規表現にできないことはなく、正規表現に代わるものはなし 正規表現はまさに人類の叡智なのである
553 名前:デフォルトの名無しさん [2022/07/25(月) 21:14:45 ID:GF1rw+EH.net] イヤイヤイヤイヤ、普通にクソ見にくいでしょ。 他人が理解できないものを書くほうが偉いって風潮何とかならんの?
554 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 21:44:24 ID:Tcjxae6G.net] >>535 偉いとかじゃなくて便利なんだよ >>521 の正規表現は別に難しい部類じゃない、\wは単語文字という意味で英数字も含まれる \w+で単語文字が1個以上という意味になる、その前の(?<=...)は後読みアサーションで これにマッチした後の\w+をサーチしているわけで基本というか、ちょっと勉強すれば、というか 正規表現の仕様に例が載ってるから、例みたらすぐ理解できるよ https://docs.python.org/ja/3/library/re.html 自分的には最後の|$が工夫した点で、コレでサーチできなかった場合に空文字を取得させることができる 正規表現使わずにスラッシュでsplitでifにlengthとアスキー確認なんかの方が見にくいだろうし 面倒すぎてやっとれんよ
555 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 22:07:08.94 ID:5m9dN2FM.net] (超初心者用)
556 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 22:50:49 ID:Tcjxae6G.net] >>529 最新動画の@cacheがマジ感動した、最後のフィボナッチの高速化がマジ良かった マジでマジでマジだから
557 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 23:03:45 ID:gTrk2zFk.net] WSL2, Docker は、8GB メモリじゃキツイ 16〜3
558 名前:2GBは欲しい [] [ここ壊れてます]
559 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 23:56:34.13 ID:XTViXxR/.net] >>536 スラッシュでsplitでアスキー確認って [i for i in ○.split('/') if len(i) == 10 and i.isascii()] で終わりでしょ それ自体に難しさも見にくさも感じないが
560 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 01:23:31.22 ID:HcfNtCqI.net] 正規表現学びたいけど複雑すぎて訳分かんねえよ なんか練習できるところないの? ゲームっぽく遊べたりする所どっかあるだろ?
561 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 03:23:25.62 ID:fUa59wf/.net] ターミナル
562 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 08:00:48.09 ID:hxnsYVU0.net] >>540 これはアカンでしょ、ifってそんなけ? /dp/の判定が無いし /dp/が無かった場合にpd_rd_iから取得する処理が無いし これでいいなら正規表現ならこうじゃわいな re.search(r'\w{10}|$', ○).group()
563 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 08:23:18 ID:hxnsYVU0.net] findall使った方がいいか、こっちの方が>>540 と処理結果同じだわ re.findall(r'\w{10}', ○)
564 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 09:42:11.06 ID:28W+mdVQ.net] 10桁英数のチェックが必要ないならこれでいけるんじゃね ([i[:10] for i in url.split("/dp/") + url.split("pd_rd_i=") if not i.startswith("https:")] + [""])[0] チェック必要なら1行ではきびしいか
565 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 10:10:32.06 ID:2F7nQnXP.net] pd_rd_iは必須じゃないからなあ
566 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 11:04:25.18 ID:hxnsYVU0.net] >>545 を抽象化+10桁チェック+isasciiチェック追加(10桁チェックは不要だとは思うけども・・) [i[:10] for i in url.split("/dp/")[1:] or url.split("pd_rd_i=")[1:] if len(i[:10])==10 and i[:10].isascii()] 気づいたんですけどこのisascii()でのチェックはasciiのチェックであって、ascii文字のチェックじゃないから 英数字だけじゃなくて/やtabやらもTrue判定しちゃいますからダメですね ちなみに>>521 も10桁チェックは入っていないのですが、入れた場合は以下のようになりまして その場合もやはり分かりやすい、可読性が良い、簡潔、何をしているかすぐ分かる 正規表現スキになっちゃったって方はgoodボタン押してください^^ re.search(r'(?<=/dp/)(\w{10})|(?<=\?pd_rd_i=)(\w{10})|$', url).group()
567 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 11:06:35.56 ID:Uy4U9BVa.net] goodボタンってどこにあるの?
568 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 11:37:39.45 ID:PhJ4pIjK.net] 精神病になるとそういうボタンが見えるらしいよ
569 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 12:16:00.10 ID:k5BnME6W.net] こいつ上の方にいた日記帳キチガイだな
570 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 12:21:32.78 ID:r5zklFsb.net] ハッタツしょう害なんじゃねえの
571 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 12:37:44 ID:28W+mdVQ.net] >>547 英数字チェック完全版+セイウチ [x for i in url.split("/dp/")[1:] or url.split("pd_rd_i=")[1:] if len(x:=i[:10])==10 and x.isascii() and x.isalnum()]
572 名前:デフォルトの名無しさん [2022/07/26(火) 12:44:17 ID:IrL7txwd.net] ・フリーランスに立ちはだかる「常駐」の壁。慣例を打ち壊し、 “テレワーク”案件3割→8割へと成長を遂げた「クラウドテック」の軌跡 ・リモートワーク求人専門サイト「プロリモート」がリニューアルオープン、 業務委託契約の求職者と企業をマッチング ・1/3以上が採用につながる高マッチング率、リモートワーク×エンジニア・デザイナー専門の 人材紹介サービス「ReworkerAgent」正式リリース場所からも時間からも自由な働き方を実現! ・『ReWorks(リワークス)』リモートワーク特化型
573 名前:]職サイトとして 3月5日 リニューアル ・副業・兼業マッチングサービス「クラウドリンクス」登録者数2万人突破 中小企業で進む副業人材の採用、96%が継続採用を希望 ・フリーランスが活用できる「最大1,000〜3,000万円・補助率50%〜75%」の 『ものづくり・商業・サービス補助金』とは?概要や条件を解説 ・茨城県日立市、県外からの「テレワーク移住者」に最大151万円の助成金 ・長野市、市内に移転・事業所設置し、移住することで最大550万円の支援金を支給 [] [ここ壊れてます]
574 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 12:59:25.55 ID:hxnsYVU0.net] >>552 すばらしい! これ以上は良くなりそうにないね こうして見るとやはり正規表現の方がいい、仕様変更にもすぐ対応できるし
575 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 13:07:45.08 ID:563vGs1S.net] ではこの話はこれで終わりです
576 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 13:15:56.15 ID:hxnsYVU0.net] へ? ここで>>552 が「実行速度では負けてないもんね!」つって速度勝負をしかけてきて それならre.compileじゃぁあああって応戦してからの、やっぱ「速度じゃreは不利じゃわい」 つって、「いやいや、やはり正規表現さんの勝ちですわ、メンテナンス性では完敗ですもん」 ってお互いが歩み寄ってからの熱い握手で終幕やろうが! まあええわ次の話題もってこいや
577 名前:デフォルトの名無しさん [2022/07/26(火) 13:30:39.77 ID:P5K5X/wN.net] ID:t+dBeaSp ID:lkZCuVJ2 ID:Tcjxae6G ID:hxnsYVU0
578 名前:デフォルトの名無しさん [2022/07/26(火) 16:43:34.40 ID:gc9s0ohk.net] 以上 今日の自演でした
579 名前:デフォルトの名無しさん [2022/07/26(火) 17:59:35.79 ID:gc9s0ohk.net] >>492-494 秋葉で暴走した加藤は死刑完了したそうだ
580 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 18:59:47.50 ID:aND0EYYo.net] python使いやすくていいわーって思ってたけど json使ったら面倒だなと思った… これ自分で辞書にしたり戻したりしないといけないわけ? pickleちゃんはバイナリになるからやだ
581 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 19:06:35.62 ID:QBs9x9BG.net] >>559 あの事件で大学の同級生死んじゃったよー……。執行まで長かったなー
582 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 19:40:58.02 ID:Uy4U9BVa.net] まじかよ 東大近いもんな 優秀な人を亡くすのは実に惜しい
583 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 19:44:17.06 ID:QBs9x9BG.net] >>562 は?東大生死んでないが?
584 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 19:44:58.50 ID:Sr1olQPp.net] while True: わーいPython便利だなー あれ?このXを扱うのってめんどくさくね? 他の言語にしよっと X以外がめんどくさすぎる!
585 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 19:57:04.85 ID:hxnsYVU0.net] >>560 じゃあyamlちゃんは? https://www.youtube.com/watch?v=rpbq6vXcNbM
586 名前:デフォルトの名無しさん [2022/07/26(火) 20:47:35.71 ID:GQvz79KS.net] Jsonって殺人鬼だったのに。
587 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 21:16:10.07 ID:OUnIdkcH.net] 全損
588 名前:デフォルトの名無しさん [2022/07/26(火) 22:30:48.06 ID:Rgm2Z23r.net] >>560 これってどういうこと?Pythonのオブジェクトに変換せずに何かをやりたいっていうこと?
589 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 23:43:27.38 ID:wQrOnGuH.net] yamlの仕様を学ばないままcomposeやk8sを使ってる
590 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 03:54:50.01 ID:PQGmIH2y.net] パスの\を/にかえなきゃいけないのが面倒すぎるんだがなんか方法ないのか? \\にかえるのもめんどう で調べたらRつけるだけでいいらしい…… だったら最初から\読み込めるようにしろよ!
591 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 09:00:44
] [ここ壊れてます]
592 名前:.94 ID:pyuUgR41.net mailto: >>560 jsとpythonでしかjson使ったことないけど、どちらも使い勝手は変わらんと思うが。 [] [ここ壊れてます]
593 名前:デフォルトの名無しさん [2022/07/27(水) 10:05:16 ID:elZrgoJK.net] >>560 があほすぎなすれ
594 名前:デフォルトの名無しさん [2022/07/27(水) 13:08:32.87 ID:B7vnAx8k.net] >>570 その文句は、エスケープ文字を勉強したほうしたほうがいい あといちいち手動でreplaceするよりPathlib使った方がかかいもよ https://pystyle.info/python-pathlib/
595 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 13:27:46.89 ID:aU47T/gU.net] パースするだけなのにそんなに面倒か?
596 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 13:28:56 ID:aU47T/gU.net] すまん、jsonの話な
597 名前:デフォルトの名無しさん [2022/07/27(水) 15:26:57.56 ID:B7vnAx8k.net] PythonでJSONの取り扱いは、JS以外の他の言語と比べたらめちゃくちゃ楽な方だと思うけどな。ほとんどJSと変わらない。 CはともかくC++だって全然簡単じゃないからねえ。CだとPythonの5倍、C++でも2.5倍ぐらいの記述量になる気がする。
598 名前:デフォルトの名無しさん [2022/07/27(水) 16:26:23.72 ID:G6wuTkcd.net] 何年前の話よ https://github.com/nlohmann/json
599 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 16:52:22.09 ID:aU47T/gU.net] jsonはpythonのビルトインパーサーでなんとかなるな 使えないhtmlパーサーとは大違い
600 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 19:30:05 ID:xJ8anoa4.net] python に限った話じゃないけどなぜか html パーサーっこれって言う奴ないよね
601 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 20:20:11.22 ID:aU47T/gU.net] >>579 htmlが、sgml/xmlを簡略化した派生で 文法があまりに自由でゆるゆるだったから、 もともとデータ処理には向いていなかったということなんだと思うよ
602 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 20:28:14.33 ID:xJ8anoa4.net] >>580 そうは言っても html で公開されてるデータもあるんだからねぇ
603 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 20:42:25.68 ID:aU47T/gU.net] >>581 現状では、外部モジュールに頼るか、力づくでなんとかするかしかないものねw 最近はhtmlに組み込まれたjsonデータ形式(json-ld)が多くなって、 データを探るくらいならあまり悩まずにすむので助かってるわ
604 名前:デフォルトの名無しさん [2022/07/27(水) 22:42:50.60 ID:+MHO4Y86.net] 君ら二人が思ってるほどそういう需要がないんじゃない 結局やりたいのはスクレイピングでしょ
605 名前:デフォルトの名無しさん [2022/07/27(水) 23:00:58.07 ID:+MHO4Y86.net] スクレイピングできるようなライブラリを標準ライブラリに組み込んで欲しくはないよね html.parseは確かにシンプルだとは思うけど、どこまでってなると難しい html自体がかなり緩いから、サービス依存とか流行に依存してしまうんだよね まぁ、Beautiful Soupもあるしいいじゃないすか
606 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 00:22:28 ID:nqLen+JC.net] yieldって初めて見た ジェネレーター関数?を作るときに使うのか 正直使い道がわからんな ジェネレーターとかイテレーターとかはだいたいわかるけど
607 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 05:13:59.70 ID:mvZe9xm4.net] >>585 > ジェネレーターとかイテレーターとかはだいたいわかるけど わかってたらyieldの使いどころがわからんとかないと思うが...
608 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 05:40:55.75 ID:8YG1K1uV.net] >>586 こういうやつって結局何聞かれても説明できないやつだよな
609 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 05:45:38.18 ID:yBjc1Rgi.net] 国債取引してればyieldなんてしょっちゅう見るけどな
610 名前:デフォルトの名無しさん [2022/07/28(木) 16:20:58.93 ID:m8z1CQHY.net] 教えてください。 Wordpressに記事投稿する際に閲覧パスワードをつけたい場合 ‘status’=‘publish’, ‘contents’=‘記事本文
611 名前:’,, ‘password’=‘閲覧パスワード, ‘tag’=1 …. と指定しています。 投稿自体は成功しているのですがパスワード付きの記事になりません。 どなたか解決策をお願いします。 [] [ここ壊れてます]
612 名前:デフォルトの名無しさん [2022/07/28(木) 20:16:12.08 ID:Hv8PyQaz.net] >>585 馬鹿には無理
613 名前:デフォルトの名無しさん [2022/07/28(木) 22:51:57.42 ID:9hZjKw0t.net] >>585 リスト返すよりよりジェネレータ―の方がコスト低いからでは解決しない質問?
614 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 22:58:58.42 ID:cRsx7yDk.net] リスト作成のコストと比べても意味ないやろ yield使わずにジェネレーターを作ればありがたみが分かる
615 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 00:22:32.77 ID:fEBZH37g.net] リストをfilter()使ってlambda式ではなく外部関数を呼び出して抽出する場合、外部関数に追加の引数を渡すことってできますか? リストの要素に加えてさらに判定用の引数を与えて外部関数で処理させたいです
616 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 01:28:35.66 ID:8gcFFgPp.net] >>593 部分適用した関数を用意すればできるよ partialとか関数を返す関数を書くとかで リストを[(要素, 追加引数)]の形にzipするのでもてきる ただlambda使って外部関数に引数渡すのが一番よく使われてる印象
617 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 02:05:51.08 ID:sW6reep3.net] >>593 functools. partial
618 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 02:28:02.24 ID:fEBZH37g.net] >>594 ,595 functools.partialもlmbdaもできました。ありがとうございます。 確かにlambdaのほうがすぐに書けるのと、パッと見て分かりやすいかもですね
619 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 16:36:15.82 ID:0LOpWdsN.net] ある変数に対してifまたはelseで値を代入するとき「未定義の可能性があります」という警告が出てしまいます。 この警告は無視して構わないのでしょうか? 実際はifかelseが必ず実行されるため、未定義になることは無いと思います。
620 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 18:15:50.48 ID:APedJzV4.net] 両方でちゃんと定義があれば問題ないんじゃないの
621 名前:デフォルトの名無しさん [2022/07/29(金) 18:30:32.97 ID:XaB7Y5c2.net] >>597 その部分のコード書いてみ たぶん未定義になるパターンがある
622 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 19:07:07.88 ID:GzwVbssN.net] ifとelse両方で定義してあれば未定義にはならんと思うけどな 定義してないから警告出るのかね
623 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 19:10:09.40 ID:WG/TpH2M.net] >>597 無視しない方がいい
624 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 19:58:02.11 ID:47SIIXKm.net] て言うか未定義の「可能性」なんて普通の処理系ではでないだろ なんかツール使ってるならそのツールの名前書きなよ
625 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 20:45:46 ID:IOBifLpO.net] どこかに未定義ルート有るんだ そこらへんを探すのが楽しい
626 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 21:51:50.81 ID:a1Tgek7B.net] Ruby では、条件分岐で初期化されるはずの変数が、 初期化されなかった場合に、nil・未定義になる if false n = 1 end p n #=> nil
627 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 23:03:00.11 ID:jDexz6tX.net] 翔泳社のスラスラわかるPythonを読み終えて、 次にソフトバンクのPython完全入門を買おうか迷ってるんですが、 どなたか読んだ方いましたら感想を教えて下さい よろしくお願いします
628 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 02:27:49.30 ID:z4LSWTQO.net] 入門書は1冊で充分なのでは?
629 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 02:27:58.30 ID:z4LSWTQO.net] 入門書は1冊で充分なのでは?
630 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 02:34:45.44 ID:f1hyBgWY.net] レスは1回で充分なのでは?
631 名前:デフォルトの名無しさん [2022/07/30(土) 09:23:55.07 ID:azT7AVAA.net] webアプリ作って内部サーバーから使ってみよう、みたいな本読んでるんだが コマンドプロンプトに python -m http.server
632 名前:--cgi 8080 と書いてwebサーバー立ち上げて ブラウザで htttp://localhost:8080 開くまではできたんだ ここから htttp://localhost:8080/開きたいwebアプリ.py へ移動しても、中身がテキストとして表示されるだけでwebアプリとしては機能しない これはなにか手順間違えてるかな? pythonコード自体は以下 https://techiedelight.com/compiler/?MN5F [] [ここ壊れてます]
633 名前:デフォルトの名無しさん [2022/07/30(土) 09:27:36.20 ID:paa5jUiA.net] ●未定義ルートがある ●typoを見落とし
634 名前:デフォルトの名無しさん [2022/07/30(土) 09:28:23.25 ID:paa5jUiA.net] >>606-607 レスは一回で充分
635 名前:デフォルトの名無しさん [2022/07/30(土) 09:29:27.96 ID:paa5jUiA.net] >>609 flask使え
636 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 13:25:48 ID:OlgNXvPr.net] 呼ばれたクラスのメソッド実行やインスタンスの参照はできますでしょうか? RubyのBinding_of_caller gemのようなことをやりたいです。
637 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 15:23:09.66 ID:8gKCOMRQ.net] >>609 例えば、Ruby では、 コンソールで、ウェブサーバー・WEBrick を起動する ruby -run -e httpd . -p 8080 ブラウザで、 localhost:8080/a.html とすると、HTML が表示される 例えば、これが、 localhost:8080/a.csv a.csv, a.txt など、ブラウザが解釈できない拡張子の場合は、ダウンロードされる
638 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 15:41:57.89 ID:cxvuT0Ap.net] >>609 cgi_directoriesで定義されてるディレクトリの中にあるソースコードじゃないとじっこうできないかも >>614 csvじゃなくてcgiの話な、チンカス
639 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 15:55:32 ID:lN6AqJ/F.net] >>609 /cgi-binに配置して localhost:8080/cgi-bin/xxx.pyでアクセス
640 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 15:56:01 ID:lN6AqJ/F.net] あ、被ったね
641 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 16:15:20.28 ID:t64/Q8Lh.net] 14分差でかぶるとかすごいな
642 名前:605 mailto:sage [2022/07/30(土) 17:33:25 ID:opcLftHA.net] レスありがとうございます 実は最初にソフトバンクの本を買おうと思ったのですが、アマゾンレビューを見たら 少しわかりにくい箇所もある、という感想があったのでワンクッション入れました 今となっては独習Pythonなどの中級書に進んだ方がいいですか?
643 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 17:49:27 ID:6SJJiflx.net] 手段が目的になってるパターン
644 名前:デフォルトの名無しさん [2022/07/30(土) 19:25:46.15 ID:EI1U6qjF.net] 民明書房の「結局あんたはpythonで何がしたいの?」とか読むといい
645 名前:605 mailto:sage [2022/07/31(日) 08:22:18.53 ID:V2xTXw/0.net] 辛口ですね
646 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 08:43:12.47 ID:bF6WKikK.net] bool([])がFalseなのに all([])がTrueになる理屈を教えてください
647 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 08:56:05 ID:IhfjCb0y.net] イテラブルの要素の探索中にFalseでリターンされなければTrueをリターンされるようにallが実装されてるから https://github.com/satwikkansal/wtfpython#-all-true-ation- 設計思想的な話しなら分からん
648 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 09:01:11 ID:qkw0CgkT.net] 数学的にそれが自然 Wikipediaの論理包含とかVacuous truthを読め
649 名前:デフォルトの名無しさん [2022/07/31(日) 09:35:16.42 ID:qvc5fIgv.net] test
650 名前:デフォルトの名無しさん [2022/07/31(日) 09:36:51.24 ID:qvc5fIgv.net] r = True for e in S: r = r and e return r S が空の場合,for文の中は1度も実行されない. 返されるのは,rの初期値であるTrue
651 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 09:37:12.57 ID:bF6WKikK.net] >>624 理屈はわかりました その実装にした人を小一時間問い詰めたい気分でいっぱいです all([])の結果にTrueを求める
652 名前:ーザーが世の中に一人でもいるのでしょうか… >>625 数学はよくわからんのですごめんなさい [] [ここ壊れてます]
653 名前:デフォルトの名無しさん [2022/07/31(日) 09:39:03.02 ID:qvc5fIgv.net] 似たような例として,Sの要素の和を計算することを考える. r = 0 for e in S: r = r + e return r Sが空の場合,rの初期値である0が返される.
654 名前:デフォルトの名無しさん [2022/07/31(日) 09:45:32.68 ID:qvc5fIgv.net] 似たような例として,Sの要素の積を計算することを考える. r = 1 for e in S: r = r * e return r S が空の場合,返されるのはrの初期値である1
655 名前:デフォルトの名無しさん [2022/07/31(日) 09:48:34.65 ID:qvc5fIgv.net] sum, prodという関数がPythonにあるのならば, sum([]) == 0 とするのが自然だし, prod([]) == 1 とするのが自然. prodのほうは不自然に感じる人がいるかもしれないが,sumが自然なのと同じ理由でprodも自然.
656 名前:デフォルトの名無しさん [2022/07/31(日) 10:26:40.61 ID:qvc5fIgv.net] 0! := 1と定義するのも同じ理由.
657 名前:デフォルトの名無しさん [2022/07/31(日) 12:12:56.03 ID:eQtf7hMi.net] anyとかallは評価できるものがある場合にのみ使うべきだと思うんだ。空打ちしたら「何だこりゃ」ってなる つまり all([]) ではなくall([''])と使いたい。これなら正しく(評価がなされて)falseが返る つかall([]) ってどういう状況よ
658 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 12:23:51.14 ID:1z9jykhy.net] リテラルを渡すわけじゃないだろ
659 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 12:55:33.13 ID:VBdofYjo.net] 論理包含、Vacuous truthを読めと言ってる人は理由を知っているだけで理解できていない
660 名前:デフォルトの名無しさん [2022/07/31(日) 13:14:04.77 ID:aNbLKyix.net] >>635 言葉足らずは役立たず
661 名前:デフォルトの名無しさん [2022/07/31(日) 13:25:03.81 ID:qvc5fIgv.net] any([]) == False all([]) == True こうだと何が問題になるのかが分からない.
662 名前:デフォルトの名無しさん [2022/07/31(日) 13:32:01.26 ID:qvc5fIgv.net] all(S)は∀x(x∈S ⇒ x==True)が真であるときに,Trueになり,偽であるとき,Falseになる. Sが空なら∀x(x∈S)は偽だから,∀x(x∈S ⇒ x==True)は真である. any(S)は∃x(x∈S and x==True)が真であるときに,Trueになり,偽であるとき,Falseになる. Sが空なら∃x(x∈S)は偽だから,∃x(x∈S and x==True)は偽である.
663 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 14:16:45.61 ID:WKv/EkLm.net] お勉強スレで403がでる
664 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 14:23:06.73 ID:VBdofYjo.net] allとanyのあるある言いたい TrueとFalseのあるある早く言いたい
665 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 15:56:07.05 ID:KzJjN0dA.net] 聞いてねえ黙っとけマザコン男
666 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 16:39:23.51 ID:6uU1oN4W.net] 突然マザコンという単語が出てきた 普通の人はすぐに思い浮かぶ単語ではない つまり、自分がそうだとよく言われたから頭に浮かびやすいと自己紹介しているわけだ
667 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 17:10:58.62 ID:a1qLKfui.net] vscでインタープリターが設定出来ずエラーになる なんでぇ…検索しても出てこない…
668 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 17:19:39.16 ID:WKv/EkLm.net] vscスレあるからそっちで聞いたら?
669 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 17:40:03.84 ID:VBdofYjo.net] >>623 の疑問にバッチリ明快にお答えしましょう all([1,2,3]) -> True all([1,2,3]+[]) -> True all([1,2,3]) and all([]) -> True よって、all([]) -> True 同様にanyの場合は any([1,2,3]) -> True any([]+[1,2,3]) -> True any([]) or any([1,2,3]) -> True よって、any([]) -> False Vacuous truthとか言われても分かんないでしょ、wiki見ても分かんない >>638 の取って付けた数式見ても分かんない、でもコードで書くとあら不思議一目瞭然
670 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 18:21:17.32 ID:vZudoVRF.net] 全く疑問に答えてなくて草生えるwwwww
671 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 18:30:32.80 ID:IhfjCb0y.net] >>645 空リストに分解するのはいいね ただanyはFalse側で示さないといけないな
672 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 18:42:16.99 ID:1IXOln4s.net] 1. [True, True] 2. [True, False] 3. [False, False] 4. [] この4つから 1種類だけ処理したい場合と2種類だけ処理したい場合を all, any, notで各listにつき1回走査するだけで書けるか
673 名前:どうか もしall([])がFalseだとしたらどうか [] [ここ壊れてます]
674 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 19:03:02.60 ID:VBdofYjo.net] >>647 配列例を一緒にしようとしたんだけど、こっちの方が分かりやすいか any([0,0,0]) -> False any([0,0,0]+[]) -> False any([0,0,0]) or any([]) -> False よって、any([]) -> False
675 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 19:10:05.63 ID:SPHl3eVE.net] こう決めてるからといって準備してあるものから答えを持ってくるのではない あくまでデジタル計算の答えがそうなっているだけ それをわかってないみたいね
676 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 20:42:04.88 ID:nQONknSe.net] ID:VBdofYjo ルビーガイジと別のベクトルで頭おかしいね
677 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 22:11:23.00 ID:NZWDJWM/.net] 単なる慣習でしかなくて合理的な理由はない プログラミングではall([])がFalseだったほうが楽になるケースの方が圧倒的に多い 残念ながらempty listだけ別途チェックするのが無難
678 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 22:46:03.58 ID:MJo3DzqX.net] all()は論理積のロジックなので初期値True any()は論理和のロジックなので初期値False そうしないと成り立たない
679 名前:デフォルトの名無しさん [2022/07/31(日) 23:10:20.11 ID:Q3Sy7AQw.net] ドキュメントのallの説明で、(or if the iterable is empty)が加えられたのは2009年か2010年ぐらいから
680 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 23:18:11.45 ID:CM+nxrXh.net] >>653 それ使う側の視点じゃなくて 内部実装上の都合でしょ?
681 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 23:50:52.02 ID:MJo3DzqX.net] >>655 これ以上に自然な定義はあるのか? 引数が空の時に余計な評価を挟む方がよっぽど不自然だと思うが
682 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 01:15:16.60 ID:NO37bZGb.net] >>656 実装の都合上は自然かもね 使う側の視点からは全くもって自然じゃないよ
683 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 01:55:03.33 ID:wljefKG6.net] >>657 all()とany()の動作を文章にして書いてみたら分かる 関数の仕様自体が気に入らないなら自分で書くしかない
684 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 02:13:06.07 ID:4h+jHRsn.net] >>652 > プログラミングではall([])がFalseだったほうが楽になるケースの方が圧倒的に多い 具体的にコードで示して欲しい
685 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 04:29:53.53 ID:rSGUMJSi.net] まあ5×0=0で5^0=1なのも実装した人にとって自然なだけだし言いたいことはわかる
686 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 09:45:47 ID:hJhRRxUQ.net] やっとバカにも理解できたようですが、>>660 を見る限り理解できていませんw 残念
687 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 16:21:23.81 ID:Vk1tQ6YT.net] Eric Matthesの「python crash course」(和名:最短コースでゼロからしっかり学ぶpython入門)を完了して次にデータ解析をやりたいんです そこで オレイリーの「pythonによるデータ分析入門」を読んだのですがまだ私にはレベルが高いようです 橋渡しになるレベルの本はありませんでしょうか?
688 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 17:14:07.64 ID:WOhHaybL.net] >>662 『Pythonによるあたらしいデータ分析の教科書』辺りで Jupyter Notebookとか分析の基本覚えてから 『Python実践データ分析100本ノック』でデータの前処理とかを本格的に勉強してから オライリー本読んだ方がええかもね
689 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 18:05:15.09 ID:BgE8bCyg.net] 型ヒント(num: int = 1など)って普通に使われてますか? 私も常に使った方がいいですか?
690 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 20:36:49.60 ID:Vk1tQ6YT.net] >>663 ありがとうございます ポチりました
691 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 23:46:48.65 ID:It4OEKpF.net] 使われてると思うし使えた方がいい PyCharmとかVSCodeで書いてると型を判断してくれるので書きやすくなるしミスも判明しやすくなる
692 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 00:20:43.20 ID:R2oSGNsV.net] >>653 配列の全ての要素が5以上かをチェックするcheck関数を作りました def check(lst): return all(i >= 5 for i in lst) 空リストが入力された場合Falseを返したいのですが 論理積のロジックなのでFalseを返すと成り立たなくなります 空リストのチェックはどうすれば良いでしょうか
693 名前:デフォルトの名無しさん [2022/08/02(火) 03:57:40.09 ID:AJvhpMFc.net] def check(l): __if l: ____return all(map(lambda i: i>5, l)) __else: ____return False すべて5以上か みたいな関数名にして使う checkはダメ。論外
694 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 04:03:59.45 ID:KlfR+zxP.net] >>667 return bool(lst) and all(i >= 5 for i in lst)
695 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 07:10:05.89 ID:R2oSGNsV.net] >>668 >>669 これはいけません 論理積のロジックなので空リストが入力された場合はTrueを返す必要があります Vacuous truthを知らないのですか? 論外です
696 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 07:19:05 ID:Qu9LGAtZ.net] 空listはfalseなのでbool()は不要 もしくは lst or [0] とすれば空listチェック不要
697 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 08:36:47.08 ID:KlfR+zxP.net] >>670 ああそういうことか 667の質問の意味が今わかった 変な質問だなと思いながら適当に答えちゃった
698 名前:デフォルトの名無しさん [2022/08/02(火) 08:45:25.83 ID:UYHD5f/y.net] >>670 空のリストでtrue返したいならall([i for i in lst if i>5])で返るが
699 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 08:56:18.05 ID:KlfR+zxP.net] >>671 bool()は不要のほうは、戻りが True,False,[]の3種類になるから個人的にいや。 lst or [0]のほうは、i >= 5 とかの場合使えなくなるからよろしくないかと。
700 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 08:57:08.71 ID:KlfR+zxP.net] >>674 訂正 lst or [0]のほうは、i >= 0 とかの場合使えなくなるからよろしくないかと。
701 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 12:52:45.59 ID:7OOUBMB7.net] >>668 配列じゃなくiterableだと詰むよ
702 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 13:36:46.22 ID:R2oSGNsV.net] >>672 そうなんッス >>667 のcheck関数は完璧ッス 論理積のロジックでVacuous truthで数学的に自然なんッス check(a+b+c) と check(a) and check(b) and check(c) が等価になると理解できるッス でも空リストは弾きたいじゃないッスか しかし空リストの場合にFalseで返すと数学的に不完全になるッス つまり空リストを弾きたいならcheck関数外の前後どちらかで引数のチェック処理が必要というわけッス メッチャ不便じゃないッスか これが>>659 の回答ッス メッチャ不便なんで数学的に不完全な>>668-669 のようなコードになるッス これが自然ッス でもその場合 check(a) and check(b) and check(c) みたいな使い方はできなくなるッスよね 空リストが来たらアウトッスから つーわけでどっちもOKな解決策はあるのかなという質問ッス 同じようなcheck関数を書く場合に空リストの扱いはどうするのかって話ッス もしそれが>>668-669 のようなコードになるのならオイラの勝ちということッス もちろんall([])がTrueになる理由は理解してるッスよ 5×0=0で5^0=1ってことッスもんね 分かってるッス そこは大丈夫ッス
703 名前:デフォルトの名無しさん [2022/08/02(火) 13:57:06 ID:AJvhpMFc.net] >>676 要件は配列の要素をチェックする関数の作成だけど。
704 名前:デフォルトの名無しさん [2022/08/02(火) 14:10:48 ID:3RqJykXJ.net] >>677 そもそも数学的な計算がしたいとき、空のリストが来たら不自然になる って そりゃ空のリストは数学的じゃねーんだから不自然になって当然だろ 空のリストとかいう非数学を数学化する関数を実装しろよ。それはお前の好きにしろ
705 名前:デフォルトの名無しさん [2022/08/02(火) 14:25:29.34 ID:UYHD5f/y.net] そういえばBytesIOがイテレーターなのはなんでなの? 配列じゃあかんのか?
706 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 14:44:44.43 ID:PAwGL3nC.net] >>677 全然意味わからん 空リストを弾きたいならcheckの中で例外発生させるなりすればいいだけじゃねーの?
707 名前:デフォルトの名無しさん [2022/08/02(火) 14:58:23.12 ID:4vAniN45.net] >>681 こいつはネチョネチョ言葉遊びしたいだけのゴミ野郎だから無視でいいよ 上の方でも暴れとる。rubyキチガイと同列の泥人形
708 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 15:02:37.40 ID:3/XF33uC.net] どうせ発生しないような例外的なやつの対応ばかり考えている無能
709 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 15:21:43.17 ID:GXJqSimc.net] >>677 100%同意する
710 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 15:24:08.55 ID:uvL1JwEu.net] >>678 all([]) == Trueはデメリットが大きい例として>>667 が書かれてるという文脈を理解してから書いてね
711 名前:デフォルトの名無しさん [2022/08/02(火) 15:36:16.40 ID:4vAniN45.net] >>684-685 バレてるぞ恥晒し
712 名前:デフォルトの名無しさん [2022/08/02(火) 15:44:30.79 ID:aYPyq7OS.net] all([]) == True any([]) == False であると困る例を教えてください.
713 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 17:37:12.67 ID:PAwGL3nC.net] >>685 それ all([ ]) = False でも何も解決しないだろw True / False しか返せないのに空リストかどうかの情報欲しいなら別の方法で返すしかない
714 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 19:22:29 ID:R2oSGNsV.net] 実は空リストの場合Noneを返すという手を考えたッスけど 数学的完全性を保つことはできなかったッス しかしたった今思いついたッス 空リストの場合は2を返せばいいッス 2はTrueッス 我ながら自分の才能が恐ろしいッス
715 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 19:46:15 ID:R2oSGNsV.net] >>689 訂正するッス 2じゃなくて1.0を返せばいいッス 空リストの場合は1.0を返すッス 1.0なら check(a+b+c) == (check(a) and check(b) and check(c)) が成立するッス
716 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 20:00:27.12 ID:rqWYIp9A.net] それで最初に言ってた > 空リストが入力された場合Falseを返したいのですが これは満たせるの?
717 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 20:07:03.39 ID:R2oSGNsV.net] >>691 ・・・満たせないッスね 判別ができるようになるだけで その判別方法もrepr()=='True'とかで煩雑 だめッスね
718 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 20:21:40.29 ID:KlfR+zxP.net] >>690 1.0が返ってくると if check(lst) == 1.0: と if check(lst) == True: のどちらもTrueになるけど if type(check(lst)) == float: で判定するの? 副作用は少ないけど美しくない 1.0じゃなくて1のほうがさらに副作用なくていいとおもうけどね
719 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 20:44:31.40 ID:H9/akC1Y.net] 元になってる数学の考え方自体の限界 使う側がバグらないよう注意するしかない python特有の問題じゃないのが救い
720 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 20:48:40.69 ID:R2oSGNsV.net] >>693 美しくないッスね そもそも空リストチェックは言うほど不便じゃないッスよね if lst and check(lst): ってするだけッスもんね オイラの中で結論が出たッス やはりallにならってcheck関数も空リストのときはTrueを返すべきッス 必要に応じて空リストチェック( lst and check(lst) )をする こんだけッス シンプルで美しいッス ビギナーズトラップかもしれないけどそんなの知らないッス
721 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 21:07:06 ID:rqWYIp9A.net] 初心者すぎて、これでいいのか分からんけど boolとandあたりをオーバーライドしたクラスを返却するとか? 空リストかどうかの情報まで持たせたクラス って、最初の仕様を捻じ曲げていいのか・・・
722 名前:デフォルトの名無しさん [2022/08/02(火) 22:23:57.41 ID:XEhMcRRQ.net] 超初心者なんですが、 社内LANの共有ストレージ内のExcelファイルを操作して作業自動化をしたいと思っています。 社用PCへのインストール申請が面倒なのでGoogle Colabでやってみたら、ストレージ内のファイルが読めないということで渋々インストール申請しようとしているところです。 JupyterLab Desktopで社内LANの共有ストレージのファイルは操作できますか? 環境構築から躓いてます…
723 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 23:17:59.15 ID:Z18rEo5s.net] 浮動小数点数を==比較すると言うとヒステリック
724 名前:ネ反応する奴いるよな [] [ここ壊れてます]
725 名前:664 mailto:sage [2022/08/03(水) 00:27:23.50 ID:Ce9Xia0b.net] >>666 レスが遅くなってしまってすいません ありがとうございました なるべく使っていこうと思います
726 名前:デフォルトの名無しさん [2022/08/03(水) 02:48:22.00 ID:HUfXY4jl.net] >>697 インストール申請いる会社だとpythonは厳しい 外部ライブラリをいくつもインストールすることになるから、そのたびに申請申請…
727 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 03:03:39.79 ID:OfDGteUO.net] 自分自身が会社にアンインストールされちゃうよなw
728 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 06:34:50.12 ID:NNzHRQEi.net] >>697 環境はWindowsだと思うが元からあるExcel VBA、VBScript、PowerShellあたりでできないか考えた方がいいかと
729 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 06:44:43.69 ID:SAIeW7L3.net] >>697 インストール申請云々の縛りあるなら普通にVBAでやれよ
730 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 06:55:06.47 ID:6v79gKr9.net] インストール申請あるところならVBA/VBS禁止とかありそうだけどな
731 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 09:06:23.71 ID:7qOk9bFG.net] 大半のライブラリはインストールじゃなくダウンロード
732 名前:デフォルトの名無しさん [2022/08/03(水) 09:20:26 ID:6HJ5FZxO.net] P ⇒ QはPが偽のとき真です。
733 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 12:49:46 ID:s6+jOjkc.net] pythonのパッケージ管理ってどうやってる? 初心者だから本とかウェブ記事とか読みながらそのまま適当にpipしてたんだけど このままだとめんどくさいことになりそうな気がしてきた
734 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 13:06:03 ID:jXa2B14I.net] poetryで作った環境にインストールしてグローバルに使いたい奴だけリンク張ってる poetry使ってるのはライブラリ開発するのに使ってるついで 環境分けたいだけならvenvそのまま使えばいい
735 名前:デフォルトの名無しさん mailto:sage [2022/08/04(木) 03:46:24 ID:BBoT8RMz.net] プログラミングなんて大してSSDの容量使わねーだろ、と思ってたらanacondaが10GBぐらい使ってきて泣いた
736 名前:デフォルトの名無しさん [2022/08/06(土) 09:34:49.25 ID:80xJcjdY.net] pyinstallerで.pyファイルのexe化を試みています。 opencvがエラーを吐いて正常に動作しません。 ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation. google検索してやったこと。 paths=でモジュールの場所を指定 opencvのバージョンを4.5.3.56まで落とす(インストールエラー) python: 3.10.6 altgraph==0.17.2 future==0.18.2 numpy==1.23.1 opencv-python==4.6.0.66 pefile==2022.5.30 Pillow==9.2.0 pillow-avif-plugin==1.2.2 pyinstaller==5.3 pyinstaller-hooks-contrib==2022.8 pywin32-ctypes==0.2.0 Send2Trash==1.8.0
737 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 10:40:10.54 ID:XSn5nlI0.net] nuitkaを使う
738 名前:デフォルトの名無しさん [2022/08/06(土) 15:50:19.67 ID:eSBCWCwI.net] >>709 Anacondaはぶっ太い糞
739 名前:デフォルトの名無しさん [2022/08/06(土) 15:51:47.59 ID:eSBCWCwI.net] >>710 opencv-python-headless
740 名前:デフォルトの名無しさん [2022/08/06(土) 16:30:43.76 ID:80xJcjdY.net] >>710 レスありがとうございます。 nuitka、使ってみました。やはりopencv周りは色々問題があるようです。うまく動作しませんでした。 >>713 レスありがとうございます。 opencv-python の代わりに opencv-python-headless を使ってみましたが、全く同じエラーでした。 やはり opencv は難しいのでしょうか…
741 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 17:26:48.46 ID:PSjXEZOE.net] GoogleはGoなんて作る暇があったらPythonコンパイラを作るべきだった
742 名前:デフォルトの名無しさん mailto:
[] [ここ壊れてます]
743 名前:sage mailto:2022/08/06(土) 19:16:19.27 ID:kORMtiG2.net [ pycodestyleの機能って便利ですね ] [ここ壊れてます]
744 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 19:22:52.36 ID:Cy8sVH5p.net] お気づきになられましたか
745 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 19:54:32.19 ID:Tb2OU3Zj.net] impor requests ってやると Library stubs not installed for "requests" (or incompatible with python 3.9) とでてくるんだが リクエスト "用のライブラリスタブがインストールされていない(またはpython 3.9と非互換)。 よくわからん
746 名前:710 [2022/08/06(土) 20:04:04.35 ID:80xJcjdY.net] 結局、ネット上で実績ありそうな、 Python 3.8.5 altgraph==0.17.2 future==0.18.2 numpy==1.23.1 opencv-python-headless==4.5.3.56 pefile==2022.5.30 Pillow==9.2.0 pillow-avif-plugin==1.2.2 pyinstaller==5.3 pyinstaller-hooks-contrib==2022.8 pywin32-ctypes==0.2.0 Send2Trash==1.8.0 で実行ファイルからエラーが消えたようです。 アドバイスくださった方、どうもありがとうございました。 バージョン管理って大変ですね。
747 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 20:29:16.15 ID:7+clXBwJ.net] >>718 そのまんまじゃねーか
748 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 20:49:02.89 ID:XxOEvUoc.net] pytorch入れた時の悪夢が蘇って来た。orz
749 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 21:42:16.91 ID:PGZhucx9.net] >>718 何使ってるか知らんがmypyが有効になってるんじゃないの?
750 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 21:47:15.58 ID:PQ7gBqNg.net] ディレクトリがcase-sensitiveかどうか調べる方法ありますか? 環境はWindows10です やり方がわからないので対象のディレクトリ内にcase-sensitiveなディレクトリ名やファイル名が存在するか調べることでなんとかしようとしたけど pathlibのglobではcase-sensitiveなディレクトリ名やファイル名では読み抜け発生 os.walkならいけるかもと思い実験中
751 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 22:42:37.85 ID:IJoLUcj8.net] >>723 abc でディレクトリ作って ABC で存在確認するとかかな 恐ろしいことにOSXではパス毎にCase Sensitiveかどうかを設定出来るらしい... https://stackoverflow.com/questions/7870041/check-if-file-system-is-case-insensitive-in-python
752 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 23:10:23.53 ID:PQ7gBqNg.net] >>724 最近のWindowsもフォルダ毎にCase Sensitiveかどうかを設定出来るんですよ 対象のパスの下のサブディレクトリも個別に調べなきゃいけない
753 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 01:53:51.53 ID:HkpslvdA.net] pylintというのを知った 俺の作ったコード pylintしたら4点だった きびしすぎん?
754 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 04:45:52.49 ID:qW86g0dh.net] つ Flake8
755 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 09:31:21.46 ID:7cQO/w5k.net] pip installでインストールしたモジュールがどのフォルダ(ディレクトリ)に 入ってるか確認する方法ってありませんか? エクスプローラーで見てもありません…
756 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 09:51:04.57 ID:qW86g0dh.net] pip show パッケージ名
757 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 09:51:59.31 ID:wF6HChc5.net] 隠しファイル、隠しフォルダー、および隠しドライブを表示する
758 名前:デフォルトの名無しさん [2022/08/07(日) 11:38:08.36 ID:H7AA9Gyj.net] >>728 __file__ でわかる。 例えばopencvなら >import cv2 >print(cv2.__file__)
759 名前:728 mailto:sage [2022/08/07(日) 15:47:17.43 ID:7cQO/w5k.net] 答えてくれた方、ありがとうございました pip show requests を実行したらパスが表示されました pythonの処理系があるフォルダの近くにあるみたいなんですが、 VSCodeのどのフォルダにいる状態でインストールしても、 インストールされる場所は同じなんでしょうか?
760 名前:デフォルトの名無しさん [2022/08/07(日) 16:25:21 ID:qancDJyG.net] class A(text:str, value:int) class B(A) VSCodeだとマウスオーバーで引数が確認できますが 上記のような継承があるとき b = B() マウスオーバーでAの引数を確認したいのですが、どうすればいいですか?
761 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 16:29:37 ID:wx1/uok7.net] 今のデフォルトはpylanceだっけか
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は使わないほうが良かったりしますか?
863 名前:デフォルトの名無しさん [2022/08/14(日) 12:41:52.12 ID:VI2zLni0.net] >>682 1000%同意する
864 名前:デフォルトの名無しさん [2022/08/14(日) 12:45:09.72 ID:Xz0meKRj.net] >>830 dict['key']が存在してvalueがNoneの場合にTrueになっちゃうから、キーの不存在判定だけしたいなら'key' in dictの方がいいんじゃないかな
865 名前:デフォルトの名無しさん [2022/08/14(日) 12:50:22.70 ID:T9w5rPHY.net] >>830 エラーは出ていいんよ 逆に握りつぶしちゃいけない というかgetってなんのためにあるんだ? try: __dic[input()]: ____print('ある') except KeyError: __print('ねえわ') except Exception as e: __print(e.__class__.__name__) 外部入力受け付けるのって鬼門なんでこういう感じで書きたい keyerrorは想定できるし、別の意図してないエラーも拾いたいだしょ
866 名前:デフォルトの名無しさん [2022/08/14(日) 12:51:39.01 ID:T9w5rPHY.net] >>833 しつれい try: dic[input()] print(1)
867 名前:デフォルトの名無しさん [2022/08/14(日) 12:53:45.52 ID:A6qxvdf0.net] >>830 その用途なら、getでもいいんじゃない? >>832 が言う様な違いはあるけれど、キーが不存在でNoneが返る場合と、キーが存在するが値がNoneの場合とを、区別する必要があるかどうか、考えて決めれば良いよ
868 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 15:22:06.37 ID:nJs5efs8.net] キーに階層があって、途中のキーがなかったりすることがある場合なんかだと、 区別する実益はあるかもしれんね 一応、.get('key', {}) なんて方法もあるけど
869 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 15:22:39.42 ID:Gnb69e0i.net] >>832 失礼しました。最初の例ですとおっしゃるとおりですね。内容まで取得するケースも想定してました。 >>833-835 ありがとうございます。要件などふまえ考えてみます
870 名前:デフォルトの名無しさん [2022/08/14(日) 16:52:51.09 ID:T9w5rPHY.net] ああわかった db['key1': 0, 'key2':0,,,] if key1: __print('ある') else: __print('ない') こんときgetじゃないといかんのだな あるいは try: __value = db[a''] __print('ある') except KeyError: __print('ない') except: __print('未定義エラー')
871 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 22:47:50.08 ID:549c+n4K.net] Ruby の偽は、nil, false だけ。 これ以外は真 でも、Python, PHP, JavaScript などは、 各型に偽値がある。空文字列・空配列・空辞書など だから、とんでもなくバグるし難しい。 すべての型の可能性を考えないといけない 文字列型・配列型・辞書型ならとか。 だから、TypeScript みたいな型チェックツールが作られた
872 名前:デフォルトの名無しさん [2022/08/14(日) 22:57
] [ここ壊れてます]
873 名前::22.86 ID:I2sSNpX6.net mailto: >>839 死ね [] [ここ壊れてます]
874 名前:デフォルトの名無しさん [2022/08/15(月) 09:22:07.96 ID:c1YCm0IS.net] >>838 どういうこと?
875 名前:デフォルトの名無しさん [2022/08/15(月) 13:07:09.65 ID:RvdaGkLE.net] >>841 dict['key'] = value と dict.get('key') = value 取得したvalueがFalseになるとき、つまり0とかNoneとか空白のとき if dict['key'] is not True になる。値はあるにも関わらず 一方 if dict.get('key') is Ture なので、期待する挙動としてはgetのが正しい 値がダミー(0など)の辞書の用意とかありうるので
876 名前:デフォルトの名無しさん [2022/08/15(月) 14:06:42.23 ID:0GtlIRwB.net] ああそういうことか re.matchとかre.searchみたいなことをやりたいのか 辞書のキーがあるかないかbooleanの判定と値への処理は別の方がいいと思う if 'key' in dでもKeyError処理はどっちでもいいけど
877 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 15:15:52.94 ID:gMKahu5b.net] >>842 keyに対するvalueが0やNoneの時に dict.get(key) is Trueにはならんやろ dict.get(key, [default])を使うのは keyに対応する値がデフォルト値の場合と keyに対応する値が無くてデフォルト値が返される場合を同じように処理したい時だけ bool判定したいならin演算子 KeyError使うのはkeyが存在しない状況が例外的な場合
878 名前:デフォルトの名無しさん [2022/08/15(月) 15:38:01.56 ID:RvdaGkLE.net] >>844 ありゃならんな これはすまん。なんか勘違いしとった。 stackoverflow why dict.get(key) instead of dict[key]? 参照
879 名前:デフォルトの名無しさん [2022/08/15(月) 19:52:08.21 ID:KlKo2Eqq.net] わざわざメソッドとして用意されるほどの価値がないんだよなあ 2時代は重宝したのかな
880 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 20:37:42.59 ID:Xxg2cjph.net] if (val := dic.get(key)) is not None: は使うけどな
881 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 04:15:40.22 ID:MkpTU7zo.net] 次のコードがあります h=[[[]]]*10 h[0].append([0,0]) 理想としては >[[[], [0, 0]], [[]], [[]], [[]], [[]], [[]], [[]], [[]], [[]], [[]]] となってほしいのですが、現実は >[[[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]]] となってしまいます どうしたら理想の形になるでしょうか?
882 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 07:26:37.30 ID:GKkpSlmU.net] 内包表記使って初期化
883 名前:デフォルトの名無しさん [2022/08/16(火) 08:04:39.39 ID:9vnyTUy7.net] [[[], [0, 0]] if i == 0 else [[]] for i in range(10)]
884 名前:デフォルトの名無しさん [2022/08/16(火) 08:06:35.47 ID:9vnyTUy7.net] h=[[[]] for i in range(10)] h[0].append([0,0])
885 名前:デフォルトの名無しさん [2022/08/16(火) 11:31:22.44 ID:2x3mrzZQ.net] 要件後出しまくりとか ゴールポスト移動させまくりとか チョンメンタルの香具師とは付き合いたくないな
886 名前:デフォルトの名無しさん mailto:sage [2022/08/17(水) 13:20:06.97 ID:5W303LUa.net] 差別主義者で今どき香具師とか使ってるジジイとか逆に誰も付き合いたくないだろ
887 名前:デフォルトの名無しさん [2022/08/17(水) 16:37:01.73 ID:tMNGLQPx.net] pandas のread_excelで式が入っている箇所の値を計算値ではなく、 整形されたテキスト値の方を取りたい場合はどうしたら良いのでしょうか? 数値で6.6がテキスト値として”7”として表示されている”7”の方の値をとりたいです。
888 名前:デフォルトの名無しさん mailto:sage [2022/08/17(水) 18:19:41.22 ID:8E4xUz8+.net] >>854 Excelファイル内のデータとしてあるのは数値の6.6だけで 文字列の7という値はデータとしてファイルには存在しないので 直接読み取るのは無理 read_excelでdtypeやconverterを指定して数値の6.6を文字列の7に変換するか 一旦dfに読んでから変換するか
889 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 04:13:52.58 ID:OEqoy/Kx.net] 0.00000001から10000.xxxxくらいまで取り得るfloatの変数を、数字の表記で文字列に
890 名前:変えたいのですが、 str()だと、0.0001未満の値が"1e-05"のような指数表記になってしまいます 一方f-string(format)だと、".8f"等で全桁表記はできますが、小数点以下が常に8桁で0で埋められてしまいます (例 0.00001→0.00001000) 末尾には余計なゼロは付けず、かつ指数表記にならない形でfloatを文字列にする簡単な方法はありますか? rstrip('0')など使って余計なゼロを処理するしかないでしょうか?(この場合、100.0などのゼロは削除できないので判定が必要そうで単純にはいかなそうですが) [] [ここ壊れてます]
891 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 08:18:05.71 ID:cEC5FUVy.net] >>856 numpy.format_float_positional ググったらすぐ出て来た
892 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 08:58:00.71 ID:8X5QyRnM.net] >>855 ありがとうございます。やはりできないのですね。 オプション探してみましたがそれらしいものがなかったので。 場所ごとに与えられた式が同じとは限らないので、 エクセル側で読み込み用の文字列を作成することにしました。
893 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 16:36:53.18 ID:Sofq2Da+.net] 条件分岐について質問です 3の倍数であるかどうかを判定する関数func1()とfunc2()を書いたのですが、 どちらの書き方のほうが良いでしょうか? https://paiza.io/projects/mbEoYGp5wy7cU2oqpoTLbA
894 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 16:40:44.96 ID:s/eA3jUD.net] 当然1
895 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 16:48:56.73 ID:X/mZUHYK.net] >>859 3の倍数が例外的な事象と言う事を表現したいならワンチャン2の可能性もあるかも
896 名前:859 mailto:sage [[ここ壊れてます] .net] 回答ありがとうございます なぜfunc2()の書き方はあまり良くないのでしょうか? よろしければ理由も教えて貰えるとありがたいです
897 名前:デフォルトの名無しさん [2022/08/18(木) 17:56:26.08 ID:GYRCxwaB.net] すべてのnumは3の倍数かそうでないかのどちらかである、つまり必ずどちらかの処理が実行される事が一目で理解できる点ではfunc1がベター 一方で3の倍数の時は処理を行わず早期リターン、3の倍数でない時は長い処理を行う、といった場合はfunc2
898 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 18:55:31.69 ID:Rcho8+Nh.net] いや、return入れるならelseのときもreturnしろよ 両方入ってるなら2でもいいと思うけど、片方だけ終わらせるために入れるなら関数なのかサブルーチンなのかわからんからダメだろ
899 名前:859 mailto:sage [2022/08/18(木) 19:10:48.59 ID:Sofq2Da+.net] >>863 なのでこの場合はfunc1()なんですね ありがとうございました
900 名前:859 mailto:sage [2022/08/18(木) 19:15:55.23 ID:Sofq2Da+.net] >>864 コードはなるべく短い方がいいと思ったので使わなくて済むところでは使いませんでした 関数なのかサブルーチンなのか分からないと駄目とはどういうことですか?
901 名前:デフォルトの名無しさん [2022/08/18(木) 20:03:27.19 ID:Ly249j22.net] こっちのが好き def is_multiple(num): return num%3 == 0
902 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 21:14:57.76 ID:uWlfhjm8.net] >>864 アラカン先輩ちぃーすっ
903 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 21:32:20.64 ID:49aIw1a5.net] >>867 判定処理と判定結果を表示する処理を分離しましょうという意味では同意する けどis_multipleという関数名で3の倍数かどうか判定されるのは違和感しかない じゃどういう名前にするのがいいかと考えると判定処理をわざわざ関数化するほどではないんじゃないかという気がする
904 名前:デフォルトの名無しさん [2022/08/19(金) 03:09:01.80 ID:FK1lT4BX.net] def b_is_multiple_of_a(a: int, b:int): return bool(b % a == 0) if b_is_multiple_of_a(a=5, b=10): __print('可読性低すぎる')
905 名前:デフォルトの名無しさん [2022/08/19(金) 11:27:50.19 ID:scgMDta4.net] アーリーリターンは何も珍しい
906 名前:アと時や無い [] [ここ壊れてます]
907 名前:デフォルトの名無しさん [2022/08/19(金) 11:28:55.77 ID:scgMDta4.net] >>870 関数改行すんならifも改行すんなよ
908 名前:デフォルトの名無しさん [2022/08/19(金) 11:30:34.29 ID:scgMDta4.net] しないなら
909 名前:デフォルトの名無しさん mailto:sage [2022/08/19(金) 18:24:24.93 ID:opjWCie4.net] def func3(n): p = 0 while n > 0: p += n % 10 n //= 10 return not (p % 3)
910 名前:デフォルトの名無しさん mailto:sage [2022/08/20(土) 10:11:04.26 ID:FuR2a/w3.net] >>710 https://github.com/opencv/opencv/issues/22088 4.6.xは色々ダメポ
911 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] a = [1,2,3,4,5] b = [2,3,4,5,6] c = [] for i in range(5): c.append(a[i] + 2*b[i]) こういうのをリスト内包表記で書くのは無理でしょうか
912 名前:デフォルトの名無しさん mailto:sage [2022/08/20(土) 23:35:43.31 ID:mymTDVML.net] aとbの要素数が同じだったら[i+2*j for i,j in zip(a,b)]でいけね?
913 名前:デフォルトの名無しさん [2022/08/20(土) 23:38:46.37 ID:cHNXWuBU.net] c=[x+2*y for x,y in zip(a,b)]
914 名前:デフォルトの名無しさん mailto:sage [2022/08/20(土) 23:39:36.80 ID:mymTDVML.net] 普通にrangeでも c=[a[i]+b[i] in i for range(5)]でできるかな
915 名前:デフォルトの名無しさん [2022/08/21(日) 01:03:28.95 ID:uqbZs7r8.net] どうでもいいけど c = [i + (j * 2) for i, j in zip(a, b)] と書きたいな俺は # (1*i) + (2*j) のようなときのみ(2*j)でも可 # 計算スタックは()でくくる 初心者のうちは特に気をつけたい。動けばいいやんは動かなくなる原因になる
916 名前:デフォルトの名無しさん [2022/08/21(日) 01:23:15.12 ID:m1bd5huk.net] >>876 好きなのを選び多摩へ c = [(a+1) + (b+2)*2 for a,b in enumerate([i for i in range(5)])] c = [(a+1) + b*2 for a,b in enumerate([i for i in range(2, 7)])] c = [a + 2*b for a,b in zip([i for i in range(1,6)],[j for j in range(2,7)])]
917 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 01:38:11.30 ID:X34OpE8X.net] ありがとうございます!
918 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 06:47:07.90 ID:SCvvVl9f.net] def main(argv: Sequence[str]) -> None: ↑ これってどういう意味というか、なにがやりたいんですか? def main(argv): ならmainにargvを渡すだけで分かりやすいんですが
919 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 10:46:46.24 ID:1U/+Hx4a.net] >>883 型ヒントっていうヤツでしょ おじさんはもう新しいこと覚える気力ないから どういう機能かは自分でググってくれ
920 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 10:59:40.26 ID:LqJQ4HOS.net] >>883 argvの型がstrのシーケンスで戻り値の型がNoneってこと シーケンスはlistやtupleのように長さが事前に分かってて各要素にインデックスで直接アクセスできるようなコレクションの総称
921 名前:デフォルトの名無しさん [2022/08/21(日) 13:04:30.41 ID:j3ukytx2.net] そこまで型ゴリゴリにするならpythonじゃなくても(じゃない方がむしろ)良いと思うから 放置してる
922 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 13:07:09.50 ID:JM/HSGoB.net] >>884 型ヒントでググりました 注釈だそうですね 要するにいらないんじゃないか!
923 名前:デフォルトの名無しさん [2022/08/21(日) 14:03:22.39 ID:uqbZs7r8.net] 型ヒント(と開発環境)があると作業効率がずっと上がる https://imgur.com/jtSAuu4.png 型ヒントのない世界は無 https://imgur.com/BuL77EC.png オジジでもない限り、初学者は型ヒントつけるクセつけてったほうが 大きいコード書くようになったときなんかに助かるで
924 名前:デフォルトの名無しさん [2022/08/21(日) 14:29:46.94 ID:j3ukytx2.net] そこでハンガリアンですよωωω=2πf
925 名前:デフォルトの名無しさん [2022/08/21(日) 14:38:59.74 ID:jAGl7lqb.net] 実際使ってみると、版画リアンはものすごく楽。 名前というものは被るように出来てるものらしい。 とはいえ推奨はしない。
926 名前:デフォルトの名無しさん [2022/08/21(日) 14:45:29.
] [ここ壊れてます]
927 名前:71 ID:HDFqY1eo.net mailto: Pythonでローカルサーバーを立ててhtmlの確認をしたいのですが、SSIを使いたいため、以下のスクリプトを使用しています。 https://github.com/danvk/ssi-server/blob/master/ssi_server.py GITからクローニングして、MacOS + python 3.10.5で動作確認させたところ問題なく動きました。 Windows10 + Python 3.10.5で実行すると、localhostへのアクセス時に文末のエラーが出て動きません。 同一のクラウド上のファイルを参照して実行しています。GITからはMacで落としましたが、改めてwindowsで落としても同じでした。 MacOSでは動いているのでWindowsの環境なのかと思いつつ、何が原因かわからずにいます。 アドバイスください。 ------エラー文章-------- Exception occurred during processing of request from ('::1', 58693, 0, 0) Traceback (most recent call last): File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\socketserver.py", line 683, in process_request_thread self.finish_request(request, client_address) File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\socketserver.py", line 360, in finish_request self.RequestHandlerClass(request, client_address, self) File "C:\Users\UserName\iCloudDrive\web\ssi_server.py", line 37, in __init__ SimpleHTTPRequestHandler.__init__(self, request, client_address, server) File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 651, in __init__ super().__init__(*args, **kwargs) File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\socketserver.py", line 747, in __init__ self.handle() File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 425, in handle self.handle_one_request() File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 413, in handle_one_request method() 本文長すぎの為続きは次に書きます [] [ここ壊れてます]
928 名前:デフォルトの名無しさん [2022/08/21(日) 14:46:16.53 ID:HDFqY1eo.net] 続きです。 File "C:\Users\UserName\iCloudDrive\web\ssi_server.py", line 40, in do_GET SimpleHTTPRequestHandler.do_GET(self) File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 655, in do_GET f = self.send_head() File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 679, in send_head path = self.translate_path(self.path) File "C:\Users\UserName\iCloudDrive\web\ssi_server.py", line 57, in translate_path content = ssi.InlineIncludes(fs_path, path) File "C:\Users\UserName\iCloudDrive\web\ssi.py", line 31, in InlineIncludes content = open(path).read() UnicodeDecodeError: 'cp932' codec can't decode byte 0x84 in position 1163: illegal multibyte sequence ----------------------------------------
929 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] GITって何て読むの? じっと?ぎっと?
930 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 15:41:28.40 ID:gzL+j7A8.net] kit git
931 名前:デフォルトの名無しさん [2022/08/21(日) 15:50:29.96 ID:Tt3lkFsn.net] >>888 え、上が当たり前の感覚なんだけど 昔の人は下の状況でどうやってコード書いてたの? 引数とかオプションとかメソッドとか ソースあたったりdir連打?
932 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 15:50:38.42 ID:tAy7F/Zf.net] >>892 たぶんこれでいけるんじゃね content = open(path, encoding = "utf-8").read()
933 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] >>888 その比較は型ヒント関係ないやろ
934 名前:デフォルトの名無しさん [[ここ壊れてます] .net] >>895 help
935 名前:デフォルトの名無しさん [[ここ壊れてます] .net] >>896 ありがとうございます。 まだ上手く直せていないのですが、試していたらindex.htmlに日本語があるとWindowsではエラーが出ることがわかりました。 ssi_server.py、ssi.pyで正しく日本語を読むようにすればいいということでしょうか。
936 名前:デフォルトの名無しさん [[ここ壊れてます] .net] >>896 ssi.pyの31行目を教えていただいたものに書き換えても駄目でした。。。 他に試してみることがあればぜひ教えてください。お願いします。
937 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] tensorflow Liteというのがあって、int8とかでTPU使うと計算が速いらしいのですが、調べても使い方が複雑すぎていまいちよくわかりません 初心者にもわかりやすくまとまってるサイトはありま
938 名前:ケんか? もしくはどなたかが簡潔にまとめていただけると助かります [] [ここ壊れてます]
939 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] どこまで分かってるか分かってないか書いたほうがいいです
940 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 17:32:33.39 ID:4RZQsnIa.net] >>902 converter = tensorflow.lite.TFLiteConverter.from_saved_model(export_dir) tflite_model = converter.convert() とすれば変換できるみたいですが、まずtensorflow.lite.TFLiteConverterがありません 私の環境ではtensorflow.python.lite.TFLiteConverterかなと思いましたが、ありません tensorflow.lite.pythonにTFLiteConverterではなくtflite_convertがあるのを見つけました tflite_convert.dtypes.int8というのが存在するので、これを設定すればいいのかなとは思うのですが あと何したらいいのか見当がつきません
941 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 17:50:14.70 ID:y+zMOwhn.net] >>899 index.htmlは何の文字コードで保存されてるの? Linuxで動いてるのと同じならUTF-8だと思うけど、Windows側で弄った時に文字コード変わってると ややこしいから確認したい
942 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 17:56:00.04 ID:y+zMOwhn.net] >>900 でもそうだけど ダメだった時に同じエラーが出たのか、違うエラーが出たのかははっきり書いた方が良い エンコーディング指定をこれにしても同じ結果になる? content = open(path,encoding='utf-8_sig').read()
943 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 18:09:49.63 ID:YEW47Y5U.net] ウェブ系など、すべてのシステムはUTF-8 でも、Windows だけは、CP932(shift-jis)。 5ch も、sjis だけどw こういうシステムは普通はない
944 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 18:14:09.27 ID:YEW47Y5U.net] >>892 の最後の行に書いてある >UnicodeDecodeError: 'cp932' codec can't decode byte 0x84 in position 1163: illegal multibyte sequence UnicodeDecodeError: 'cp932' cp932 でしょ?
945 名前:デフォルトの名無しさん [2022/08/21(日) 18:17:56.59 ID:HDFqY1eo.net] >>904-905 content = open(path,encoding='utf-8_sig').read() で解決しました! index.htmlはUTF-8で保存されていました。 後学のために単にutf-8だったときのエラーメッセージと元のエラーメッセージの比較をしようと思ったのですが、 utf-8指定でも動作するようになってしまって、その点はよくわからずでした。 (最初のときは違う行に書いてしまったかもしれません) レベルが低くせっかく即答いただいたのに手間取ってすみませんでした。ありがとうございました。
946 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] 今日初めてPython落としました! 何からやったらいいのかな?
947 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] まずは交番に問い合わせ
948 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] ニシキヘビ属(Python)は、爬虫綱有鱗目ニシキヘビ科(ボア科ニシキヘビ亜科とする説もあり)に属する属。ニシキヘビ科の模式属。
949 名前:デフォルトの名無しさん [2022/08/21(日) 21:56:34.82 ID:uqbZs7r8.net] class Foo(): __def __init__(self, bar:Bar): ____self.bar = bar 他のクラスのインスタンスをselfで受けるのって慣習ですか? 特に必要なければしなくてもよい?
950 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 22:08:55.27 ID:pxrRhRxl.net] >>912 質問の意図がよく分からない FooのインスタンスがBarのインスタンスに依存してて コンストラクタで依存するインスタンスを受け取って参照を保持しておきたいというのがそのコードの意味
951 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 22:36:44.36 ID:m1bd5huk.net] ちんちんシュッシユ
952 名前:デフォルトの名無しさん [2022/08/21(日) 22:37:39.35 ID:uqbZs7r8.net] >>913 fooはインスタンス生成時点のbarのインスタンス情報が要るけど 生成後は要らない、他のメソッドで使わないとき、self.barで保持する必要がないと思うんだけど、そういうコードあんまり見たことないなーと思って def Foo(): __init(self, bar): ____x = bar.baz[0] * 2 ____self.calc(bar.data) とかでいいときもあると思うんだけど だいたいインスタンス変数にするだしょ なんか理由あんのかなっていう def Foo(): __init(self, bar): ____self.bar = bar ____x = self.bar.baz[0] * 2 ____self.calc(self.bar.data)
953 名前:デフォルトの名無しさん [2022/08/21(日) 23:00:36.99 ID:sTNlugjb.net] 何見たのか知らないけど保持する必要がない
954 名前:ならインスタンス変数にする必要ないね [] [ここ壊れてます]
955 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 23:15:46.41 ID:YEW47Y5U.net] is-a・継承・一種じゃなくて、has-a・包含・部品化でしょ Foo は、Bar という部品を持っている
956 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 07:03:46.35 ID:nh7qwDlg.net] どなたか>>903 わかりませんか?
957 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 08:53:29.31 ID:/DEJsMLY.net] >>915 > とかでいいときもあると思うんだけど だいたいインスタンス変数にするだしょ ルールも慣例もないから君がみた例がそうだっただけ ただコンストラクタで受けるとき普通はクラス全体として依存するからインスタンス変数で受けることが多いね まだはやいと思うけどコード設計レベルの話だと、依存しない型をコンストラクタ引数に持つのは余計な情報を含み生成コストが高くなるから、本当に必要な情報だけコンストラクタで渡すか、ファクトリメソッド(staticmethodかクラス外のただの関数)を経由すると良い
958 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] >>903 >まずtensorflow.lite.TFLiteConverterがありません Python 3.10 にtensorflow入れて確認したけど、あるよ ちなみにtensorflow のバージョンは2.9.1
959 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] 統一教会は半島人の醜さを如実に表してる
960 名前:デフォルトの名無しさん [2022/08/22(月) 14:10:57.26 ID:KX6mg0Ol.net] 質問が既に触っちゃいけない人レベルだと答える気も起きない
961 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 17:08:51.25 ID:vrjH2pLG.net] >>920 こちらは2.11.0と出ました こんな感じです どっとup.org/uploda/どっとup.org2859768.png
962 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 17:09:07.20 ID:vrjH2pLG.net] あ、Pythonは3.10.6です
963 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 18:48:00.04 ID:KAheMTvm.net] ちなみに、tensorflow.kerasも、tensorflow.python.kerasになってます
964 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 19:13:09.43 ID:YpfCjhrS.net] >>924 こちらはIDLEでやってるけど、そちらは何でやってるの? >>>import tensorflow as tf >>>tf.lite.TFLiteConverter <class 'tensorflow.lite.python.lite.TFLiteConverterV2'> と出るから、あなたの環境?ではtensorflow.lite.python.lite.TFLiteConverterV2 でできるかも?
965 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 19:19:54.92 ID:mGTda2af.net] >>926 おおお、なんか出ました!!! ちなみにVSCodeです これをTFLiteConverterだと思って使えばいいんですね ありがとうございます
966 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 19:38:48.82 ID:YpfCjhrS.net] ふぅ〜〜、、また迷える子羊を救ってしまったオレはメシア! >>922 はウンコ!!
967 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 19:44:46.61 ID:7dOE9g6n.net] ×触っちゃいけない 〇自分のレベルでは触れない
968 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 20:41:16.68 ID:xuCaDQYT.net] (悪い)
969 名前:デフォルトの名無しさん mailto:sage [2022/08/23(火) 07:46:45.41 ID:AXaElLrn.net] かっこ悪い
970 名前:デフォルトの名無しさん mailto:sage [2022/08/23(火) 11:45:38.02 ID:C7QGzGi8.net] (インテグラ)
971 名前:デフォルトの名無しさん mailto:sage [2022/08/23(火) 15:21:34.49 ID:VG0bs36n.net] Python的にはタプル
972 名前:デフォルトの名無しさん [2022/08/23(火) 18:20:21.00 ID:QvfGPIA0.net] スクレイピングの勉強でも始めようと思って FANZAから持ってるエロゲーのデータ取得しようと思ったけど「18歳以上ですか?」のページに飛ばされるからうまくいかないんだよな それでぐぐってみたらちゃんと回避する方法も載っててさすがエロは人類の英知だなって
973 名前:デフォルトの名無しさん [2022/08/23(火) 18:21:32.45 ID:QvfGPIA0.net] で、もしかして商品データのAPIとかあるんじゃないかと調べたら普通にあるじゃん FANZAでAPIの使い方も学べてしまうわけだ
974 名前:デフォルトの名無しさん mailto:sage [2022/08/23(火) 21:00:11.70 ID:zoEAEgny.net] プログラムが<b></b>で囲まれてるのがあるんですが、どういう意味がありますか?
975 名前:デフォルトの名無しさん mailto:sage [2022/08/24(水) 11:40:37.72 ID:GCuLQfVh.net] def mySort(x): _return x-n ary=sorted(ary,key=mySort) 上記の様なソートで
976 名前:mySort関数に別の引数(n)を 与えたい場合はどのようにすれば良いのでしょうか? [] [ここ壊れてます]
977 名前:デフォルトの名無しさん [2022/08/24(水) 11:40:54.28 ID:GCuLQfVh.net] age忘れたのでageます
978 名前:デフォルトの名無しさん mailto:sage [2022/08/24(水) 12:06:03.74 ID:nMDP5IX7.net] >>936 <b></b> は、HTML のタグ。bold・太字
979 名前:デフォルトの名無しさん mailto:sage [2022/08/24(水) 13:10:02.55 ID:Q8Mi5AsJ.net] >>937 functoolのpartialとか lambdaでclosureとか
980 名前:デフォルトの名無しさん mailto:sage [2022/08/24(水) 13:42:19.22 ID:GCuLQfVh.net] >>940 ありがとうございます。以下のような感じでいけました。 def sortX(n): _def sub(x): __return x-n _return sub ary=sorted(ary,key=mySort(5))
981 名前:デフォルトの名無しさん mailto:sage [2022/08/24(水) 13:44:20.36 ID:GCuLQfVh.net] どうでもいいけど、sortX(n)はmySort(n)でした
982 名前:デフォルトの名無しさん mailto:sage [2022/08/24(水) 17:14:42.06 ID:MmGWx16i.net] 比較関数の名前はmyCmp()とかの方がよくないか
983 名前:デフォルトの名無しさん mailto:sage [2022/08/24(水) 18:49:27.66 ID:9+/sji0l.net] 比較関数そのものじゃないのでgen_my_cmpとかに死体
984 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 11:52:57.48 ID:fZ4fACWe.net] floor が「切り捨て」なのはどういう意味なんだろう? 建物の「階」において、たとえば「2.5階」の高さがあったとしてもそれは2階の範疇、という理解でいいのか?
985 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 12:17:01.44 ID:t8dBENVC.net] >>945 まぁ…ある意味?floorは床(底)、ceilは天井。金融でも 動詞だと倒す、床に押しつける的な意味合いも持つようだね
986 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 12:18:32.67 ID:07FV37Yy.net] >>945 ガウス記号って学校で習わなかったのか?
987 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 12:35:27.45 ID:T8QO1Ud9.net] 習ったかもしんないけど、習った時以外に使ったことないな
988 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 19:50:52.48 ID:JQLsrPvi.net] フレームワークスレ動いてないのでここで jinja2のmacroって1つのmacroにつき1ファイル必要ですか? 便利だけど結構なファイル量になりそう
989 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 19:53:38.52 ID:JQLsrPvi.net] できそうですね 自決しましたすみません
990 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 22:12:05.52 ID:onQDGrDv.net] 潔い最期であった
991 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 23:23:20.07 ID:11s99DpV.net] ヒットアンドブローを書いてみました ここは直した方がいい、って箇所がありましたら教えて頂きたいです よろしくお願いします https://paiza.io/projects/V9PHgwFh2EAyhgA2PxxUbQ
992 名前:デフォルトの名無しさん [2022/08/25(木) 23:48:36.58 ID:C7eFIied.net] 3文字以下を入力したらエラー
993 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 04:59:27.97 ID:8E2pwf5q.net] >>952 数値チェック、桁数チェック、重複チェック追加 blowの計算が違う 2重ループの変数がすべてiなのはややこしい answer_list、input_list、リストにするメリットを感じない
994 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 05:00:05.01 ID:8E2pwf5q.net] import random answer_list_int = [] while len(answer_list_int) < 4: ____random_number = random.randint(0, 9) ____if random_number not in answer_list_int: ________answer_list_int.append(random_number) answer_str = "".join(map(str, answer_list_int)) print('''\ 数当てゲームをします! 4桁の重複しない数字を当てて下さい! 入力のチャンスは7回までです '終了する場合はexitと入力して下さい ''') for i in range(7): ____while True: ________input_number_str = input(f'{i + 1}回目 4桁の重複しない数字を入力して下さい->') ________if input_number_str == 'exit' or (len(input_number_str) == 4 and input_number_str.isdecimal() and len(set(input_number_str)) == 4): ____________break ____hit = len([j for j in zip(input_number_str, answer_str) if j[0] == j[1]]) ____if
995 名前:input_number_str == 'exit': ________break ____print(f'hitは{hit}です!') ____if hit == 4: ________print('クリアです!おめでとう!') ________break ____print(f'blowは{len(set(input_number_str) & set(answer_str)) - hit}です!\n') if hit != 4: ____print(f'残念!当たりは{answer_str}でした!') [] [ここ壊れてます]
996 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 07:33:07.60 ID:90ir5d7g.net] また人形遊びか
997 名前:デフォルトの名無しさん [2022/08/26(金) 10:37:48.28 ID:i2SIEm4o.net] つまらんな 人間が出題してPC(または鯖)に解かせるhit&blowを描け
998 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 14:03:10.97 ID:b48ovCTY.net] 重複しないならシャッフルして作る方が好み こんな感じの answer_list_int = random.sample(range(10),10)[:4] >>955 細かい事だけど isdecimal()って全角数字もTrueになりそうな
999 名前:952 mailto:sage [2022/08/26(金) 15:53:44.20 ID:YT1F4ulB.net] レスありがとうございました! いろいろ改善してみたいと思います
1000 名前:952 mailto:sage [2022/08/26(金) 18:09:23.80 ID:YT1F4ulB.net] 修正しました ややネストが深くなってしまいましたが https://paiza.io/projects/nUxI-yeQLIlZSBGA4dmcKA
1001 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 19:10:15.58 ID:8E2pwf5q.net] >>960 自分のスタイルで書けばいいと思うけど最終行はいかがなものか print(f'\n残念!当たりは{"".join(answer_list)}でした!')
1002 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 21:56:17.10 ID:qaneYf7D.net] 標準ライブラリだけで、ローカルタイムゾーンのoffset値だけ取得したい(日本なら+9みたいな)のですが、直接取得できる方法などありますか?
1003 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 22:05:56.45 ID:Iy9DcYfZ.net] マニュアル読め
1004 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 22:40:57.28 ID:qaneYf7D.net] time.timezone / 3600 (→Asia/Tokyoだと -9 になる) が一番簡素ですかね
1005 名前:952 mailto:sage [2022/08/26(金) 22:50:13.39 ID:YT1F4ulB.net] >>961 ありがとうございます もう1つだけどうしても気になる箇所があるのですが、 >>960 の21行目で定義しているinput_number_strを、無意識のうちに for文の外で使っちゃってるのですが、なぜエラーにならないのですかね? Pythonではブロックは無視していい仕様なんですか?
1006 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 23:41:59.18 ID:8E2pwf5q.net] >>965 関数ブロック(def/lambda)だけ考えればいい
1007 名前:952 mailto:sage [2022/08/27(土) 00:45:11.54 ID:eQp61XjW.net] >>966 すごい仕様ですね、ちょっと受け入れるのに時間かかりそうです ありがとうございました
1008 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 10:36:29.81 ID:iQeLdPnf.net] SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: えいちちーぴーえす://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy これはどうしろとおっしゃっているのですか? data['column'][i]=(2**x) こういう式に文句言われたんですが
1009 名前:デフォルトの名無しさん [2022/08/27(土) 11:13:27.05 ID:WyESGIww.net] その警告文で検索したら秒で解決するけど、しなかった?
1010 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 11:33:42.24 ID:z31K+Zx9.net] pd.set_option('mode.chained_assignment', None)
1011 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 13:32:06.26 ID:BTzbpX5q.net] よくまとまってる https://www.dataquest.io/blog/settingwithcopywarning/ https://linus-mk.はてぶろ.com/えんとり/2019/02/02/200000 https://linus-mk.はてぶろ.com/えんとり/2019/03/14/235402 https://linus-mk.はてぶろ.com/えんとり/2019/05/18/161328
1012 名前:デフォルトの名無しさん [2022/08/27(土) 14:42:22.60 ID:n5VuK+5f.net] 奥が深い
1013 名前:タズブズブ [] [ここ壊れてます]
1014 名前:ややや mailto:vision_xxx@icloud.com [2022/08/27(土) 20:00:28.28 ID:IQqR6XHY.net] https://qiita.com/mimuro_syunya/items/2464cd2404b67ea5da56 上のサイトを参考にしてジュピターノートブックからサイトの最後の方にあるソースコードをコピペして最後の3行をGetメソッドで指定したURLに飛びませんでした。 最後の3行を変更せずにやっても出来ませんでした! 上記のサイトの実行コマンドをbotファイルにするくだりはやってます。 目立ったエラーなどは現在無いです。 ブラウザ立ち上げた後にそのまま処理を行うにはどうすれば良いでしょうか?
1015 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 21:29:38.61 ID:RK2Xjm2V.net] 日時と得点からなる表Aがあったとします 最高得点が更新された履歴の表を作りたいです Aの各要素にその日時より古い日時のAの全要素をouter joinかmergeでくっつけて、 くっつけた表の部分をgroupbyしてmaxを求め、 各要素の得点とmaxの得点が一致しているものだけをselectしたいのですが、 SQLならできるのにpandasではやり方がいまいちわかりません 普通にmergeしただけだと共通項があるものしかくっつけられないです どう書けばいいか教えてください
1016 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 22:11:52.80 ID:8j5Nb3+9.net] >>974 日時の順にループで1行ずつ最高点を更新したかどうかを判定して 更新してれば新しい表に(日時, 得点)を追記していけばいいよ O(n)なのでouter joinするやり方よりも断然効率的
1017 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 09:44:53.82 ID:my7A80XW.net] history=model.fit(x,t,epochs=epochnum,batch_size=batchnum,callbacks=[checkpoint,lr]) この行を実行すると、 Epoch 101/2000 1/1 [==============================] - ETA: 0s - loss: 0.11/1 [==============================] - 0s 3ms/step - loss: 0.1453 - mae: 0.2880 Epoch 102/2000 1/1 [==============================] - ETA: 0s - loss: 0.11/1 [==============================] - 0s 5ms/step - loss: 0.1452 - mae: 0.2888 などと出てきてしまいます ・完全に黙らせる場合 ・Epoch数だけ表示させる場合 どうしたらいいでしょうか?
1018 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 16:01:50.37 ID:kZD7TOdo.net] 自己解決しました 失礼しました
1019 名前:デフォルトの名無しさん [2022/08/28(日) 16:36:09.29 ID:q65Nt2bT.net] 解決法も書いてってや 後輩のために
1020 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 17:39:31.88 ID:ULmp/dD0.net] 失礼します class内のメソッド宣言の際に、1つ目の引数にselfを必ず入れなければならない 理由や背景が何となくしか分かりません それと、selfはJavaで言う所のthisと同じようなものと考えてよいですか?
1021 名前:デフォルトの名無しさん [2022/08/28(日) 17:47:12.52 ID:q65Nt2bT.net] そう 別にthisでもいいよ。selfでなく
1022 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 18:48:06.80 ID:ScmkE54Q.net] 他のOSでの挙動は分からないけどWindows版Pythonで socketのrecvで受信待機している時に他のpyファイルを動かすと動作が停止してしまいます 終了ではなく永遠に待機している感じ recv中に例外エラーも出ないのですが対処法ありますか?
1023 名前:979 mailto:sage [2022/08/28(日) 19:22:25.55 ID:ULmp/dD0.net] >>980 ありがとうございました
1024 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 20:31:29.47 ID:A7P8ZEj/.net] 40代未経験だがPython覚えればプログラマとして就職できる?
1025 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 20:42:53.44 ID:5PlXdxXB.net] 他の業務知識があれば出来るんじゃね? 研究者は無理やろ
1026 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 21:04:51.02 ID:K7gdf/So.net] 求人数はJavaとJavaScriptとPHPの方が多いのだわ PythonはM
1027 名前:L系の求人が多いことを考えると 未経験から最初に業界に首をねじ込むための言語としては あんまりおすすめせんのだわ [] [ここ壊れてます]
1028 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 21:05:19.00 ID:K7gdf/So.net] あ、985が立てるのか…
1029 名前:デフォルトの名無しさん [2022/08/28(日) 21:25:02.87 ID:0hsZj3lg.net] cudaで処理速度が20万倍っていうデータがあるんだけど みんなはどれくらいの速度が適性だと思う?
1030 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 22:33:49.95 ID:gOapjWvD.net] >>983 文系で未経験者の王道は、Ruby on Rails でポートフォリオを作って転職する YouTube で有名な雑食系エンジニア・KENTA の初心者向けRailsサロンとか、 RUNTEQ、東京フリーランスのデイトラなど かよちんchannel 【半年間使ってわかった】PythonのwebフレームワークDjangoを学ぶメリット・デメリット www.youtube.com/watch?v=783JIyyyxMk かよちんは未経験の大学生で、Railsでポートフォリオを作って就職した。 1年運用で働いたが、開発したかったので転職した。 転職先では、Django で開発している 彼女は、初心者にはDjangoよりも、Railsを勧めている 理系なら大学院数学科とか、 AWS Certified Machine Learning(機械学習) - Specialty の資格があれば強い
1031 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 23:01:16.78 ID:Uxqu4oWF.net] >>970 はアカン例やろ
1032 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 23:04:54.48 ID:n2t07jCF.net] 速ければ速いほどよい
1033 名前:デフォルトの名無しさん [2022/08/29(月) 14:20:05.87 ID:HM6f0MF8.net] q="太郎君の年齢は?" ans=12 ans2="十二" while True: try: text=int(input(q)) if text==ans: print("正解") elif text==ans2: print("正解") break except: print("不正解") これで12、十二とinputで入力すると正解と それ以外だったら不正解で最初に戻ると進行するようにしたいのですが 12以外だと全部不正解になってしまいます
1034 名前:デフォルトの名無しさん mailto:sage [2022/08/29(月) 14:31:09.09 ID:IoynIqHg.net] >>991 text=int(input(q)) でint型にキャストしようしてるんだから、例えば十二とか入れたら 文字列⇒数値へキャストできずに例外が発生してexcept:のルートに入っちゃうだろ
1035 名前:デフォルトの名無しさん mailto:sage [2022/08/29(月) 14:31:14.78 ID:lEy6aHnj.net] せめて質問文らしく書こうな。 text = int("十二") の結果が0だからだよ。 int()をなくして12も"12"に変更して、全て文字列で扱うようにすれば
1036 名前:デフォルトの名無しさん [2022/08/29(月) 14:35:17.73 ID:SW+mNQvs.net] 慣れないうちは簡単な書き方しよう ごちゃごちゃ詰め込まない while True: __print ('年齢は?') __ret = input() __if ret == 12: ____print('ok') ____break __elif ret == '十二': __else: ____print('no') if ret in [12, 12, '十二'] でもよい
1037 名前:デフォルトの名無しさん [2022/08/29(月) 14:38:41.17 ID:HM6f0MF8.net] >>992-993 ありがとうございます 自分の場合まずint()からしてよく理解してなかったです
1038 名前:デフォルトの名無しさん [2022/08/29(月) 14:42:50.09 ID:SW+mNQvs.net] うそ ret = input() ret in ['12', '12', '十二'] だわ 漢数字や全角ありうるならint型に変換しないほうがよいぬ
1039 名前:デフォルトの名無しさん mailto:sage [2022/08/29(月) 14:44:38.06 ID:eTTKQ396.net] >>994 慣れないうちは動作確認しよう エラーは詰め込まない
1040 名前:デフォルトの名無しさん [2022/08/29(月) 15:21:46.13 ID:XtVEyX62.net] 9+9+980
1041 名前:デフォルトの名無しさん [2022/08/29(月) 15:22:51.65 ID:XtVEyX62.net] うめ
1042 名前:デフォルトの名無しさん [2022/08/29(月) 15:23:06.50 ID:XtVEyX62.net] https://mevius.5ch.net/test/read.cgi/tech/1653540315/
1043 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 98日 16時間 57分 58秒
1044 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています