1 名前:デフォルトの名無しさん mailto:age [2021/06/09(水) 21:05:44.61 ID:zRBfpo4e.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(超初心者用) その53 https://mevius.5ch.net/test/read.cgi/tech/1615846784/ 次スレたては >>985 あたりが挑戦する。 ### END OF TEMPLATE ###
2 名前:デフォルトの名無しさん [2021/06/10(木) 09:09:42.55 ID:fGM4j9Qy.net] >>> a=10 >>> x=[a] >>> x [10] >>> a=20 >>> x [10] >>> a 20 >>> なんでxが[20]にならないの? そうなるにはどうすればいいの?
3 名前:デフォルトの名無しさん mailto:sage [2021/06/10(木) 09:52:24.45 ID:VzpKjmfX.net] 数は書き換え不可の型なんで無理。 a自体を書き換え可能なオブジェクト、例えば配列に入れ込めば、似たようなことは出来なくもないが… a = [1] x = [a] a = [2] x
4 名前:デフォルトの名無しさん [2021/06/10(木) 11:03:02.88 ID:smul9M+b.net] >>2 >>> a = [10] >>> x = [a] >>> x [[10]] >>> a[0] = 20 >>> a [20] >>> x [[20]]
5 名前:デフォルトの名無しさん [2021/06/10(木) 11:05:06.12 ID:smul9M+b.net] >>3 ちょっと何言ってるか判らない
6 名前:デフォルトの名無しさん mailto:sage [2021/06/10(木) 11:38:53.73 ID:VzpKjmfX.net] >>5 分かったから>>4 で訂正したんでしょ?
7 名前:デフォルトの名無しさん mailto:sage [2021/06/10(木) 19:34:32.89 ID:lViDT5hn.net] リストに何でも入るから 思いつきは失敗する
8 名前:デフォルトの名無しさん mailto:sage [2021/06/10(木) 21:26:49.02 ID:8fi5Ujsh.net] Pycharmの自動整形には参ったよ Javaで作ったやつコピペしたらいろいろとやってくれる リテラルなんか一文字消えてたり空白入れてみたり 実際走らせて気が付くレベル
9 名前:デフォルトの名無しさん mailto:sage [2021/06/12(土) 22:29:20.54 ID:0anF7A9v.net] openで開いたファイルオブジェクトをforループで読み込む場合、forにオブジェクトをそのまま添えて一行ずつ読み込めるとのことですが printするとオブジェクトがそのまま表示されてしまいます(_io.TextIOWrapper〜) みんなのpythonのとおりにやっているつもりですが何がいけないのでしょうか? python3.7.4を使用しています
10 名前:デフォルトの名無しさん mailto:sage [2021/06/12(土) 22:40:15.04 ID:GOzpxksd.net] open(a.txt) as f でfのメソッド使わないと fがラッパー そのプログラム見てみたい
11 名前:デフォルトの名無しさん mailto:sage [2021/06/12(土) 22:44:23.46 ID:0anF7A9v.net] >>10 printの引数が間違っていた単純ミスでした 引数に読み込んだ一行の変数でなくオブジェクトの方を指定していました ありがとうございました、またちょくちょく質問にくると思います
12 名前:デフォルトの名無しさん mailto:sage [2021/06/12(土) 22:44:48.20 ID:qlTYomdI.net] >>9 with open(‘path/to/file') as f: ____for line in f: ________print(line, end="")
13 名前:デフォルトの名無しさん mailto:sage [2021/06/12(土) 23:31:01.35 ID:0anF7A9v.net] >>12 ありがとうございます、無事解決しました
14 名前:デフォルトの名無しさん [2021/06/13(日) 02:45:35.12 ID:6oAiR6bp.net] コマンドライン上(bash)で任意のpythonファイルを実行した時に引数に 色を渡してその色で出力したいのですがどう書けばいいでしょうか? defの引数に(出力したい色, 出力したい文字列)を渡して 色々やってるのですが、詰んでいてどなたか教えてください。。 スッピン書きでは動作確認取れています。(print(pycolor.RED + word + pycolor.END)) class pycolor: BLACK = '\033[30m' RED = '\033[31m' GREEN = '\033[32m' YELLOW = '\033[33m' BLUE = '\033[34m' PURPLE = '\033[35m' CYAN = '\033[36m' WHITE = '\033[37m' RETURN = '\033[07m' #反転 ACCENT = '\033[01m' #強調 FLASH = '\033[05m' #点滅 RED_FLASH = '\033[05;41m' #赤背景+点滅 END = '\033[0m'
15 名前:デフォルトの名無しさん mailto:sage [2021/06/13(日) 06:19:52.00 ID:d/vYrCOI.net] VSCode や誰かのモジュールなどに、そういう拡張機能が無いの? Python の質問と言うよりも、端末の設定の話
16 名前:デフォルトの名無しさん [2021/06/13(日) 11:13:39.05 ID:6oAiR6bp.net] コマンドライン上プロンプトや補完機能の色付けとかはbashrcで全て管理してるので問題ない(色付け)です。 Pythonで便利な機能なスクリプト書いたので、そこから測れるか文字列を色付けする方法を知らなくて困ってました。
17 名前:デフォルトの名無しさん [2021/06/13(日) 13:08:19.84 ID:6oAiR6bp.net] >>16 です 補足でエディター上のシンタックスハイライトの設定ではなく コマンドライン上の標準出力に色つけしたいという意味です。
18 名前:デフォルトの名無しさん [2021/06/13(日) 13:15:17.58 ID:EhTxteT2.net] 黒魔術であるところのgetattrとか使えばラクに出来るんじゃね pycolor."BLACK" とかで呼び出したいんだろ でも普通に考えれば連想配列を使う
19 名前:デフォルトの名無しさん mailto:sage [2021/06/13(日) 13:31:22.64 ID:1nzveETz.net] 何がしたいのかは分かったけど 今度は何でできないのか分からない
20 名前:デフォルトの名無しさん [2021/06/13(日) 14:22:53.04 ID:6oAiR6bp.net] class hogehoge: # #色の変数リスト省力します # def printWithColor(self, color, word): print(color + word + END) で出力したいのですが、仮にcolorに赤となる【\033[31m】を展開できないんです。。 selfを消すと引数エラーが出てしまい詰みます。。
21 名前:デフォルトの名無しさん mailto:sage [2021/06/13(日) 14:27:14.41 ID:tn2YN+mq.net] windows10のコンソールはエスケープシーケンス効かないけどそれ? とエスパーしてみる
22 名前:15 mailto:sage [2021/06/13(日) 14:29:53.03 ID:d/vYrCOI.net] 漏れなら、VSCode の拡張機能・テーマなどで探すけど Terminal Color and Style Highlighting for VS Code https://github.com/TobiasFaller/vscode-vt100-syntax-highlight 「vscode terminal colors extension」「vscode terminal color theme」などで検索してみれば?
23 名前:デフォルトの名無しさん [2021/06/13(日) 14:40:04.09 ID:EhTxteT2.net] dic = { "BLACK": '\033[30m', "RED": '\033[31m', "GREEN": '\033[32m' } 連想配列にすればラクじゃん
24 名前:デフォルトの名無しさん mailto:sage [2021/06/13(日) 18:45:52.61 ID:1nzveETz.net] COLOR_DICT = { "BLACK": '\033[30m', "RED": '\033[31m', "GREEN": '\033[32m', } COLOR_END = '\033[0m' def printWithColor(color, word): print(COLOR_DICT[color] + word + COLOR_END) そして今度は何か縛り条件が出てくんだろ? 知ってる
25 名前:デフォルトの名無しさん [2021/06/13(日) 18:51:41.04 ID:6oAiR6bp.net] できました!! ご協力いただいた方ありがとうございます!! class pycolor: LIST = { "BLACK": '\033[30m', "RED": '\033[31m', "GREEN": '\033[32m', "YELLOW": '\033[33m', "BLUE": '\033[34m', "PURPLE": '\033[35m', "CYAN": '\033[36m', "WHITE": '\033[37m', "RETURN": '\033[07m', #反転 "ACCENT": '\033[01m',#強調 "FLASH": '\033[05m', #点滅 "RED_FLASH": '\033[05;41m', #赤背景+点滅, "END": '\033[0m' } def printColor(self, color, word): print(self.LIST[color] + word + self.LIST["END"])
26 名前:デフォルトの名無しさん [2021/06/13(日) 18:52:25.86 ID:QtPR3o33.net] 単純に出力するんじゃなくて、bashに解釈させないとダメなんじゃないの? echo -e "${python hoge.py}" こういうイメージ
27 名前:デフォルトの名無しさん mailto:sage [2021/06/13(日) 18:58:28.21 ID:fUoO1UdQ.net] import rich
28 名前:デフォルトの名無しさん [2021/06/13(日) 21:09:48.44 ID:EhTxteT2.net] こういうことを出来るのは知ってた Windowsでやったことがある C言語でターミナルで表示される文字をカラー表示させる : Serendip – Webデザイン・プログラミング https://www.serendip.ws/archives/4635 スネークゲーム vivi.dyndns.org/tech/games/snake.html
29 名前:デフォルトの名無しさん [2021/06/13(日) 21:47:36.32 ID:6oAiR6bp.net] >>27 このモジュールいいですね。 普段からshellscriptは書くのですが、pythonは触ったことがなく四苦八苦しておりました。。。 辞書検索 + 登録アプリでも作ろうかと思ってます。 無事出力出来ました。 みなさんありがとうございます! https://imgur.com/lYUlTXs
30 名前:デフォルトの名無しさん mailto:sage [2021/06/13(日) 21:59:35.61 ID:CH3wHZx1.net] 結局何につまづいていたのか 知りたいものだ
31 名前:デフォルトの名無しさん mailto:sage [2021/06/14(月) 01:45:14.00 ID:XgAL3CwN.net] 未だに分からんよな
32 名前:デフォルトの名無しさん [2021/06/14(月) 10:37:51.20 ID:TNhB31Ko.net] 色の問題じゃなくてpythonの使い方を知らなかっただけだ
33 名前:デフォルトの名無しさん mailto:sage [2021/06/14(月) 18:34:18.68 ID:4CwMrts3.net] pythonでAndroidアプリを作ろうとしたら、どんな環境がありますか? VSCodeで作れれば一番いいのですが、可能ですか?
34 名前:デフォルトの名無しさん [2021/06/14(月) 19:04:01.06 ID:YySv9lVP.net] 作って作れないことはないけど苦行の極み 1からkotlin覚える方がまだ早いまである
35 名前:デフォルトの名無しさん mailto:sage [2021/06/14(月) 19:07:21.04 ID:hx6guc/Q.net] 自分でやるならPyQTぐらい
36 名前:デフォルトの名無しさん mailto:sage [2021/06/14(月) 19:07:37.64 ID:4CwMrts3.net] >>34 どうもありがとうございます。 調べてもなかなかないのは、そういう理由ですか。 大人しくAndroid Studioで作ってみます。 あとは、Transcryptでも調べてみるか…
37 名前:デフォルトの名無しさん [2021/06/14(月) 19:13:48.59 ID:YySv9lVP.net] 凝ったの作らないならpythonで書いて変換系使ってもいいんだけど ちょっとでも調子乗った瞬間に動かなくなるでな 主観ではpyinstallerの3倍は気を使う
38 名前:デフォルトの名無しさん mailto:sage [2021/06/14(月) 19:58:22.16 ID:l+BKKraS.net] どんなのかにもよるけどandroidで動けばいいんならwebアプリ作ってブラウザで動かすて手もある それならflaskでもDjangoでもいける
39 名前:デフォルトの名無しさん mailto:sage [2021/06/15(火) 10:21:34.56 ID:XeCyZroF.net] Pythonでブラウザ内のJavaScriptが持つ変数の値を読みだすことは可能ですか?
40 名前:デフォルトの名無しさん mailto:sage [2021/06/15(火) 12:52:49.00 ID:NWTMJvL8.net] スクレイピングしたいのが自分で作ったwebアプリの値取得したいのか分からんけど スクレイピングならPhantomjsかSeleniumでなんとかなるやろ webアプリならそもそもjavascript経由せんと直接pythonで受け取ればいいのでは
41 名前:デフォルトの名無しさん [2021/06/15(火) 15:23:20.86 ID:dTl1pSLY.net] >>33 SL4A
42 名前:デフォルトの名無しさん [2021/06/15(火) 15:24:06.14 ID:dTl1pSLY.net] >>39 Brython
43 名前:デフォルトの名無しさん [2021/06/15(火) 16:48:04.29 ID:qJPYDaov.net] drop_indices = [1,3,4] l1 = [1,2,3,4,5] l2 = [a,b,c,d,e] l3 = [.....] l1〜3の要素数は同じです 指定indexを抜いたl1〜3が欲しいのですが一番高速なやつを教えてください 対象リストがひとつなら内包表記使うんですが複数リスト相手だとどうすればいいですか? new1, new2, new3 = [],[],[] for i,_ in enumerate(l1): _if i not in drop_indices: __new1.append(l1[i]) __new2.append(l2[i]) __new3.append(l3[i]) l1 = new1 l2 = new2 l3 = new3 しか分からないです… できれば外部モジュールなしでおながいします
44 名前:デフォルトの名無しさん [2021/06/15(火) 16:50:28.49 ID:qJPYDaov.net] なんで速いのが欲しいかというと 実際のl1〜l3が結構長くて この裁ち落とし処理も複数回呼ぶから 馬鹿にならない感じなのです
45 名前:デフォルトの名無しさん [2021/06/15(火) 16:54:06.26 ID:YClXDfsH.net] 内包表記3回書けばいいじゃん それとdrop_indicesはsetにする
46 名前:デフォルトの名無しさん [2021/06/15(火) 17:13:12.13 ID:yxrEcVUk.net] まあダサいのはわかるが内包3発かなあ…
47 名前:デフォルトの名無しさん mailto:sage [2021/06/15(火) 17:22:55.07 ID:E1asH+ju.net] アクセス時にdropするindexを考慮するとか。 def get_data(index): index += sum(1 for x in drop_indices if x < index) return l1[index] テストしてないです
48 名前:デフォルトの名無しさん mailto:sage [2021/06/15(火) 17:51:26.21 ID:ic6VniVo.net] >>43 新しくリストを生成せずに落としたい箇所をNoneにする方法で対応したら? drop_indicesの要素数、変更対象リストの要素数、変更対象リストの個数(3個固定?)の 値の取りうる範囲や複数回呼ぶ意味によってどういう実装が望ましいかは変わってくる
49 名前:デフォルトの名無しさん [2021/06/15(火) 17:58:15.90 ID:dTl1pSLY.net] >実際のl1〜l3が結構長くて 外部モジュール使わない訳がない 素直に numpy なり pandas なり使え
50 名前:デフォルトの名無しさん [2021/06/15(火) 18:14:18.09 ID:dILRy9B0.net] >>43 if i not in drop_indices ここの計算量は無視していの?
51 名前:デフォルトの名無しさん mailto:sage [2021/06/15(火) 18:37:20.39 ID:TWZkLO+/.net] inのところリストかセットかの違いだけの問題に一票
52 名前:デフォルトの名無しさん [2021/06/15(火) 18:37:58.95 ID:YClXDfsH.net] >>43 リスト1つに纏めるのはどうよ l=[(1,a,…),(2,b,…)..]
53 名前:デフォルトの名無しさん [2021/06/15(火) 18:39:02.16 ID:/tfRbTz3.net] 長いって言うんならlはミリオン dropは1000 あたりだろう もしかすると何らかのウイルスのDNA解析かもしれない するとl2,l3にはATとCGがペアになって入ってるかもしれない で、drop_indicesの逆順を生成してこうする あとは出たのを全部実測して早いの選ぶのがラク 多分リストのappendでのmalloc回数に左右される new1 = [x for x in l1] new2 = [x for x in l2] new3 = [x for x in l3] for i in drop_indices_invrese: _new1.pop(i) _new2.pop(i) _new3.pop(i)
54 名前:デフォルトの名無しさん [2021/06/15(火) 18:48:50.23 ID:dILRy9B0.net] for i in reversed(drop_indices): __l1.pop(i) __l2.pop(i) __l3.pop(i)
55 名前:デフォルトの名無しさん mailto:sage [2021/06/15(火) 19:02:46.80 ID:u8BqQmUG.net] dataarray=list(zip(l1,l2,l3)) new.append(dataarray[i])
56 名前:デフォルトの名無しさん mailto:sage [2021/06/15(火) 19:49:43.00 ID:KfvfPOTk.net] pythonではじめてwebsocketなる通信をして感動しているのですが クライアント側のjavascriptで socket.onmessage = function(e) {socket.send("test msg");}を設定したところ、 websocketサーバー側のログが0.5秒?くらい置きに延々と流れてくるのですが そういうものなのでしょうか? そのまま放置していると(無料鯖のため?か)websocketサーバーが止まりました。
57 名前:デフォルトの名無しさん mailto:sage [2021/06/15(火) 20:11:02.45 ID:BEepXhp5.net] サーバにデータを送信したらデータを返却するよう実装したんじゃないの?
58 名前:デフォルトの名無しさん mailto:sage [2021/06/15(火) 20:32:08.61 ID:KfvfPOTk.net] なるほど 参考にしたサイトが”なでしこ”→"python"で実装されていて よく見ていませんでしたが改めて見たところ 受信時→WSサーバ全返信 という行を発見しました。 今は制限中なので解けたらその行を消して試してみたいと思います ありがとうございました
59 名前:デフォルトの名無しさん mailto:sage [2021/06/16(水) 01:02:00.77 ID:baQ8tClP.net] Flask 頭の中でフラスコって読んでます?それともフラスク?
60 名前:デフォルトの名無しさん mailto:sage [2021/06/16(水) 07:11:03.38 ID:y19mleV6.net] ( ^ω^)フラシコ
61 名前:デフォルトの名無しさん [2021/06/16(水) 13:20:18.99 ID:mN5o8PJ8.net] >>43 python初心者です。G,C,Pの出現場所を記録したリストを... - Yahoo!知恵袋 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11244753631 >G,C,Pの出現場所を記録したリストを作りたい >s100 = ['P', 'C', 'G', 'P', 'G', 'C', 'C', 'P', 'G', 'G', 'P', 'C', 'G', 'C', 'P', 'C', 'G', 'P', 'P', 'C', 'C', 'G', 'G', 'P', 'C', 'C', 'P', 'G', 'C', 'G', 'P', 'P', 'C', 'C', 'G', 'C', 'P', 'G', 'C', 'C', 'G', 'P', 'C', 'P', 'G', 'G', 'C', 'P', 'G', 'C', 'P', 'C', 'G', 'C', 'P', 'P', 'G', 'C', 'G', 'C', 'P', 'G', 'P', 'C', 'C', 'G', 'P', 'G', 'C', 'P', 'C', 'C', 'G', 'P', 'G', 'C', 'P', 'C', 'G', 'P', 'C', 'P', 'P', 'G', 'C', 'G', 'C', 'P', 'G', 'C', 'C', 'P', 'G', 'C', 'P', 'P', 'P', 'P', 'P', 'C'] なーんか似たような問題が出回ってんな 同一人物か?
62 名前:デフォルトの名無しさん mailto:sage [2021/06/16(水) 14:58:53.27 ID:Si4/JcP/.net] 学校の課題なのでしょう
63 名前:デフォルトの名無しさん [2021/06/16(水) 15:22:04.18 ID:OiJaUQCk.net] 同じか……?
64 名前:デフォルトの名無しさん [2021/06/16(水) 17:14:18.46 ID:uJQ6HHCX.net] >>61 https://ideone.com/dlXO7M s100 = ['P', 'C', 'G', 'P', 'G', 'C', 'C', 'P', 'G', 'G', 'P', 'C', 'G', 'C', 'P', 'C', 'G', 'P', 'P', 'C', 'C', 'G', 'G', 'P', 'C', 'C', 'P', 'G', 'C', 'G', 'P', 'P', 'C', 'C', 'G', 'C', 'P', 'G', 'C', 'C', 'G', 'P', 'C', 'P', 'G', 'G', 'C', 'P', 'G', 'C', 'P', 'C', 'G', 'C', 'P', 'P', 'G', 'C', 'G', 'C', 'P', 'G', 'P', 'C', 'C', 'G', 'P', 'G', 'C', 'P', 'C', 'C', 'G', 'P', 'G', 'C', 'P', 'C', 'G', 'P', 'C', 'P', 'P', 'G', 'C', 'G', 'C', 'P', 'G', 'C', 'C', 'P', 'G', 'C', 'P', 'P', 'P', 'P', 'P', 'C'] pcg = {'P': [], 'C': [], 'G': []} for i, s in enumerate(s100): pcg[s].append(i) print(pcg)
65 名前:デフォルトの名無しさん mailto:sage [2021/06/16(水) 19:58:32.04 ID:aKJkflFH.net] s100のリストを作ることがG,C,Pの 出現場所を記録したリストを作ること s100があるならやることはない
66 名前:デフォルトの名無しさん [2021/06/17(木) 16:25:36.76 ID:JYSb8W8U.net] >>61 ある言語では echo@I. 'GCP'=/'PCGPGCCPGGPCGCPCGPPCCGGPCCPGCGPPCCGCPGCCGPCPGGCPGCPCGCPPGCGCPGPCCGPGCPCCGPGCPCGPCPPGCGCPGCCPGCPPPPPC' 2 4 8 9 12 16 21 22 27 29 34 37 40 44 45 48 52 56 58 61 65 67 72 74 78 83 85 88 92 1 5 6 11 13 15 19 20 24 25 28 32 33 35 38 39 42 46 49 51 53 57 59 63 64 68 70 71 75 77 80 84 86 89 90 93 99 0 3 7 10 14 17 18 23 26 30 31 36 41 43 47 50 54 55 60 62 66 69 73 76 79 81 82 87 91 94 95 96 97 98
67 名前:デフォルトの名無しさん mailto:sage [2021/06/17(木) 20:20:59.14 ID:1IveWNJ3.net] Pythonからmacのシェルコマンドを実行したいのですが引数(ファイル名)が空白と引用符と二重引用符を全て含む時失敗します 例: ファイルコピー) c1 = 'cp' c2 = '''s m'p".txt''' c3 = 'smp2.txt' p = subprocess.Popen([c1, c2, c3]) p.wait() 「'''s m'p.txt'''」「'''s mp".txt'''」のように引用符が一種類だと大丈夫でした こんなファイル名でも引数に設定できる方法はないでしょうか?
68 名前:デフォルトの名無しさん mailto:sage [2021/06/17(木) 21:10:17.24 ID:pC2mtQih.net] python&エスケープで検索 '\'\'s m\'p".txt\'\''
69 名前:デフォルトの名無しさん mailto:sage [2021/06/17(木) 21:59:44.44 ID:1IveWNJ3.net] >>68 ありがとうございます しかしエスケープしてもやはり同じように失敗します (コマンドのヘルプが出る) コマンド側が対応していないのかもしれないですね
70 名前:デフォルトの名無しさん mailto:sage [2021/06/18(金) 12:22:12.33 ID:+3NN9ESG.net] "''s m'p\".txt"
71 名前:デフォルトの名無しさん mailto:sage [2021/06/18(金) 14:47:10.03 ID:sJhYE6LE.net] python学習にあたりおすすめの参考書はございますか? 現在はpython1年生という参考書が終わりそうです。
72 名前:デフォルトの名無しさん [2021/06/19(土) 16:37:39.93 ID:zDrgWeBe.net] scikit-learn いいよね
73 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 00:15:38.15 ID:md8cXnFb.net] 1回目に実行した内容を記憶しておいて2回目に実行した時は処理を変えたいんですけどなんか良い方法ありますか? 具体的には暗証番号入力するプログラム作ってるんですけど暗証番号の入力に失敗したらロックかけて次に同じプログラム実行したらロックかかってますみたいな表示を出すようなことがやりたいです
74 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 00:18:01.10 ID:md8cXnFb.net] 例えばプラグファイル作るでも良いんですけど消されちゃうのであんまり意味ないしジェネレータみたいな感じで1回目の処理を記憶してくれたら良いんですけど
75 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 02:40:25.03 ID:rz6SzZvo.net] よい方法はないですね 問題の形式が変わっただけで、つまるところ「アプリケーションが保存したデータをユーザーに触られないようにしたい」でしかないので 素直にサーバーに認証回数を保存してください
76 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 11:50:00.52 ID:2DS4hVGx.net] そんなあー
77 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 11:53:15.30 ID:l9nv7DGg.net] バイナリ書き換え
78 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 11:59:36.84 ID:2DS4hVGx.net] なんかメモリー上にアクセスキーを暗号化してキャッシュして保存するみたいのできないんですか?
79 名前:デフォルトの名無しさん [2021/06/20(日) 12:10:20.32 ID:2jVSj7S9.net] それじゃ通電中保持するだけでね? 裏で保持プログラム動かしとくのと変わらんのでは
80 名前:デフォルトの名無しさん [2021/06/20(日) 16:54:13.54 ID:vSSpHRy4.net] memcached (server だけどローカルPCで動作させても良い) python-memcached あるいはレジストリ等 どちらも勝手に消されないように対策すること
81 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 18:34:49.45 ID:6g3RIy+6.net] >>78 そこまで来るとDBに情報保存した方が早い
82 名前:デフォルトの名無しさん [2021/06/20(日) 18:52:22.86 ID:fic9DRbI.net] メモリだろうが何だろうがローカルに暗号化して保存ってのが既に馬鹿馬鹿しい 金庫の上に鍵状態だって分かってるのか?
83 名前:デフォルトの名無しさん [2021/06/20(日) 19:36:06.66 ID:Lj9t65si.net] サーバーサイドなら既存のソリューション利用すりゃいいし ユーザーサイドならもう違法アクセスされてる時点でパスワードどころの騒ぎじゃないし 何故作るのか見えてこない
84 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 19:49:24.73 ID:akuykRB/.net] >メモリだろうが何だろうがローカルに暗号化して保存ってのが既に馬鹿馬鹿しい ここだけ切り取ればどこでも普通に行っていることだが?問題はその鍵をどう守るかであって。
85 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 19:53:01.24 ID:dLsN/Qk5.net] 余所のプロセスのメモリ覗く奴がいるからな
86 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 20:44:34.12 ID:bGnn/scA.net] 他人のプロセスを覗けるのは、そのPC・サーバーの管理者だけ ただし、サーバーが中国にあれば、中国政府に覗かれる。 そういう法律があるから
87 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 21:09:32.73 ID:4yWZiADR.net] __name__変数について教えてください。 __name__はグローバル変数でモジュール名が格納されていると思います。 ですが、参照をクラス名.__name__とするとモジュール名ではなくクラス名が取得できました。 これはモジュール名が格納されているものとは別の__name__を参照していると思うのですが、どこにある変数を参照しているのでしょうか。 dir(クラス名)としてもそのクラスは__name__変数を持っていないようでした。
88 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 22:02:33.00 ID:rz6SzZvo.net] 普通に `クラス名.__name__` の情報だよ `dir` は引数にもよるが、全ての属性を報告してくるわけではない https://docs.python.org/ja/3/library/stdtypes.html#special-attributes https://docs.python.org/ja/3/library/functions.html#dir
89 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 22:17:11.39 ID:wq1/6jdm.net] 特殊変数じゃ
90 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 22:39:48.64 ID:4yWZiADR.net] ありがとうございます。dirですべて確認できると思っていました。 ちなみにですが、関数について↓のような認識でした。 関数は__name__変数を持っていないが関数名.__name__でモジュール名が取得できる。 これはその上位であるグローバル変数の__name__を参照しているため。 これももしかしたら関数の持っている__name__を表示している可能性があるのでしょうか。
91 名前:デフォルトの名無しさん mailto:sage [2021/06/20(日) 23:49:53.27 ID:4yWZiADR.net] >>88 「クラス名.__name__」があるのであれば、 クラス内で__name__のようにして変数名だけで参照したときに、クラス名でなくモジュール名が返ってくるのは何故でしょうか…? 質問ばかりすみません、、訳が分からなくなってきました
92 名前:デフォルトの名無しさん mailto:sage [2021/06/21(月) 00:03:52.22 ID:jGdEx5NM.net] >>81 そうなるよね 最終的にはもうdbに保存してる毎回呼び出すで良いのではと思えて来た
93 名前:デフォルトの名無しさん [2021/06/21(月) 09:16:37.64 ID:b28M8oMP.net] クラスはスコープを作らない。 パッケージグローバル変数を読んでるだけだ。 別に__name__固有の話ではない。
94 名前:デフォルトの名無しさん [2021/06/21(月) 14:06:55.24 ID:os4CEfZ3.net] 何かの自動化ツールでpasswordを含むプロジェクトがあるとして githubにうっかりpasswordあげる事故を防止したい passwordは入力が面倒なのでローカルに保存しておきたい こんなとき正しいというか定石ってどんなのがある?
95 名前:デフォルトの名無しさん mailto:sage [2021/06/21(月) 15:17:05.73 ID:wnQSc3ge.net] 環境変数から入力することを徹底するのと コミットをgit-secretsみたいなので未然に防ぐことかな この辺はPythonとあまり関係ないけどね (どの言語でも守られるべき)
96 名前:デフォルトの名無しさん mailto:sage [2021/06/21(月) 15:52:44.89 ID:t1WQxVIN.net] pycriptとかで暗号化じゃダメなのか?
97 名前:デフォルトの名無しさん mailto:sage [2021/06/21(月) 15:55:22.95 ID:t1WQxVIN.net] 年収調べたいので三井住友bankのソースコードをgitにあげたいんですけどどうしたらバレませんか?^ ^
98 名前:デフォルトの名無しさん mailto:sage釣 [2021/06/21(月) 19:47:08.24 ID:pouVmMZT.net] torとghostsurf でggr
99 名前:デフォルトの名無しさん [2021/06/21(月) 20:00:00.26 ID:lEZW5cAy.net] try-except って遅くないけど、if-elseのような感じで動いてるわけじゃないのですか?
100 名前:デフォルトの名無しさん mailto:sage [2021/06/22(火) 01:12:59.15 ID:cAGj2bSl.net] >>87 ですがやっと理解できました。 __name__は単独で使ったときとオブジェクトに繋げて記述したときとで戻り値が違うのですね。 ありがとうございました。
101 名前:デフォルトの名無しさん [2021/06/22(火) 23:33:39.51 ID:c2+v+nSA.net] flaskからpostgres操作するライブラリから使うなんちゃらがインストールできない。 後から追加するライブラリが多いとなんだかんだで環境構築の難易度が上がるのでフルスタックのdjangoとかローコードで良いと思った・・・
102 名前:デフォルトの名無しさん mailto:sage [2021/06/23(水) 00:00:50.45 ID:8eXIGtIl.net] え?仮想環境入れてないの マジで?馬鹿じゃないの?
103 名前:デフォルトの名無しさん [2021/06/23(水) 07:48:46.56 ID:xA3/S05N.net] あるひとつのフォルダの中身が一定時間後に変わってないことを確認したいんだけど 中身全部ハッシュとって比較するしかないですか?
104 名前:デフォルトの名無しさん mailto:sage [2021/06/23(水) 11:16:11.54 ID:Ps8ud9Ds.net] ファイルのコンテンツ以外に信頼できる情報がないならそうするしかないんじゃない? コンテンツの更新が必ずst_mtimeの更新を伴うとか、制約が増やせるなら検証範囲は絞れそうだけど
105 名前:デフォルトの名無しさん mailto:sage [2021/06/23(水) 12:47:09.88 ID:Dblyz7cX.net] >>94 Ruby on Rails では、credentials という機能があって、 デフォルトで、credentials.yml.enc という暗号化されたファイルと、 その解読キー・master.key がある master.keyは、.gitignore に書かれているので、 credentials.yml.encを、そのままリポジトリに入れても大丈夫 credentials.yml.encを解読すると、 YML 形式で、AWS の設定などが書かれている # aws: # access_key_id: 123 # secret_access_key: 345
106 名前:デフォルトの名無しさん [2021/06/23(水) 13:08:26.79 ID:6jEPjWCz.net] OSによるけどフォルダの内容変わったら通知来るAPIがあるものもある
107 名前:デフォルトの名無しさん mailto:sage [2021/06/23(水) 13:15:55.78 ID:qxrmA+Nu.net] ruby関係ないし
108 名前:デフォルトの名無しさん [2021/06/23(水) 19:42:09.00 ID:Z7fMxROS.net] > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw
109 名前:デフォルトの名無しさん mailto:sage [2021/06/23(水) 20:49:57.20 ID:uwF5rJUS.net] ルビー基地外クソわろ 全てルビーの機能だと思ってんだろうなw
110 名前:デフォルトの名無しさん mailto:sage [2021/06/24(木) 01:11:07.96 ID:ZhZSLtyl.net] ドン・キホーテが世の中の全てを騎士道物語として捉えるようなモンだろ
111 名前:デフォルトの名無しさん [2021/06/24(木) 11:34:57.39 ID:H+zrwBY+.net] x = [1,5,3] n = 4 のとき [[1,2,3,4], [5,6,7,8], [3,4,5,6]] が欲しい どう書いたら簡潔ですか?
112 名前:デフォルトの名無しさん mailto:sage [2021/06/24(木) 11:44:52.69 ID:52QaJPvq.net] x2 = [[j for j in range(i,i+n)] for i in x]
113 名前:デフォルトの名無しさん [2021/06/24(木) 12:17:24.20 ID:H+zrwBY+.net] rangeそう使えるの知らなかった…ありがとう
114 名前:デフォルトの名無しさん [2021/06/24(木) 12:29:16.33 ID:d0WSinGu.net] >>110 x=[1,5,3] n=4 y=[list(range(i, i + n)) for i in x]
115 名前:デフォルトの名無しさん mailto:sage [2021/06/24(木) 12:36:29.47 ID:52QaJPvq.net] rangeはそのままでいいのか。勉強になった。
116 名前:デフォルトの名無しさん mailto:sage [2021/06/24(木) 19:03:03.87 ID:Kxz6ONml.net] みんなあたまいいなあ 俺馬鹿だからそんなかっこいいコード思いつかないなあ 参考になるわ [list(range(x[i], x[i]+n)) for i in range(n-1)]
117 名前:デフォルトの名無しさん mailto:sage [2021/06/24(木) 19:09:37.98 ID:Kxz6ONml.net] >>114 が一番綺麗だと思う 模範解答やね
118 名前:デフォルトの名無しさん mailto:sage [2021/06/24(木) 19:15:27.36 ID:OtDRXCUu.net] 問題集でもやっとんのけ
119 名前:デフォルトの名無しさん [2021/06/24(木) 20:26:31.26 ID:cBTjhTLo.net] 問題集ていや先日 要素数(size)と折り返し(rep) の引数を取って 例えばsize=5, rep=2のとき 1_1 1_2 2_1 2_2 3_1 って右がrepするたびに左が増えるやつ欲しいって言われたんだけど 一瞬まったく意味わからんくて笑った。死ぬかと思った
120 名前:デフォルトの名無しさん mailto:sage [2021/06/24(木) 20:35:56.55 ID:76Eu+yJ9.net] forの二重ループで回せばいいだけじゃないの普通に…
121 名前:デフォルトの名無しさん [2021/06/24(木) 20:42:19.45 ID:H+zrwBY+.net] size=10 rep=3 for i in range(size): __l=(i//rep)+1 __r=(i%rep)+1 __print(l, r) こうか 算数怖い
122 名前:デフォルトの名無しさん mailto:sage [2021/06/24(木) 20:48:54.16 ID:ev/ZN6Zz.net] えw それそんな難しいことしなきゃダメなのw
123 名前:デフォルトの名無しさん mailto:sage [2021/06/24(木) 20:50:25.36 ID:ev/ZN6Zz.net] これじゃダメなんけw size=10 rep=3 [str(i)+'_'+ str(j)for i in range(1, size+1) for j in range(1, rep+1)][0:size]
124 名前:デフォルトの名無しさん [2021/06/24(木) 20:54:54.61 ID:Uf6wilZL.net] 119を123で書いてきたら俺は殴る
125 名前:デフォルトの名無しさん mailto:sage [2021/06/24(木) 21:39:25.89 ID:Xj45HSPz.net] def enumrep(size,rep): _i=0 _b=0 _while True: __b+=1 __for a in range(rep): ___i+=1 ___yield str(b)+'_'+str(a) ___if i>=size: ____return True for i in enumrep(10,2): _print(i)
126 名前:デフォルトの名無しさん mailto:sage [2021/06/24(木) 21:44:30.95 ID:PG/lAwcj.net] コードは長くなるけどgenとtake(=islice)を分けたほうがわかりやすいしメンテしやすい
127 名前:デフォルトの名無しさん mailto:sage [2021/06/24(木) 21:48:35.74 ID:PG/lAwcj.net] def gen_items(rep): __if rep < 1: ____return __i = 1 __while True: ____for j in range(rep): ______yield f"{i}_{j + 1}" ____i = i + 1 for x in islice(gen_items(3), 10): __print(x)
128 名前:デフォルトの名無しさん [2021/06/24(木) 23:27:17.31 ID:2xxS1rw4.net] pathlibのiterdir()でwindowsの$recyclebinやらsystem volume infomationやらといった 隠しフォルダをスキップする方法はありますか?
129 名前:デフォルトの名無しさん [2021/06/25(金) 08:30:16.10 ID:5m+oUY25.net] 別に内包表記でもインデントさせていいんですよ
130 名前:デフォルトの名無しさん mailto:sage [2021/06/25(金) 09:19:24.73 ID:bhmn+MFf.net] お前らもっと内包表記とラムダ使っていこうぜ!
131 名前:デフォルトの名無しさん [2021/06/25(金) 09:50:24.98 ID:gA4+2U8+.net] >>128 突然難易度上げるな くだすれだぞ ていうか俺もこれ以外どうやればいいか分からん import pathlib import tkinter.filedialog as tkfd import ctypes from os import stat from stat import ( _FILE_ATTRIBUTE_HIDDEN as H, _FILE_ATTRIBUTE_SYSTEM as S, _FILE_ATTRIBUTE_READONLY as R) p = tkfd.askdirectory() for i in pathlib.Path(p).iterdir(): _attrs = stat(i).st_file_attributes _check = (bool(attrs&H), bool(attrs&S), bool(attrs&R)) _if any(check): __print(i, check)
132 名前:デフォルトの名無しさん mailto:sage [2021/06/25(金) 09:50:43.51 ID:eijvgSCB.net] 嫌どす
133 名前:デフォルトの名無しさん mailto:sage [2021/06/25(金) 13:35:46.23 ID:hgpS2vwl.net] 機械学習の数学各分野て分野は紹介されてるけど結局どこまで勉強すればいいのかわからん 例えば線形代数を対角化までやったけどLU分解とか初学者向けの本には乗ってないやつも勉強せんなんの?
134 名前:デフォルトの名無しさん [2021/06/25(金) 14:28:27.22 ID:Wd+wOk9Z.net] 行列計算のアルゴリズムまで自分で実装(特にpython)することは無いだろう 使い方だけ知ってればOKなパターン
135 名前:デフォルトの名無しさん mailto:sage [2021/06/25(金) 15:35:46.76 ID:vlMp8RRH.net] Ruby で作ってみた numbers = [ 1, 5 ] size = 3 # to_a で、範囲を配列化する p results = numbers.map{ |init_num| ( init_num...init_num + size ).to_a } #=> [[1, 2, 3], [5, 6, 7]] #-------------- size = 3 rep = 2 # 2次元配列 results = ( 1..size ).map do |left_num| ( 1..rep ).map{ |right_num| "#{ left_num }_#{ right_num }" } end puts results 出力 1_1 1_2 2_1 2_2 3_1 3_2
136 名前:デフォルトの名無しさん [2021/06/25(金) 16:26:01.91 ID:Wd+wOk9Z.net] どこの誤爆よ
137 名前:デフォルトの名無しさん mailto:sage [2021/06/25(金) 17:04:03.61 ID:xue6gzfb.net] このルビキチはシェルスクリプトスレにも書き込んでたガチの基地外なのです
138 名前:デフォルトの名無しさん mailto:sage [2021/06/25(金) 17:06:47.97 ID:7PD1ckkM.net] 無差別爆撃なので誤爆じゃない Ruby信者のようで実質Rubyアンチな異常者によるテロ行為
139 名前:デフォルトの名無しさん mailto:sage [2021/06/25(金) 17:58:50.13 ID:k0/VHtDX.net] ム板に来て本当にrubyが嫌いになったから、彼の試みは完全に成功している
140 名前:デフォルトの名無しさん [2021/06/25(金) 18:47:16.58 ID:SMv7sy5/.net] リアル職場ではコミュニケーション取れているのかが気になる
141 名前:デフォルトの名無しさん mailto:sage [2021/06/25(金) 19:18:02.12 ID:X8cOj63K.net] 無職じゃね?
142 名前:デフォルトの名無しさん [2021/06/25(金) 19:23:44.62 ID:RM0Dpgjh.net] >>119 f=: 4 : 0 >: ( x , y ) #: i. x ) ___5 f 2 1 1 1 2 2 1 2 2 3 1
143 名前:デフォルトの名無しさん mailto:sage [2021/06/26(土) 08:37:57.19 ID:92XkTmJ1.net] 機械学習のお勉強始めたは 中卒のおいらにはそもそも微分とかきいたことなさすぎてつらひ
144 名前:デフォルトの名無しさん mailto:sage釣 [2021/06/26(土) 10:07:13.38 ID:TDiYD9T2.net] ま九十九里浜の海岸線の長さはいくつだい?
145 名前:デフォルトの名無しさん mailto:sage [2021/06/26(土) 11:40:46.23 ID:IEuGypw6.net] ∞
146 名前:デフォルトの名無しさん mailto:sage [2021/06/26(土) 11:54:39.83 ID:aONBfxlZ.net] 中卒で機械学習て何ができるんや フレームワーク使うのも指示された通りにしてるだけで何の値操作してるのか理解できなさそう
147 名前:デフォルトの名無しさん [2021/06/26(土) 12:08:13.88 ID:UhEO8DM5.net] つかまず前処理で止まるやろ
148 名前:デフォルトの名無しさん mailto:sage [2021/06/26(土) 13:40:25.05 ID:BFpvs59u.net] >>146-147 中卒馬鹿にしやがって許さねえからな
149 名前:デフォルトの名無しさん mailto:sage [2021/06/26(土) 14:11:37.50 ID:cKS/UcnU.net] その意気で見返してみろ
150 名前:デフォルトの名無しさん mailto:sage [2021/06/26(土) 17:03:03.29 ID:TqdTR7t2.net] 算数の復習から始めたほうがいい、マジで
151 名前:デフォルトの名無しさん mailto:sage [2021/06/26(土) 19:22:30.07 ID:dvpuBJnF.net] 今微分の勉強して傾きと切片っていうの理解したわ 馬鹿にしたやつ覚悟してろよ9m
152 名前:デフォルトの名無しさん mailto:sage [2021/06/26(土) 20:11:16.22 ID:LeOl9KfK.net] >>151 次は積分だな その前にイプシロン-デルタかもしれんが
153 名前:デフォルトの名無しさん [2021/06/26(土) 20:42:50.01 ID:UhEO8DM5.net] def 雇用(people): ..if people >= 高卒: ....if people >= 実務経験:
154 名前:デフォルトの名無しさん mailto:sage [2021/06/26(土) 21:03:33.77 ID:6sjjJ5as.net] MIT も、Julia へ行ってる。 大学院数学科とかじゃないと採用されない だから皆、文系はRuby on Rails へ行く。 英語さえ出来れば、文書を読めるから
155 名前:デフォルトの名無しさん [2021/06/26(土) 21:05:37.21 ID:R2OdYklz.net] >>154 スレタイも読めないお前が何を言っているんだ ギャグセンスは一流だな
156 名前:デフォルトの名無しさん mailto:sage [2021/06/27(日) 10:27:42.26 ID:3P9Fscem.net] >>153 高卒以下のコード書くなよw def 雇用(people): ..if people.academicHistory>= 高卒 and people.skill >= 実務経験: … だろ
157 名前:デフォルトの名無しさん [2021/06/27(日) 11:03:04.37 ID:nIt5B8/A.net] お前こそ中卒だろ。なんだよHistoryって。 TitleまたはDegreeだろ。
158 名前:デフォルトの名無しさん mailto:sage [2021/06/27(日) 11:11:11.64 ID:dEiG0OR8.net] バカはこれだから… title は肩書、degree は学位でお前みたいな高卒以下に関係ない属性なw
159 名前:デフォルトの名無しさん mailto:sage [2021/06/27(日) 12:26:23.00 ID:HfXxTqRR.net] 愚かなギャグのせいでRubyガイジの方が優れている一面を見せてしまった
160 名前:デフォルトの名無しさん mailto:sage [2021/06/27(日) 12:30:57.00 ID:d7u3fSB/.net] 今どきのPythonistはそういうのはまとめてAIにぶち込んでなんとなくいい感じに判断する
161 名前:デフォルトの名無しさん mailto:sage [2021/06/27(日) 12:43:14.16 ID:G7M856dZ.net] そもそも AI ω は意味なんて理解していない
162 名前:デフォルトの名無しさん mailto:sage [2021/06/27(日) 12:52:09.26 ID:ZQs2/men.net] お前らPythonicなコードを書けよPythonicなコードを
163 名前:デフォルトの名無しさん mailto:sage [2021/06/27(日) 12:54:10.14 ID:ZQs2/men.net] 微分積分なんて概要を理解すればいいんだよ 別に包丁がなんで出来ていてどういう歴史があるかなんて知る必要はなくて俺らに必要なのは包丁で野菜を切るただそれだけなのだから
164 名前:デフォルトの名無しさん mailto:sage [2021/06/27(日) 15:37:00.86 ID:8YEnojkX.net] まあわざわざ極限使って計算することはなくて形式微分か形暗記したものを手計算なら使うしpcなら数値計算だもんな 微積の傾きと面積の関係、物理単位なら乗数が増減することが分かってれば困ることはない
165 名前:デフォルトの名無しさん [2021/06/27(日) 16:35:57.54 ID:QiH1o3Ks.net] 楕円の面積は簡単に求められるのに 外周の長さを求めようとすると結局積分が必要になる。 長いほうの直径が27、短いほうの直径が6の楕円の場合 外周の長さを.以下2桁まで求めるには実際にはどうやる?
166 名前:デフォルトの名無しさん mailto:sage [2021/06/27(日) 17:00:31.72 ID:HfXxTqRR.net] そーゆーのは高校生の甥っ子にでも出題してマウントってろ白痴
167 名前:デフォルトの名無しさん mailto:sage釣 [2021/06/27(日) 17:47:59.81 ID:IGTucaq9.net] degree って普通、象限の事かと思っていたわ
168 名前:デフォルトの名無しさん [2021/06/28(月) 04:45:13.70 ID:mjwjNK+P.net] pipenv installで環境構築した後に行う pipenv shellって何なんですか?? 構築した環境以外にもcdできたりrmしたcpしたり よく意味がわからないのですが。。。
169 名前:デフォルトの名無しさん mailto:sage [2021/06/28(月) 09:57:17.80 ID:/8Q9yNC8.net] virtual envをactivateした状態のshellを起動するコマンド pipenv -hでhelp見て
170 名前:デフォルトの名無しさん mailto:sage [2021/06/28(月) 10:52:04.76 ID:pZ6wi+C3.net] pythonって便利なんだな https://twitter.com/nixcraft/status/1408771876848123904 (deleted an unsolicited ad)
171 名前:デフォルトの名無しさん mailto:sage [2021/06/28(月) 11:40:56.85 ID:vg7m4LKe.net] それリツイートで見たw
172 名前:元気な仔馬 mailto:sage [2021/06/28(月) 11:46:07.23 ID:3eu2Zryg.net] ラズパイ4でpythonを始めたブログラム初心者です。 python 1年生という書籍の例として入っている文、 PIL.ImageTkというモジュールで悩んでいます。 自分が使っている環境ではこのモジュールが入ってなく、前に進めません。 バージョン違いのものでも動く、これの代わりになるモジュールが ありましたら、 教えていただけませんか?
173 名前:デフォルトの名無しさん mailto:sage [2021/06/28(月) 12:13:01.95 ID:/8Q9yNC8.net] >>172 なければインストールしなよ https://pillow.readthedocs.io/en/stable/installation.html
174 名前:デフォルトの名無しさん mailto:sage [2021/06/28(月) 12:24:21.25 ID:XSoi24Ug.net] >>170 それインスタンスがリークしないか?
175 名前:デフォルトの名無しさん mailto:sage [2021/06/28(月) 12:33:10.14 ID:9lV5OqBm.net] from iZoo import encho
176 名前:元気な仔馬 mailto:sage [2021/06/28(月) 14:40:47.37 ID:3eu2Zryg.net] >173 ありがとうございます しかし試してみましたがインストール中にエラーになったっぽいです… 状況は変わらず…
177 名前:デフォルトの名無しさん mailto:sage [2021/06/28(月) 14:52:36.48 ID:lNsRTxVu.net] いや状況は変わってるだろ エラーになったから諦めるんじゃなく、どういうエラーか確認して対処すればいいじゃん だいたいのエラーはエラー文そのままでググれば解決法が出るし、 出ない場合はここにどんな環境で何がしたくて何をしてどうなったかとエラー全文貼れば教えてくれる人も居るでしょ
178 名前:デフォルトの名無しさん [2021/06/28(月) 16:46:51.40 ID:V/YMeLZd.net] .foo.xxx_var .foo.foo.yyy_var この二種類の形式の文字列があるとき xxxとyyyを正規表現で抜くにはどう書いたらいいですか?
179 名前:デフォルトの名無しさん [2021/06/28(月) 16:55:20.40 ID:JcAv6JCW.net] .+[^\.]+\_var
180 名前:デフォルトの名無しさん mailto:sage [2021/06/28(月) 17:18:57.12 ID:quG4wdoj.net] 正規表現のスレで、聞いた方がよい
181 名前:デフォルトの名無しさん [2021/06/28(月) 18:11:49.59 ID:V/YMeLZd.net] >>180 ああ正規表現スレってあるんですね 失礼しました
182 名前:デフォルトの名無しさん mailto:sage [2021/06/28(月) 20:34:53.02 ID:kbwv0g/L.net] 正規表現て役に立つけど電話番号とかメアドみたいなよく使われるやつじゃないと他人が見たときわけ分かんないし自分も後で見たらわけ分かんなかったりするよな よくスクレイピングするやつとか正規表現使う頻度にもよるんやろうけど
183 名前:デフォルトの名無しさん mailto:sage [2021/06/28(月) 20:54:22.62 ID:uYdbYpLI.net] 共感得てポンコツなのは自分だけでは無いと安心したいのかな? 余程複雑長大なものでも無ければ解釈に大して手間取らないと思うが
184 名前:デフォルトの名無しさん mailto:sage釣 [2021/06/28(月) 21:23:46.27 ID:gXPrfTZo.net] >>172 つ Google colab
185 名前:デフォルトの名無しさん mailto:sage [2021/06/28(月) 22:13:39.69 ID:pZ6wi+C3.net] >>182 電話番号やメアドこそ、正しく正規表現で表そうとするとわけがわからんくなるぞ
186 名前:デフォルトの名無しさん mailto:sage [2021/06/28(月) 23:28:31.01 ID:cZa6zFVz.net] メアドはともかく電話番号で悩むところあるか?
187 名前:デフォルトの名無しさん [2021/06/28(月) 23:56:15.26 ID:G75AEbDR.net] それこそ正規表現のスレ行ってください
188 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 00:11:40.44 ID:SX3qNymL.net] ところで俺の正規表現を見てくれ
189 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 00:48:34.27 ID:SOQ8GKtA.net] 誰にもmatchしないソレのことか?
190 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 01:16:00.60 ID:wJmyktbp.net] もう^.*$でいいだろ面倒臭い
191 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 06:09:40.51 ID:tBEGF5OC.net] >>186 今また変わってるけど、July 06, 2011時点だとこんな感じ blog.livedoor.jp/nipotan/archives/51644244.html
192 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 06:42:38.70 ID:3+LFbHws.net] >>191 パズルとしてならいいけど実務でやってるなら単なるバカ
193 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 07:15:42.92 ID:tBEGF5OC.net] 「正しく正規表現で表そうとするとわけがわからんくなる」が伝わらんかったみたいだったからサンプル出したけど、まぁこのレベルの精度が必要なら正規表現じゃやらんわなw
194 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 07:41:10.41 ID:MxyOwUyS.net] >>191 厳密に言えば「総務省公表のデータにマッチする正規表現」か。 そこに含まれていない範囲だって未割当の電話番号に違いないでしょ。
195 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 07:46:39.05 ID:kJlgCPwb.net] 電話番号と同じパターンの別の番号が出てきたらどうすんだろ 気づかず置換して事故るんかな
196 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 07:47:50.85 ID:3NHpnvwy.net] 正規表現でウダウダ言う奴ってこういうアスペ的なバカばっか
197 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 08:29:49.41 ID:tBEGF5OC.net] >>194 ゆるいバリデーションなら、総務省のやつだろうね アレは楽 リンクのやつは多分各事業者の情報も加味してある このレベルで実装するなら、メンテが必要なんで、継続的な更新のあるライブラリが必須だね 個人的にはやりたくないw 他言語の資料だけど、これが面白かった https://speakerdeck.com/memory1994/li-jie-siteokubeki-php-falsebaridesiyon?slide=78
198 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 08:30:57.71 ID:tBEGF5OC.net] ごめん リンク間違ったw https://speakerdeck.com/memory1994/li-jie-siteokubeki-php-falsebaridesiyon?slide=74
199 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 08:55:46.98 ID:1h4nclxf.net] 今日は中卒の俺が単回帰分析覚えたぞ? バカにしたやつ震えるがいいw
200 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 09:05:44.12 ID:tBEGF5OC.net] >>199 お前がどんなに頑張って俺に追いつこうとしても、俺のいた場所にお前がついたときには俺はお前の少し前に進んでる 永遠に追いつけないんだ! byゼノン
201 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 12:30:53.94 ID:S91QebJL.net] >>200 あいたたw
202 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 17:50:23.25 ID:SOQ8GKtA.net] >>200 こういう引用する方が中卒、いや中坊っぽい
203 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 19:22:41.33 ID:vRfx68y2.net] なんかたまに名言でドヤって来るやついるけどダサいよな 内容より誰が言うかやからな あとゲームとか漫画の引用は中学生までや
204 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 19:36:36.48 ID:1h4nclxf.net] やれやれだぜ
205 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 20:19:27.59 ID:eB1TyNRb.net] まんがじゃないよ…
206 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 21:30:03.66 ID:MxyOwUyS.net] そういわれると「ゼノンのパラドックス」ってすごい厨二ネーミングに見えてきた。。。
207 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 21:44:38.04 ID:1h4nclxf.net] いやダイクストラのアルゴリズムのが厨二っぽい
208 名前:デフォルトの名無しさん mailto:sage [2021/06/29(火) 21:54:10.56 ID:MxyOwUyS.net] どっちが上とか言い出したら「フェルマーの最終定理」
209 名前:デフォルトの名無しさん [2021/06/29(火) 23:42:32.20 ID:hw58oJ3l.net] 次元の呪い
210 名前:デフォルトの名無しさん mailto:sage [2021/06/30(水) 00:19:49.96 ID:lUxCO1IZ.net] これは何歳までだとか自分がどう見られるかに拘ってる内はまだまだガキ
211 名前:デフォルトの名無しさん mailto:sage [2021/06/30(水) 04:50:10.49 ID:dkF+z6Xg.net] 飛んでる矢を止めてるのは俺かDioか、それが問題だ byゼノン >>204 中卒、おもろいなw
212 名前:デフォルトの名無しさん mailto:sage [2021/06/30(水) 07:48:27.13 ID:D9KqFPaB.net] httpサーバー立てるときに @route('/') def index(): _pass @route('hoge') def hoge(): _ pass という風に分けるのですが index()ではimport sample1を hoge()ではimport sample2をしたいとき、 一番上(defの外)にまとめてimport sample1,sample2とするのかそれとも index(),hoge()の中それぞれでimportした方がいいのか 何か慣習はあるのでしょうか?
213 名前:デフォルトの名無しさん mailto:sage [2021/06/30(水) 08:54:34.29 ID:fR3i2rdt.net] httpサーバーであるという情報とかデコレーターが付いてるのとかが質問にどう関わるのかよく分からんが、sample1モジュールはindex関数だけから、sample2モジュールはhoge関数だけから使われるケースで何処でimportするか、ということなら、俺の場合 index()やhoge()が__name__ == '__main__'が真であるときにのみ呼ばれるならindexやhogeの中で、そうでないならソースの先頭でimportしてる つまり、そのソースが単体で実行されるときにしか使わないモジュールは、モジュールとして他のコードにimportされるときにはimportしたくない、という貧乏根性
214 名前:デフォルトの名無しさん mailto:sage [2021/06/30(水) 09:39:57.08 ID:QIg09vqW.net] >>212 特別な理由がない限りは全て先頭でimportしたほうがいい importは重い処理だしエラーを発生させやすいので、なるべく起動時に済ませてしまった方がアプリの挙動が安定する 毎回実行される訳ではないが、初回実行のタイミングの問題だ Webアプリで特定のアクションが呼ばれたときにエラーで落ちるとか初回実行時だけやたら遅いとかデバッグするの嫌でしょ 逆に、必要になったときに初めて読み込むことで起動時間やメモリ消費を抑えるテクニックもあるが、役に立つのは分散処理フレームワークなど極めて特殊なケースだ
215 名前:デフォルトの名無しさん [2021/06/30(水) 10:47:08.67 ID:x9tVpfG6.net] そもそもめったに使わない(まったく使わない)機能のために 依存関係増やしたくないしな
216 名前:デフォルトの名無しさん mailto:sage [2021/06/30(水) 21:12:10.78 ID:iVkkZXbL.net] Ruby のrequire は、同じファイルを1回しか読み込まないので、簡単
217 名前:デフォルトの名無しさん mailto:sage [2021/06/30(水) 22:30:32.84 ID:EN4MKAxN.net] Rubywww
218 名前:デフォルトの名無しさん mailto:sage釣 [2021/06/30(水) 22:57:27.70 ID:C441gc0U.net] RubyとMindはオワコン。
219 名前:デフォルトの名無しさん mailto:sage [2021/06/30(水) 23:06:38.74 ID:N62KG6DK.net] 利用率ではもはやPerlとどっこいなRuby
220 名前:デフォルトの名無しさん [2021/07/01(木) 09:12:46.98 ID:47t/afFm.net] string = '<001>_<9>' size = 3 から strings = ['001_9', '002_10', '003_11'] 文字列中のタグ部分を任意の長さだけカウントアップした配列が欲しい def multiple_counting(size, string): _pat = re.compile(r'<(\d+)>') _tags = pat.findall(string) #カウント作成 _counters = [] _for tag in tags: __counters.append([str(int(tag)+1).zfill(len(tag)) for i in range(size)]) #書き換え _strings = [string]*size _for counter in counters: __strings = [pat.sub(count, string, 1) for count, string in zip(counter,strings)] _return strings なんか便利な関数とか、もっとシュッとしたやり方とかあると思うんですが 知らないので教えてください.あと再帰関数使いたかったけど挫折しました
221 名前:デフォルトの名無しさん [2021/07/01(木) 09:53:11.45 ID:n7sulsnm.net] 置換マップみたいなのなかったっけ
222 名前: [2021/07/01(木) 10:36:03.88 ID:Ipwd3DUh.net] >>220 [re.sub(r'<([0-9]+)>', lambda m: f'{{:0{len(m[1])}}}'.format(int(m[1]) + i), string) for i in range(size)]
223 名前:デフォルトの名無しさん [2021/07/01(木) 18:34:44.42 ID:47t/afFm.net] >>222 ありがとうございます
224 名前:デフォルトの名無しさん mailto:sage [2021/07/01(木) 19:00:33.74 ID:s31eTWYH.net] 今日は重回帰分析勉強したわ スカラーベクトル行列転置をやったけど逆行列って言うのがよくわからねえわ そろそろ中卒の俺の頭もセグメンテーションエラーだわ じゃあの
225 名前:デフォルトの名無しさん mailto:sage [2021/07/01(木) 19:55:12.97 ID:m9mL4lnU.net] >>224 誰もお前に興味ないから無駄な報告は要らんぞ
226 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 08:18:08.33 ID:tPTf4bIR.net] >>225 お前俺に興味津々だな また来るわじゃあの
227 名前:デフォルトの名無しさん [2021/07/02(金) 08:46:35.95 ID:9LnHCrkz.net] >>224 さきに高校数学と線形代数やれ
228 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 13:03:57.17 ID:cZhhmJXr.net] >>227 もちろんやったわ スカラーベクトル行列は理解したわ
229 名前:デフォルトの名無しさん [2021/07/02(金) 13:17:37.81 ID:9LnHCrkz.net] それで逆行列が分からんのに何を理解したというねん
230 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 13:26:09.60 ID:m4gnkicM.net] はい出ましたw きちんと理解してないから分からないとかいう奴www
231 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 13:32:26.18 ID:ILBLMl6W.net] やつ
232 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 17:57:31.72 ID:Xm/bZCrF.net] value: int みたいに型指定したほうがいいの?
233 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 21:23:10.28 ID:SG4SXaSP.net] Python処理系は今のところdataclassのフィールド生成くらいにしかタイプヒントを利用しない それ以外のタイプヒントは完全にタイプチェッカー向けで、タイプチェッカーを利用しないならつける意味はない
234 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 21:53:09.57 ID:QH8xfbBh.net] 逆行列のどこが分からないのかな AB=I Iは単位行列 のときBはAの逆行列
235 名前:デフォルトの名無しさん [2021/07/02(金) 22:17:24.51 ID:E59Amcuv.net] 逆元が分からんのだろ 行列やってる段階の奴が群知ってるとは思えないが
236 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 09:39:19.49 ID:UqPPpbRy.net] >>234 いや単位行列は斜めに1があるやつで 逆行列は普通の行列に逆行列をかけると単位行列になるって言うのはわかるんだよ ただその後これはスカラーですだのこれはベクトルですだの出てきて記号いっぱいになると途端に訳が分からなくなるのだよ分かる? 行列積があーだのこーだの
237 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 09:40:33.15 ID:UqPPpbRy.net] >>235 偉そうなやつだなあ 友達いないだろお前?
238 名前:デフォルトの名無しさん [2021/07/03(土) 11:01:50.13 ID:gq7PWL9B.net] >>236 馬鹿には無理
239 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 11:06:01.41 ID:MyiFvpsW.net] おっさんは行列を高校でやってるからなあ
240 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 11:53:08.74 ID:ENhcG6bL.net] 内積、外積
241 名前:デフォルトの名無しさん [2021/07/03(土) 12:45:29.69 ID:WO4lFPcp.net] >>236 >分かる? とか言われてもその気持ちは分からんなぁ 普通に行列やって普通に単位取れたってことは特に苦労しなかったんだから、 ワケが分からなくなることがなかった 記号が一杯でも初見で大丈夫だったからお前の気持ちは一切分からん
242 名前:デフォルトの名無しさん mailto:sage釣 [2021/07/03(土) 14:35:42.16 ID:ZeViGhZj.net] 関流に弟子入りするべき
243 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 16:40:21.53 ID:mObkgdSa.net] >>236 とりあえずは普通の掛け算だと思って (可換則は成り立たないけど) 大丈夫なんだが
244 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 17:33:35.17 ID:KyOEtNLT.net] pythonってプログラミング言語の中では簡単な方って本当ですか? 最近勉強してるんですが難し過ぎるんですが
245 名前:デフォルトの名無しさん [2021/07/03(土) 17:57:04.61 ID:2G/hXmzA.net] [[1,2,3], [1,2,3], [1,2,3]] がほしいとき [[1,2,3]*3]じゃなくて[[1,2,3]]*3だけど 感覚的には前者なので違和感が強いです なんかいい感じに納得させてもらえませんか
246 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 18:07:23.78 ID:bc4tv4Cc.net] >>244 言語としては簡単な方だよ ただ言語の難しさとプログラミングの難しさって別だからね 言語の選択ってのは迷路の広い入り口を選ぶか狭い入り口を選ぶかであって、迷路を進み始めると後は同じなんだよ
247 名前:デフォルトの名無しさん [2021/07/03(土) 18:15:50.79 ID:WO4lFPcp.net] かんたん言ってる奴は先に別の言語をやってた可能性が高い それに比べるとかんたんと言ってる
248 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 19:42:13.76 ID:KyOEtNLT.net] >>246 なるほど 一つの言語を極めると他の言語を覚えるのは簡単と言うのが分かった気がします pythonを極められるように頑張ります
249 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 20:08:02.32 ID:IMGL3rxE.net] >>245 'aho'*3は 'ahoahoaho'になる ''や[]は*3に文字列やリストを渡す 役目があって*3の前に役目を終えている
250 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 21:33:02.67 ID:I7Zt9Z8V.net] 合成関数のとことかシグモイド関数の微分とかお前らモヤらんのか? 中卒野俺にはわからんがめっちゃ頭いいな
251 名前:デフォルトの名無しさん [2021/07/03(土) 23:09:47.68 ID:91vjT9iB.net] 頑張って一般化逆行列を理解しよう
252 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 23:27:47.89 ID:avhnjRXY.net] YouTube で有名な、雑食系エンジニア・KENTA のサロンでは、 初心者は、Ruby on Rails から始める Python, PHP も勧めていない バックエンドは、Ruby → Go という路線
253 名前:デフォルトの名無しさん [2021/07/04(日) 00:07:57.92 ID:DDnLb3K7.net] ケンタはあわしろ氏の一番弟子。 実力は折り紙付き。
254 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 03:15:46.12 ID:kVVHiiiU.net] TIOBEのTOP10から転落した落ち目言語はポイーで
255 名前:デフォルトの名無しさん [2021/07/04(日) 08:47:31.64 ID:5abFjuPT.net] 範囲内、重複なしのreq_indexでdb(リスト)からデータ取得する selection = [db[idx] for idx in req] こういうのの逆で、渡されたreqに含まれてないidxデータ取得するとき、一番スマートなのはどういう書き方?
256 名前:デフォルトの名無しさん [2021/07/04(日) 08:50:25.61 ID:5abFjuPT.net] db[あ,い,う,え] req[0,2] get[い,え] ていう場合
257 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 10:13:27.09 ID:hbHHSLi0.net] >>255 [[i, v] for i, v in enumrate(db) if i not in req] おわり
258 名前:デフォルトの名無しさん [2021/07/04(日) 10:17:54.09 ID:pili1Lz/.net] >>245 [3*3] -> [9] [3]*3 -> [3, 3, 3] [[3*3]] -> [[9]] [[3]*3] -> [[3, 3, 3]] [[3]]*3 -> [[3], [3], [3]]
259 名前:デフォルトの名無しさん [2021/07/04(日) 10:19:32.88 ID:pili1Lz/.net] >>248 >一つの言語を極めると他の言語を覚えるのは簡単と言う 誰が言ったの?
260 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 12:15:28.10 ID:1R4z78Cs.net] ってみんな言ってます!
261 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 14:20:14.26 ID:BYgnURbL.net] わしもそう思う
262 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 15:29:30.76 ID:uQBb7zfv.net] いやプログラムの根底は演算と型と制御だろ そりゃベースが出来てれば大体何でも出来るわ
263 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 15:59:44.10 ID:SaImNcMt.net] あとライブラリの探し方と使い方かな
264 名前:デフォルトの名無しさん [2021/07/04(日) 16:34:17.72 ID:i/yFAdE3.net] >>255 db=[10,20,30,40] req=[0,2] a=list(set(db)-{db[i] for i in req})
265 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 17:11:19.65 ID:Thc8jF3i.net] プログラムの根底とプログラミングの根底は全く別物 その程度の区別が出来ないようなら大体何も出来ない
266 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 18:27:39.63 ID:CJXzLbyo.net] proxyを通して接続するときに、そのproxyが生きているかどうかだけ確認したいのですが 実際に存在する適当なサイトに接続してステータスコード200を確認すればよいのでしょうか? 今は、 プロキシ経由OKの(なるべくレスポンスの速い)サイトでrequests.getして200返ってきたらproxy生存 みたいにしてるのですが それ専用のチェックの仕方があるのかな、と気になりました
267 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 19:06:12.27 ID:KdurfuN3.net] >>265 確かに1行目と2行目の文章が繋がってないお前が言うと説得力あるなあ
268 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 20:09:32.45 ID:L4Prcy4Z.net] >>255 [db[i] for i in {i for i in range(len(db))}-set(req)]
269 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 21:43:55.75 ID:aHJdtdht.net] >一つの言語を極めると、他の言語を覚えるのは簡単 これ自体が嘘。 10年以上掛かるし、各言語の特殊性を学んでも、再利用できないから無駄 YouTube で有名な、雑食系エンジニア・KENTA は全く逆の事を言ってる 80 : 20 の法則。 簡単な80% の部分だけを学ぶべき 難しい20%の部分は、特殊だから再利用できない・使う頻度が少ない割に、 学ぶ時間が何倍も掛かるので、効率が悪い 専門学校で必ず言われること 例えば、法律の条文の暗記とか、 15題ずつ、重要度A・B・Cのランクがあったら、 AB だけ暗記して、C を捨てろとか 使う・出る確率が低いから、そこに暗記コストを掛けるのが無駄 ドラゴン桜で言う、京大英語・赤本で英語を学ぶなという格言。 特殊で、誰も使わないようなトリビア表現に、時間を掛けるな 数百人のネイティブがチェックしてる、英検をやれ
270 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 21:52:26.25 ID:1R4z78Cs.net] >>269 その20:80割合逆だろ 簡単以前なことも学べてないじゃないか
271 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 22:03:17.62 ID:9C8iWrP9.net] 推奨NGWord Ruby あわしろ氏 雑食系エンジニア
272 名前:デフォルトの名無しさん [2021/07/04(日) 22:19:49.10 ID:YfSOCxWP.net] そうして簡単な単純労働しかできない人が量産されるんですね
273 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 22:21:45.55 ID:1R4z78Cs.net] 簡単な部分の精度を上げろってこった
274 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 22:35:43.14 ID:ZDZVmq0W.net] 難しい2割を理解できる人が世の中をまわす
275 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 22:38:11.14 ID:1R4z78Cs.net] むつかしいほうは8割だっつっとろうが
276 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 22:39:45.78 ID:SVViFRUT.net] >>270 横からだが逆じゃないと思うよ もちろん全体の100をどう捉えるか次第だけど
277 名前:269 mailto:sage [2021/07/04(日) 22:40:16.40 ID:aHJdtdht.net] 簡単な80% の部分を、横に進めていく。 Ruby on Rails なんて、まさにそう。浅く広く Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース さらに、AWS Fargate, Terraform, Vue.js, TypeScript KENTA のサロン、AWSのくろかわこうへいのサロンに入る。 だから、1年の未経験者が、10年以上のプロよりも技術力が上になる! 時間が掛かる、難しい20%の部分を勉強しないから。 これを、KENTAが勉強方法のチートと言ってる 簡単な80%の部分の勉強時間は、20%しか掛からないのに、 難しい20%の部分の勉強時間は、80%掛かる つまり、勉強時間では逆になる。 しかも、特殊だから再利用できない・使う頻度が少なく、役に立たない 例えば、C を10年やってる香具師の大部分の時間が、ポインターを追っかけている時間 だから、時間が掛かるだけで、何も学べていないから、 Railsを1年やっただけの未経験者に負けてしまう Rubyの女神・池澤あやかも言ってる。 大学生がプログラミングで挫折するのは、Cをやるからだって つまり、ほぼ無意味なことを長時間やるから、しょーもない
278 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 22:41:49.47 ID:ZDZVmq0W.net] 重要なのは2割って話は知ってるけど 簡単なのは2割って知らんな
279 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 22:48:09.20 ID:1R4z78Cs.net] 統失煽りで文化人を一人殺したので 名前が同じだけでもてはやされてたKENTAは用済み
280 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 23:01:11.65 ID:PTs94Rmb.net] Rubyって時点でお察し
281 名前:デフォルトの名無しさん [2021/07/05(月) 00:27:11.73 ID:SA0zdM26.net] > だから、1年の未経験者が、10年以上のプロよりも技術力が上になる! プロ舐めすぎやろ 自分のレベルすら正確に把握出来てないだけじゃん
282 名前:デフォルトの名無しさん [2021/07/05(月) 01:30:50.54 ID:cyuSl6kj.net] >>245 演算規則を考えよう 1 * 3 = 1 + 1 + 1 = 3 [1] * 3 = [1] + [1] + [1] = [1, 1, 1] であるので、 [[1]] * 3 = [[1]] + [[1]] + [[1]] = [[1], [1], [1]] となる 加算と乗算に一貫性をもたせるとしたらこうするか、 1 + 1 = [1, 1] [1] + [1] = [[1] + [1]] のような規則にするしかないけど、明らかに1 + 1がリストになっちゃうのは使いにくいでしょ
283 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 01:54:24.43 ID:ts/O0CHN.net] >>281 ダニングクルーガー効果ってのがあってぇ…
284 名前:デフォルトの名無しさん [2021/07/05(月) 08:07:41.22 ID:308oM4PQ.net] >>255 db=[10,20,30,40] req=[0,2] a=len(db) for i in req: db.pop(i-a)
285 名前:デフォルトの名無しさん [2021/07/05(月) 11:09:29.47 ID:c503ASju.net] >>281 https://bokurema.com/
286 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 11:52:44.70 ID:DJ8mSFAE.net] Railsはすべて分かっている人にとっては楽 初心者は設定や、細かいチューニングで必ずつまずく
287 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 14:49:22.59 ID:WfBg4Dd7.net] pandasで特定の列(横)の重複した値を削除して一つだけにするのってどうするの 例えばA,B,C,B,C,DってあったらA,B,C,,,Dにしたい(BやCのみでも可)
288 名前:デフォルトの名無しさん [2021/07/05(月) 14:56:34.11 ID:zfQ+6anv.net] kwsk
289 名前:デフォルトの名無しさん [2021/07/05(月) 17:20:56.75 ID:rH8GS2yx.net] >>287 あえてPandas使ってとなるとむずいな
290 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 18:56:50.40 ID:+tp9LwEv.net] BやCのみでも可なら df.replace('B','').replace('C','') それとは別にdf.duplicatedで空白にしたいインデックスがTrueになる データフレームが得られる データフレームにSQLほどの機能はないようだ
291 名前:デフォルトの名無しさん [2021/07/05(月) 20:17:35.08 ID:41zUyXOD.net] dfの横はlist的に扱えるから一次元リストの重複要素を任意の値に置き換えるという操作をするだけでは?
292 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 21:27:56.39 ID:WfBg4Dd7.net] サンクス!
293 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 00:10:38.82 ID:c1bms/+C.net] みんなのPythonで勉強しているのですがP340のwith文の説明がよくわかりません 私の理解では、with文でopen()した場合は、ファイルを最後まで読み切ったら自動的にclose()する処理になると思っています この参考書には、openするファイルが存在しなかったらファイルを開かないで処理を終了する、ということが書いてあるのですが間違っていないでしょうか openするファイルが存在しないと普通にエラーになるのですが
294 名前:デフォルトの名無しさん [2021/07/06(火) 00:38:25.59 ID:wcT5LwJn.net] modeによるとしか readならその通り。writeはファイルが存在しなければ作成される。
295 名前:デフォルトの名無しさん [2021/07/06(火) 00:48:09.74 ID:IX8Wt/RA.net] modeの話?
296 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 00:52:21.13 ID:AJxevGXU.net] Ruby では、存在しないファイルを読もうとしたら、エラーになる。No such file print File.read 'abc.txt' 出力 No such file or directory @ rb_sysopen - abc.txt (Errno::ENOENT)
297 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 01:06:54.99 ID:c1bms/+C.net] 参考書の例文はモード指定しない既定なのでreadです with文のreadモードで開いたファイルをfor文で一行ずつprintしています 説明によると、ファイルが存在していたら処理を行うという意味のコードになるとのことです
298 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 01:21:35.74 ID:n3HBlCzk.net] おじちゃんせっかくマニュアルあるのに読まない子の気持ちはわからないよ https://docs.python.org/ja/3/library/functions.html?highlight=open#open
299 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 01:33:10.58 ID:M25Qh6q2.net] >>293 >私の理解では、with文でopen()した場合は、ファイルを最後まで読み切ったら自動的にclose()する処理になると思っています 違うよ >この参考書には、openするファイルが存在しなかったらファイルを開かないで処理を終了する、ということが書いてあるのですが間違っていないでしょうか サンプルコードではFileNotFoundErrorをハンドリングしてるね https://colab.research.google.com/github/shibats/minpy_samplecodes_4th/blob/master/Chapter10/10-01.ipynb
300 名前:デフォルトの名無しさん [2021/07/06(火) 16:37:29.04 ID:ewE8N/dz.net] def test(): __return random.randint(2,5) obj=[test(), 0, 1] l = random.choices(obj, k=3) # -> [4,2,0] testが毎回実行されて(lに違う数字で入って)ほしい どう書けばいいの?
301 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 16:45:42.95 ID:Fj5fpx8O.net] >>293 withブロックを出るときにclose open関数の中で ファイル確認して ファイルを開く ファイル確認でエラー 開いてない ないのに開けない
302 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 16:46:46.00 ID:8bcWgGBz.net] def test(): __return random.randint(2,5) def exectest(): __obj=[test(), 0, 1] __l = random.choices(obj, k=3) exectest()
303 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 18:44:35.16 ID:yuAoY/NP.net] numpy.loadtxtでcsvファイルを読み込むんだが、csvファイルのデータが崩れていることがある。 で、何行目にエラーがあって取り込めなかったのかを知りたいんだが、いい方法ない? データが崩れているというのは、例えば、 -1.234,123.45.789, みたいに、ありえない数値表現が紛れているということなんだが csvファイルが崩れないようにするのが本筋だけどそっちに頑張る気がないので おかしな行を見つけたら手動でその行を削除して再度処理という感じで運用したい
304 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 19:22:28.01 ID:BTTPD25v.net] typeでチェックすれば
305 名前:デフォルトの名無しさん [2021/07/06(火) 20:02:32.04 ID:MGYt6+tS.net] 通常はどういう数値が入るのか分からんとなんとも言えないな
306 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 21:14:42.87 ID:yuAoY/NP.net] >>304 詳しく >>305 通常は小数点付きの数値でマイナスの場合もある
307 名前:デフォルトの名無しさん [2021/07/07(水) 00:12:50.55 ID:eWdID8i0.net] >>303 1pandasで文字列としてロード 2走査しつつ数値にパース 3失敗したらスキップ
308 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 00:17:53.03 ID:bUHYGk47.net] 例えば、Ruby では各列を、変換器・converter で変換して、 変換できたかどうか、型を確認するとか require "csv" input_str = <<"EOT" -0.0,1.2.3 9..9,-0 EOT csv = CSV.new( input_str ) csv.convert( :numeric ) # 数値型へ変換する line_num = 0 # 行番号 csv.each do |row| line_num += 1 p [ line_num, row[ 0 ].class, row[ 1 ].class ] end 出力 [1, Float, String] [2, String, Integer] 1.2.3, 9..9 が、変換に失敗して、文字列型のまま
309 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 00:41:11.10 ID:DonMIAPH.net] >>293 です よく分からなかったのは私の勘違いが原因でした P340に記載されている内容はP338の差分だったことが分かりました やっと理解できました 失礼いたしました、皆様ありがとうございました
310 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 00:49:15.09 ID:85qcEXGX.net] >>308 せめてnumpyを移植してから知った風な口を利け
311 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 14:46:15.07 ID:JFEXb6g2.net] pep8に 単一の文字 'l' (小文字のエル)、'O' (大文字のオー)、'I'(大文字のアイ) を決して変数に使わないでください。 フォントによっては、これらの文字は数字の1や0と区別が付かない場合があります。 ってあるけど、上のような理屈であれば、単一の文字でなくても同じ理由で使うべきではないことになるんでは?
312 名前:デフォルトの名無しさん [2021/07/07(水) 15:11:46.21 ID:49748z4f.net] 10ng と long と IONG を間違うかって話だな
313 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 16:43:31.83 ID:2KJNjcti.net] $python hoge.py 10 | python hoge2.py | python hoge3.py ### hoge.py ### import sys for i in range(int(sys.argv[1])): _print(i) ### hoge2.py ### import sys a=''.join(sys.stdin.readlines()).strip().split('\n') a.append(len(a)) for n in a: _print(n) ### hoge3.py ### import sys print(len(''.join(sys.stdin.readlines()).strip().split('\n'))) ざっくり (1)hoge.py 10で10個数字を出力 (2)hoge2.pyで受け取り、値を追加して出力 (3)hoge3.pyで受け取り、1個増えたことを確認 なのですが、受け取った値を成形する ''.join(sys.stdin.readlines()).strip().split('\n') の部分はこの書き方でよいでしょうか? そもそも標準出力をprintでやるのかもわかりません それ専用の標準ライブラリとかあるのかな
314 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 17:49:17.95 ID:vUBZA2na.net] >>313 標準出力はprintでやるのでいいよ 1行ごとに処理したいわけじゃなければ.read().splitlines()すればいいと思う #hoge2.py import sys a = sys.stdin.read().splitlines() a.append(len(a)) for n in a: __print(n) #hoge3.py import sys print(len(sys.stdin.read().splitlines()))
315 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 18:46:33.05 ID:2KJNjcti.net] >>314 なるほどprintでよかったんですね splitlinesできました!ありがとうございました
316 名前:デフォルトの名無しさん mailto:sage [2021/07/08(木) 21:41:26.17 ID:g5ngXWNu.net] raspbian buster上のpython3.7.3で、 subprocess上で読み込むcsvファイルをStringIOにするとうまくいかず困っています。 以下2つのソースで、異なるのは1行目だけです。 [test1.py] CSVFILE = '/tmp/1.csv' with open(f'{CSVFILE}', 'a') as CSV: writer = csv.writer(CSV) writer.writerow([12,34,56]) CSV.close() cmd = (f'cat {CSVFILE}') proc = subprocess.run(cmd, shell=True) [test2.py] CSVFILE = io.StringIO() with open(f'{CSVFILE}', 'a') as CSV: writer = csv.writer(CSV) writer.writerow([12,34,56]) CSV.close() cmd = (f'cat {CSVFILE}') proc = subprocess.run(cmd, shell=True) $ python3 test1.py 12,34,56 $ python3 test2.py /bin/sh: 1: Syntax error: end of file unexpected 何を見落としてるんでしょうか…?
317 名前:デフォルトの名無しさん mailto:sage [2021/07/08(木) 22:38:29.83 ID:PyDOiOef.net] 何をしたいかが全く分からないがとにかく そのエラーは/bin/shが cat <_io.StringIO object at 0x7f1360de01f0> とかいう文字列を実行しようとして >が出力のリダイレクトと解釈してその後にファイル名がないからエラーになってる
318 名前:316 mailto:sage [2021/07/09(金) 07:49:00.55 ID:6wIK8ZSE.net] >>317 ありがとうございます! 例で実現したいことは、 $ python3 test2.py 12,34,56 この結果が出るにはどうしたら良いかが知りたいです。 シェルから見て実体のあるファイル名でないとダメってことですね。それはそうか。 一度ファイルシステムに書き出せば良いのでしょうが、それ以外の手はないでしょうか。 なお、例では長くなるのでcatコマンドに書き換えましたが、実際にやりたいことは 「pythonの前段処理結果をcsvに書き込み、そのcsvをgnuplotで読み込んで作図(を毎秒繰り返し)」というプログラムです。 処理結果の数字は毎秒積み上がっていくのと、プログラム終了時には実体のcsvファイルに書き出したいのとで プログラム上では、StringIOを使ったcsvファイルとして処理したいです。
319 名前:デフォルトの名無しさん mailto:sage [2021/07/09(金) 08:12:26.61 ID:2AR12dC9.net] >>318 >「pythonの前段処理結果をcsvに書き込み、そのcsvをgnuplotで読み込んで作図(を毎秒繰り返し)」 だったら質問の意味が尚更分からん 上記の処理を1プログラムでやりたいなら Pythonで前処理⇒直接前処理結果をグラフ作画⇒作画後に必要に合わせてデータをcsv出力 っていう流れの方が良くね? 書き込んでから読み込む必要性が全く分からん
320 名前:316 mailto:sage [2021/07/09(金) 08:30:32.97 ID:6wIK8ZSE.net] >Pythonで前処理⇒直接前処理結果をグラフ作画 前処理では複数行複数列の数字(時間と温度です)を積み上げていくので、 その前処理結果のgnuplotへの渡し方としてcsvが適当かな、と思ったためです。 それとも、そもそもpythonスクリプトとしては前処理のアウトプットだけでexitし、 gnuplotはOS側シェルで普通に動かして前処理結果を使えば?という意味だとすれば、 今回はpythonスクリプト内でgnuplotを動かしたいです。
321 名前:デフォルトの名無しさん mailto:sage [2021/07/09(金) 08:51:54.66 ID:sj/mydTS.net] データが来るたびにファイルに追記していく(writeのあとにflush) gnuplotは別に起動して毎秒ファイルを読み直す と分けるのがよさそうに見える
322 名前:デフォルトの名無しさん mailto:sage [2021/07/09(金) 09:04:12.08 ID:2AR12dC9.net] >>320 >その前処理結果のgnuplotへの渡し方としてcsvが適当かな、と思ったためです gunplotのマニュアル確認したけど、それなら素直にCSVファイルとして書き出さないと無理じゃないか? 大学か会社の都合か分からんけど Pythonで素直に一連の動作をさせるなら matplotlibの方がよっぽど楽だけど、それだとダメなんだよな
323 名前:316 mailto:sage [2021/07/09(金) 09:08:57.43 ID:6wIK8ZSE.net] もともとはシェルスクリプトでそんな感じでやっていて、 拾ってきたpythonで温度を測定し、結果を/tmp/temp.csvに書いてそれをgnuplotに読ませてました。 実はgnuplotが書いたグラフ(png)をまた(拾ってきた)pythonでOLEDに描画するという後処理もあって、 全工程で1秒ちょっとかかってました。 そこで、おっしゃ自前でpythonの1スクリプト化して高速化や!コピペマンから脱却するやでー! という素人考えで今に至っています。 pythonの1スクリプトで、>>316 に書いたtest1の方法(中間ファイル書く)でも シェルスクリプト版の倍は速く動いてるので、あとはStringIOさえできれば…と思ってました。 何分素人なのでそもそもの考え方が間違ってるところもあるとは思いますが、 なぜそう思うに至ったか、という話でした。
324 名前:316 mailto:sage [2021/07/09(金) 09:14:25.66 ID:6wIK8ZSE.net] >>322 やっぱ実体としてのcsvファイルがないとダメですかね…ありがとうございます。 matplotlibはグラフ描くがgnuplotより難しそうだから見なかったことにしてました。 いい機会だから、もう一度調べてチャレンジしてみます。
325 名前:デフォルトの名無しさん mailto:sage [2021/07/09(金) 09:20:09.59 ID:2AR12dC9.net] >>323 すげえ面倒な方法で見える化やってるなwwwwww 慣れたらmatplotlibも描くの簡単だぞ、Pandasとかnumpyとの相性も良いし ただ根本的な所で言えば、既存の見える化フローが結構ヤバイな (グラフ画像をOLEDで映し出すっていうのが衝撃だわ) 抜本的に改善したいなら Pythonでデータ処理⇒データベースに書き込み⇒データ系の見える化ツール っていうのが理想形だな TableauとかPower BIみたいなツール使うと見やすくなる(有償だけど) 無償ツールなら英語だけどGrafanaとかかな?
326 名前:316 mailto:sage [2021/07/09(金) 09:39:34.13 ID:6wIK8ZSE.net] >>325 今回はラズパイローカルでグラフを物理画面に即描画したいんですよね。 趣味の焙煎釜の温度変化を熱電対で計測し、手元でリアルタイムにグラフ描画したい、 そして記録をcsvに残したい、というのが目的です。 今は単機能の熱電対プローブでやっていて、温度変化が全くわからないので。 そこでまずはアリエクで300円しないOLEDを買ってラズパイに繋いで gnuplotのpngをSPI接続のoledに送り出し続けるという形にしました。 ほんとはpythonからoledのライブラリとか使って直接描画とかもできるのかもしれませんが、 matplotlibともどもフタをしてました… これがうまくいったら、OLEDやめてラズパイケース一体液晶にしても良いかなとは思っています。 GrafanaやPowerBIは別件で使ったこともあって、後分析には良いですよね。
327 名前:デフォルトの名無しさん mailto:sage [2021/07/09(金) 09:47:38.88 ID:2AR12dC9.net] >>326 >今回はラズパイローカルでグラフを物理画面に即描画したいんですよね。 あーなるほど、そういう使い方もあるのか……俺の知識不足だったすまん ただ結局グラフのpng画像を生成出来れば問題なさそうだし、matplotlibの差し替えが無難な気はするな
328 名前:デフォルトの名無しさん mailto:sage [2021/07/09(金) 23:58:06.76 ID:dI9qqvw1.net] int型の足し算ではintクラスの持っている__add__メソッドが暗黙的に呼び出されていると思います。 ですが、 1.__add__(2) のようにすると1+2が実行されず構文エラーになります。これは何故でしょうか? str型の場合は問題なく実行され、以下の場合"aabb"が返ってきます。 "aa".__add__("bb")
329 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 00:16:00.86 ID:8UKJFvZ/.net] 詳しくないが 1. が小数になるのが原因だろう (1).__add__(2) とか 1..__add__(2) ならエラーにならない
330 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 00:16:24.03 ID:Rm9mfcPV.net] 1.x(float)か1のメソッドなのか決まらないから 1.1.__add__とかはメソッドなのが分かるから通る
331 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 00:59:10.02 ID:MSe133Oz.net] >>329 >>330 納得しました! ありがとうございます
332 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 10:33:46.40 ID:chyfa+iT.net] Python3.7で、pdbのtrace中とそれ以外でプログラムの挙動が異なるという問題に悩んでいます。 ■現象 PySimpleGUIのpng画像をwhile True:で延々と更新し続ける処理が、 ・pdb set_trace中は想定通りに画像が更新され続ける(ただし途中でpdbが止まる) ・traceを外すとそもそも画像が表示されない ■処理 "conv_image"を別関数で更新し続け、 このwindow更新行をwhileで回すだけの処理です。 window['-image-'].update(data=get_img_data(conv_image)) ■pdbが止まる件 不思議なのは、通常pdbはデバッグ中に一度nで次に進むと、次行からはEnterだけでエラーのない限り進みますよね。 でもEnter押しっぱなしにしてると、この行でエラーの表示もなくpdbがいったん止まります。 nを押すと進み、画像が更新されます。 そこが問題のポイントなのかなと思いますが、それ以上の手がかりがありません。
333 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 10:43:05.45 ID:lk+ovMEl.net] >>332 再現できる最小限のコードを提示しましょう
334 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 11:13:10.52 ID:Ai3MLyk0.net] > get_img_data(conv_image) この計算は一回でいいんじゃ
335 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 13:30:27.85 ID:nAGZi/ZP.net] GUIがメッセージを処理する時間がねえんじゃねえの
336 名前:332 mailto:sage [2021/07/10(土) 14:33:07.51 ID:chyfa+iT.net] >>333 すみませんでした… ttps://dpaste.com/AQL5WPNUS 手元のraspbian buster python3.7.3では、ここまで削っても 後ろから4行目のpdb.set_trace()有無で、>>332 に書いた現象が出ます。 >>334 window['-image-'].update(data=conv_image) こうでいいんじゃないの?と思って最初はこう書いてたんですが、 BytesIOが生で見えてるのか何なのか、"TypeError: 'int' object is not callable"エラーが出ます。 ググったところ、get_img_data関数(割と一般的らしい)を使えとあったのでそのようにしたところ、表示できるようになりました。 >>335 試しに2ヶ所あるwindow.updateの直後にtime.sleep(1)を入れてみたんですが、変化なしでした。
337 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 16:36:24.47 ID:c5RJ/qlV.net] >>336 PySimpleGUIでメッセージ処理させるのはwindow.read() メッセージ無くても回したいならtimeoutを指定する
338 名前:デフォルトの名無しさん mailto:sage [2021/07/10(土) 18:01:51.33 ID:lk+ovMEl.net] window.read()してないのでtk.update()が呼ばれず画面が更新されない window.TKroot.update()を呼べば画面が更新されるが 直接呼ばずにwindow.read()を使ってメッセージループを作るほうがいい デバッグセッション時はそれだと使いにくいから何か対処されてるっぽい
339 名前:332 mailto:sage [2021/07/10(土) 18:38:29.97 ID:chyfa+iT.net] ありがとうございます。なるほど…! どこかでサンプルプログラムをコピペしつつ、ボタンはどうでもいいから とりあえず画像表示ループだけ回そうと適当かつ中途半場に行を削除してしまったので、 その結果イベント処理が進まない状態ということですね。 すごく良くわかりました。 どう処理するかよく考えて書き直してみます。
340 名前:デフォルトの名無しさん [2021/07/11(日) 08:30:07.56 ID:k6naGpL9.net] ユニークな長いリスト src があって おのれはユニークだけどsrcと重複しうるリスト reqがある reqの要素がひとつでもsrcにあれば云々したい 速いのを探しています。外部ライブラリは使えない test = set(req) bool([i for i in req if i in test]) ?
341 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 09:23:01.16 ID:FD6lxZ3g.net] any()かfor-loopのearly breakを使う srcは長くて固定的、reqは短くて毎回変わるなら srcのほうをsetにして管理したほうがいい
342 名前:デフォルトの名無しさん [2021/07/11(日) 10:48:10.63 ID:k6naGpL9.net] いや冷静に考えたら フツーにset(src)&set(req)か
343 名前:デフォルトの名無しさん [2021/07/11(日) 10:50:02.39 ID:BLRKNf/m.net] 共通要素を全て調べ上げる必要が無いなら>>341 の方が速いな
344 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 11:14:07.88 ID:k3ZSGeVZ.net] >>340 速いかどうかは知らん not set(src).isdisjoin(set(req))
345 名前:デフォルトの名無しさん [2021/07/11(日) 12:26:28.31 ID:k6naGpL9.net] >>341 set(src10万) req300 重複0〜5 ではany()と&はほぼ誤差 bool([i in set])がわずかに遅い感じでした センキュー
346 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 12:57:32.61 ID:xAgoNPlJ.net] >>258 分かりやすい
347 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 19:05:49.41 ID:akfEDp81.net] 違和感というのは[]を()のように捉えてるから リストや文字列に対する*は数学の掛け算とは無関係 要素数を増やせという機能 > [3*3] -> [9] 数学の掛け算 > [3]*3 -> [3, 3, 3] リスト内の要素3を数で3つに増やせ > [[3*3]] -> [[9]] 掛け算 > [[3]*3] -> [[3, 3, 3]] 内側のリストの要素3の数を3つに増やせ > [[3]]*3 -> [[3], [3], [3]] リストの要素[3]を3つに増やせ
348 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 20:54:53.44 ID:yIl0mON7.net] どうした急に
349 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 21:15:21.80 ID:BeeJLMuH.net] 発作よ お薬を忘れたみたいね
350 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 00:05:06.94 ID:hfOyhNhX.net] サブクラスからスーパークラスのメソッドを呼び出す場合、次の@とAは同じ意味ですか? 同じならどちらで書いた方がいいとかありますか? class MyClass1: def __init__(self, name): self.name = name class MyClass2(MyClass1): def __init__(self, name): @ super().__init__(name) A MyClass1.__init__(self, name)
351 名前:デフォルトの名無しさん [2021/07/12(月) 00:29:53.14 ID:2Zpr4/N8.net] わざわざsuper というキーワードが用意されているのだから使わない理由ないだろ クラス名を変更した際の影響範囲を考えてみよう
352 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 11:10:07.04 ID:4WArcuIG.net] >>350 その例だと同じだけど複数から継承するようなクラスを使う場合は super()が返すものが普通に想像するものとは違ってくるケースもあるので注意が必要 https://fuhm.net/super-harmful/
353 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 19:50:10.58 ID:QV5M7VnV.net] >>347 数学と無関係ではないよ、加群としてとらえても矛盾のない演算になってるでしょ
354 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 20:27:18.44 ID:HIUYKm1A.net] それは*3が同じものを3つ足し合わせなさいという 常識的な意味合いをわかりやすさのために利用してるだけで 数学的なことなら割り算もあるでしょ
355 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 21:40:52.58 ID:4WArcuIG.net] 常識的な意味合いかぁ・・・ 演算子オーバーロードの悪い見本にしか見えない
356 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 01:00:18.86 ID:o9TqNFAF.net] >>351 >>352 ありがとうございました ある本に説明もなく両方の記載があったので悩んでました この機会に多重継承も勉強しようと思います
357 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 05:15:40.15 ID:eWSxSU0S.net] 数学っぽくやるなら [3]*3->[9] [1, 2]*3->[3, 6] のほうがより直感的だった気はする
358 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 05:42:16.34 ID:QsXB5/qu.net] numpyはそうなってるね
359 名前:デフォルトの名無しさん [2021/07/13(火) 11:39:29.89 ID:Oq4/PEVt.net] pythonバージョン3.8.1で次のようなことをしようとしていますが、関数の配置に困っています。 次にするイベントを抽選する ↓ イベントを実行する ↓ イベント終了後にイベント抽選へ戻る しかし、これだとイベントを抽選する関数をイベントの関数より上に置くとイベント抽選の関数がイベントの関数を認識してくれず、 下に置くと、各イベントの関数がイベント抽選の関数を認識してくれません。 なんとか動かす方法はないものでしょうか?
360 名前:デフォルトの名無しさん [2021/07/13(火) 11:45:58.98 ID:uAPVX+Xy.net] 5chのこの板のAndroid版のスレタイトル一覧を取得したいのですが、スレタイトル部分だけ抜けてしまいます。 htmlを見ると、スレタイトル部分はjava scriptを呼び出して(?)表示しているようです。 このような別から呼び出す仕組みの検索語だけでも知りたいです。 実行環境はWindows10のcolabです。 何卒よろしくお願いします。 以下がソースとhtml抜粋です。 https://pastebin.com/dq4FFsM3
361 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 11:52:22.48 ID:eWSxSU0S.net] 相互参照は常に避けるよう心がけるべき。 回避する方法はいろいろあるけど、 イベント抽選関数はイベントの関数に引数として渡してあげるとか、 イベントの関数はすべて同じ引数、戻り値にしておいて、イベント抽選システムへ予め登録しておく方式にするとか
362 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 11:55:28.21 ID:I5G4+d/9.net] 知らんけどmain関数のなかにwhile True: 抽選関数() みたいにしてループさせて抽選されたイベント自体は抽選関数を呼ばなければいいだけじゃないの
363 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 11:59:46.95 ID:0QNuXsy/.net] ttps://mevius.5ch.net/tech/subject.txt > スレタイトル一覧を取得したい > このような別から呼び出す仕組みの検索語だけでも知りたい どっち? スレタイ取得ならsubject.txt読ませればいいじゃん わざわざしかもitestのhtmlをスクレイピングする理由あるの?
364 名前:デフォルトの名無しさん [2021/07/13(火) 12:22:40.44 ID:WUJYnH4r.net] >>354-355 *3がどう展開されるかより もっと深刻な問題は [[?]]*Nの内側の[?]はコピーされていないということだろ
365 名前:デフォルトの名無しさん [2021/07/13(火) 12:24:59.10 ID:WUJYnH4r.net] >>359 前方参照でぐぐれ
366 名前:デフォルトの名無しさん [2021/07/13(火) 12:26:33.03 ID:WUJYnH4r.net] >>360 5chはスクレイピング禁止
367 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 12:31:27.78 ID:QsXB5/qu.net] >>359 イベントの関数定義と、抽選・実行をする処理とはファイルを分けて 前者を後者のファイルでimportして使う 1ファイルでできなくもないけど モジュール分割を早めに覚えておいたほうが散らかりにくい
368 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 12:43:35.25 ID:dtNqNBdW.net] >>360 Ruby, selenium-webdriver では、 execute_script で、そのまま、JavaScript ソースコードを実行できる ただし、5ch で頻繁にスクレイピングすると、アク禁にされるかも require "selenium-webdriver" options = Selenium::WebDriver::Chrome::Options.new options.add_option( :detach, true ) # ブラウザを切り放す options.add_argument( '--start-maximized' ) # 画面最大 driver = Selenium::WebDriver.for :chrome, options: options driver.manage.timeouts.implicit_wait = 15 # 要素の検索の timeout url = "サイトのURL" driver.navigate.to url # 移動する js_code = <<"EOT" var elem = document.getElementById( 'abc' ); EOT driver.execute_script js_code # JavaScript を実行
369 名前:368 mailto:sage [2021/07/13(火) 13:03:34.95 ID:dtNqNBdW.net] 5ch は最初に、空のHTML を送ってきてから、 その後、JavaScript(Ajax)で通信して、内容を取り込む だから単に、Ruby のNokogiri などでスクレイピングをしても、 空のHTML が取れるだけで、まだ内容が読み込まれていない だから、15秒ぐらいスリープして、内容が読み込まれるまで待つ必要がある または、selenium-webdriver で、ブラウザを自動操作して、 driver.manage.timeouts.implicit_wait = 15 # 要素の検索の timeout みたいに、要素が存在しない場合に、何秒待つか指定する
370 名前:359 [2021/07/13(火) 13:16:57.35 ID:Oq4/PEVt.net] ご回答ありがとうございました。 私があまりに初心者過ぎて、せっかくの具体的なご回答をほぼ理解できませんでしたが、 この状態を相互参照と呼ぶことが分かってようやくググることができ、 >>362 さんのレスから着想を得て、main関数を作ってプログラムを全部括れば動くということが判明しました。 以上ご報告と御礼申し上げます。
371 名前:360 [2021/07/13(火) 17:54:03.79 ID:28i3hfQd.net] >>368 ありがとうございます。 Ajaxという技術なのですね。 webdriverでwaitを入れたところ取得できました。 >>363 すいません説明不足でした。 実はPC版はシンプルなため取得できていました。 勉強のためにAndroid版も見てみようと思いやってみたところ、取得できなかったためお聞きしました。 皆様、勉強になりました。 ありがとうございました。
372 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 18:33:25.76 ID:KwvhlQcy.net] >>354 そのツッコミをするなら、群と体の違いについて理解しようか。 掛け算があっても、割り算が必ずしも定義できるとは限らない。
373 名前:デフォルトの名無しさん mailto:sage [2021/07/13(火) 20:54:54.99 ID:4WrY8hy5.net] 何このruby基地外の自作自演 きっしょ
374 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 02:12:23.66 ID:0WF/Cs9d.net] スクレイピングでrequestsで上手く取得できないサイトはSeleniumで取得するようにしてるんだけどこれにThreadPoolExecutorを使用するとしたらどういう書き方すればいいの 今までは複数のサイトのURLが入ったリストをfor文で回しつつif文でドメインが一致するかどうかでrequestsとSeleniumを使い分けていたけど非同期にするとなるとさっぱりわからん
375 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 12:00:52.16 ID:Rdfymp1t.net] クラスのメンバをforループのように回す方法はないですか?イメージは、 class Test: a=0 b=0 c=0 def _print(self): for member in self: print(member) みたいなことをやりたいです。
376 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 12:05:26.72 ID:erbvpp8v.net] __iter__か__getitem__を定義すればいけるはず
377 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 12:46:48.66 ID:82cJAwkj.net] 試してないけど、 for v in vars(self): print(getatter(self, v))
378 名前:デフォルトの名無しさん [2021/07/15(木) 15:25:55.52 ID:ygp86UHP.net] https://docs.python.org/ja/3/library/inspect.html https://www.atmarkit.co.jp/ait/articles/1612/09/news030_3.html
379 名前:デフォルトの名無しさん [2021/07/15(木) 16:37:18.28 ID:0u9iXN8m.net] そういうクラスのためのdataclass astuple, asdictでイテレートもできる。 自分で用意できないクラスのオブジェクトの時は、dir()で列挙した後にごにょごにょしていく必要があるけど。
380 名前:デフォルトの名無しさん [2021/07/15(木) 16:50:42.66 ID:TtIRjd2i.net] この度pyinstallerでどのshell環境でも動作するコマンドを作成しました。 しかし5年前くらいのIntelMacでさえ快適に動作しますが、 M1macbookではかなりもっさりして遅いのです。 これはarm64アーキテクチャのせいで遅い可能性はありますか?? またこういったケースでの改善策などありますか?? arm64用にコンパイル方法などありましたら教えてください。 コマンドはスクレイピングした結果を別ファイルに落とす シンプルなコマンドです。 shellscriptだとちょい面倒だったのでpythonで書きました。
381 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 20:50:47.41 ID:Rdfymp1t.net] ありがとうございますが、 >>377 だと順番が毎回ランダムになる >>378 だと順番がアルファベット順になる?(多分) csvの要素と対応付けたいので定義順に出てくれないと困ってしまうのです・・ >>379 はバージョン不足で不可。(3.5系) 1番目が順不定になるのも多分dictの順番が保持されてないせいだと思いますしやっぱり素直にアプデですかねぇ。。。こんな仕様にしたのほんとに誰ですか
382 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 21:02:10.64 ID:gFOIdhYR.net] >>374 AWS なら、Lambda, SQS などを使えば?
383 名前:デフォルトの名無しさん mailto:sage [2021/07/15(木) 21:48:55.17 ID:NjXHl1NW.net] >>381 for v in sorted(vars(self))でどう?