Pythonのお勉強 Part62 (455レス)
Pythonのお勉強 Part62 http://mevius.5ch.net/test/read.cgi/tech/1568616071/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
176: デフォルトの名無しさん [] 2020/05/05(火) 17:07:50.66 ID:D2QZwsc6 アホしかおらんのか http://mevius.5ch.net/test/read.cgi/tech/1568616071/176
177: 163 [sage] 2020/05/05(火) 17:41:03.01 ID:lrlqOn2p たくさんのご返信ありがとうございます。 >>164 ありがとうございました。 ご推察の通り、Pythonは本を一冊読んだ程度の知識しかありません。 チュートリアル一通り試してみます。 >>165 ありがとうございます。 その二つのドキュメントも読み込んでみます。 >>167 ありがとうございます。 申し遅れておりましたが、Windowsユーザーです。 ただ、教えていただいたコマンドを調べてみると、 Windowsでもインストールすれば、ripgrepを扱えるみたいですね。 必ずしもPythonにこだわらなければならないわけでもないので、 (学習中だったので、使ってみたかった程度) コマンドでの解決も検討してみます。 >>171 >>174 ありがとうございます。 必ずしもPythonでなくてもよいので、Grepやfindstrも調べてみます。 http://mevius.5ch.net/test/read.cgi/tech/1568616071/177
178: 163 [sage] 2020/05/05(火) 17:41:16.65 ID:lrlqOn2p >>175 ありがとうございます。 すごい! まさに私の理想通りの出力結果になりました。 自分なりにいただいたソースコードを調べて、勉強させていただきます。 http://mevius.5ch.net/test/read.cgi/tech/1568616071/178
179: デフォルトの名無しさん [sage] 2020/05/05(火) 18:25:34.80 ID:XXjmfIiw おいおい>>175は冗談で出した例だろ http://mevius.5ch.net/test/read.cgi/tech/1568616071/179
180: デフォルトの名無しさん [sage] 2020/05/05(火) 18:51:52.49 ID:rwJ86+M0 Ruby で作った # . で始まる、隠し directory, file を除く glob_pattern = "/mnt/c/Users/Owner/Documents/test/**/*.log" re = /^\||Error/ first_time = true # 最初の1回だけ Dir.glob( glob_pattern ) .select { |full_path| File.file?( full_path ) } # ファイルのみ .each do |full_path| # 末尾の改行を削除して、1行ずつ処理する File.foreach( full_path, chomp: true ) do |line| line.match( re ) do |matched| # 一致した行だけ if first_time # 最初だけ puts full_path first_time = false end puts line end end first_time = true end 出力 /mnt/c/Users/Owner/Documents/test/test/test01.log 0501 Error! |まちがってるよ |まちがってるよ /mnt/c/Users/Owner/Documents/test/test02.log |xx bb Errorzz http://mevius.5ch.net/test/read.cgi/tech/1568616071/180
181: デフォルトの名無しさん [sage] 2020/05/05(火) 21:21:30.44 ID:6nb4DqgK 本当にデータが大きいのであれば データを分割して複数のPCで並列実行するのも 考えた方がいい http://mevius.5ch.net/test/read.cgi/tech/1568616071/181
182: デフォルトの名無しさん [] 2020/05/05(火) 23:18:26.51 ID:G46XbD1M Pythonでもシェルでもどっちでも良いけど、大量ファイル相手ならマルチで処理すれば良い ファイル毎にやる処理同じなんだから http://mevius.5ch.net/test/read.cgi/tech/1568616071/182
183: 180 [] 2020/05/06(水) 21:09:35.21 ID:Fjn1hDTG >>175 >>180 みたいに、もっと簡単に書けないの? Python には、glob は無いのか? 無ければ、walk とか http://mevius.5ch.net/test/read.cgi/tech/1568616071/183
184: デフォルトの名無しさん [sage] 2020/05/06(水) 21:20:13.91 ID:ohBd/rOh >>183 あるよ Path('.').rglob('*.log')とかglob.iglob(‘./**/*.log’, recursive=True)とか >>175は「ライブラリで同等の機能が用意されているにも関わらず」に対するツッコミ待ちだと思われ http://mevius.5ch.net/test/read.cgi/tech/1568616071/184
185: デフォルトの名無しさん [sage] 2020/05/07(木) 21:24:10.42 ID:xxddKGgg >>175 >>183 pythonにそんなものねえよ! だから初心者向けなんよ。 こういう温かみのある書き方こそpythonらしさがあって、いいじゃないか。 http://mevius.5ch.net/test/read.cgi/tech/1568616071/185
186: デフォルトの名無しさん [sage] 2020/05/07(木) 21:25:15.27 ID:xxddKGgg >>180 Rubyのほうがいいな シンプルでわかりやすい http://mevius.5ch.net/test/read.cgi/tech/1568616071/186
187: デフォルトの名無しさん [sage] 2020/05/07(木) 22:16:34.03 ID:O8jL8wQb >温かみのある書き方 「職人が一行一行、丁寧に書き上げました」 http://mevius.5ch.net/test/read.cgi/tech/1568616071/187
188: sage [] 2020/05/07(木) 23:20:38.81 ID:RMklkh4T rubyは玄人向けだから初心者は使っちゃダメだぞっ import glob for log in glob.glob('**/*.log', recursive=True): . outputs = [] . with open(log, 'r') as f: . for line in f: . if line.startswith('|') or line.find('Error') >= 0: . outputs.append(line) . if len(outputs): . print(log) . print('----------') . print(''.join(outputs), end='') . print('----------') http://mevius.5ch.net/test/read.cgi/tech/1568616071/188
189: デフォルトの名無しさん [sage] 2020/05/07(木) 23:21:50.47 ID:VKbX/7v8 美味しそうw http://mevius.5ch.net/test/read.cgi/tech/1568616071/189
190: デフォルトの名無しさん [sage] 2020/05/07(木) 23:37:05.12 ID:Lnek/XJg >>188 `in`を使いましょう The find() method should be used only if you need to know the position of sub. To check if sub is a substring or not, use the in operator: ついでにRubyの例はoutputsの配列が めちゃくちゃでかくなる可能性も考慮されてる http://mevius.5ch.net/test/read.cgi/tech/1568616071/190
191: 180 [] 2020/05/08(金) 12:32:49.45 ID:Fn4yfVbS >>180 は、配列化していない! メソッドチェーンで逐次処理。 前段から1つ来たら、1つ処理する 配列に入れる意味がない Dir.glob( パターン ).select{ }.each{ } http://mevius.5ch.net/test/read.cgi/tech/1568616071/191
192: 180 [sage] 2020/05/08(金) 12:39:56.07 ID:Fn4yfVbS Python は大学院卒とか、高学歴の非プログラマーの学者が使うもの。 数学・統計は知っているけど、プログラミング・コンピューター・OS などを知らない 一方、Ruby は低学歴の職人プログラマーが使うもの。 数学・統計は知らないけど、プログラミング・コンピューター・OS などには詳しい だから、Rubyの1行1行には、職人さんが丁寧に書いた、温かみが感じられる! http://mevius.5ch.net/test/read.cgi/tech/1568616071/192
193: デフォルトの名無しさん [sage] 2020/05/08(金) 13:25:49.56 ID:tDlcbx57 Pythonが文字列処理得意だったらなあ http://mevius.5ch.net/test/read.cgi/tech/1568616071/193
194: デフォルトの名無しさん [sage] 2020/05/08(金) 17:09:53.24 ID:JpV79Xjz >>193 ??? むしろバイナリ処理には呪文が必要なのがPython。 2バイト文字が大変なのには禿同。 http://mevius.5ch.net/test/read.cgi/tech/1568616071/194
195: デフォルトの名無しさん [sage] 2020/05/08(金) 19:00:25.69 ID:ztqG52En 例えば多数ある文章間で使用単語の類似性を検討するにはどの言語がやりやすい? http://mevius.5ch.net/test/read.cgi/tech/1568616071/195
196: デフォルトの名無しさん [sage] 2020/05/08(金) 19:26:27.46 ID:qca/Mwjw >>195 word2vecやdoc2vecのライブラリが揃ってたらどの言語でも良いと思う 参考資料が多いと言う観点や辞書の手に入りやすさと言う観点からはpythonかな その他重要なのは、対象とする文書を読み込めるを機能があるかどうか mdやtxtのASCIIばかりでなくdocxやpdfも対象と言うことならpythonでいい http://mevius.5ch.net/test/read.cgi/tech/1568616071/196
197: デフォルトの名無しさん [sage] 2020/05/08(金) 21:30:24.58 ID:FhTTD0+N >>193 えっ、Pythonの用途の大半は大きな意味での文字列処理 つまりテキスト処理だと思うんだが http://mevius.5ch.net/test/read.cgi/tech/1568616071/197
198: デフォルトの名無しさん [sage] 2020/05/08(金) 23:18:55.72 ID:B0NvsSSc >>194 ぱいそんに http://mevius.5ch.net/test/read.cgi/tech/1568616071/198
199: デフォルトの名無しさん [] 2020/05/09(土) 09:29:52.12 ID:3rxWY8lS おっぱyは4bytes http://mevius.5ch.net/test/read.cgi/tech/1568616071/199
200: デフォルトの名無しさん [sage] 2020/05/09(土) 11:28:18.96 ID:4AGhJAkS 知識が20年前ぐらいで止まってるんだけど perlのかわりになりますかね http://mevius.5ch.net/test/read.cgi/tech/1568616071/200
201: デフォルトの名無しさん [sage] 2020/05/09(土) 13:14:16.71 ID:mr/P9GQq perlが書ける人なら、大概の言語はOKなんではないか? http://mevius.5ch.net/test/read.cgi/tech/1568616071/201
202: デフォルトの名無しさん [sage] 2020/05/09(土) 14:05:02.83 ID:/WGeoYJn >>200 今自分がperlを使ってないことから代わりになっていると思う ただし正規表現の扱いの容易さはperlのが優れている http://mevius.5ch.net/test/read.cgi/tech/1568616071/202
203: デフォルトの名無しさん [sage] 2020/05/09(土) 14:14:06.26 ID:m5t3nUyt perlのどこまでを要求するかにもよるだろうけど、 概ね他の言語(Python含む)で代替できるのでは? http://mevius.5ch.net/test/read.cgi/tech/1568616071/203
204: デフォルトの名無しさん [sage] 2020/05/09(土) 14:18:35.09 ID:m5t3nUyt >>202 s/foo/bar/g とかはpythonでも使いたいと思うことがある まぁ、書き方の問題に過ぎないけど 置換で思い出したが、ワンライナーはperlの圧勝かなぁ http://mevius.5ch.net/test/read.cgi/tech/1568616071/204
205: デフォルトの名無しさん [sage] 2020/05/09(土) 15:55:31.80 ID:mr/P9GQq その記述はviでもsedでも使えるので便利 http://mevius.5ch.net/test/read.cgi/tech/1568616071/205
206: デフォルトの名無しさん [sage] 2020/05/09(土) 18:24:57.68 ID:9+f2Z3ZT >>200 なる! PythonやRubyはP言語だから 同じような使い道するからね もちろん文法の細部は違うけど http://mevius.5ch.net/test/read.cgi/tech/1568616071/206
207: デフォルトの名無しさん [sage] 2020/05/09(土) 18:26:06.32 ID:9+f2Z3ZT Perlって記号多用して読みにくくなるから Pythonの方がいいわ http://mevius.5ch.net/test/read.cgi/tech/1568616071/207
208: デフォルトの名無しさん [sage] 2020/05/09(土) 18:57:08.84 ID:Gxw/aWGG ワンライナーをするにはpythonはあんま向いてないな。まあ最近ワンライナーあんまり使わなくなってきたけど。 http://mevius.5ch.net/test/read.cgi/tech/1568616071/208
209: デフォルトの名無しさん [sage] 2020/05/10(日) 09:06:42.56 ID:j31NiFTx pythonだと読みやすくするために 毎回一時変数使って構造化しないといけないから 書き捨てるようなテキスト処理とは相性が悪い http://mevius.5ch.net/test/read.cgi/tech/1568616071/209
210: デフォルトの名無しさん [sage] 2020/05/11(月) 22:09:27.83 ID:qfXbD+ub >>188 横から質問します。 私は163さんではありませんが、学習のためにここを覗きました。 記載されているプログラムを実行すると、 ’|まちがってるよ¥n’ ,’|まちがってるよ¥n’ と前後に記号と、改行コードがついてしまいますが、これを除去して出力する方法はありますでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1568616071/210
211: デフォルトの名無しさん [sage] 2020/05/11(月) 23:26:53.85 ID:masQzK0H line.rstrip() http://mevius.5ch.net/test/read.cgi/tech/1568616071/211
212: デフォルトの名無しさん [] 2020/05/12(火) 10:06:33.55 ID:4WwqN1hQ ほちがってるよ http://mevius.5ch.net/test/read.cgi/tech/1568616071/212
213: デフォルトの名無しさん [sage] 2020/05/12(火) 11:44:31.16 ID:s06VnCgE >>210 print(''.join(output), end='') のところは実行してる? http://mevius.5ch.net/test/read.cgi/tech/1568616071/213
214: 210 [sage] 2020/05/12(火) 22:39:09.39 ID:7RXslmjs >>213 はい、そのまま実行すると改行コードがそのままでてしまうのです。 せめて改行して表示してくれればよいのですが..... http://mevius.5ch.net/test/read.cgi/tech/1568616071/214
215: 210 [sage] 2020/05/12(火) 22:40:50.64 ID:7RXslmjs >>211 line=line.rstrip() とすればいけるかなあ...と思いましたが、 だめみたいですね(´・ω・`) http://mevius.5ch.net/test/read.cgi/tech/1568616071/215
216: デフォルトの名無しさん [sage] 2020/05/13(水) 03:39:34.71 ID:ibBgBr2u >>215 OSとpythonのバージョンを教えて あとfor line in f:の下に以下のデバッグコード入れてみて欲しい print([f'{x:02x}' for x in line.encode('utf-8')]) の出力が見たい macで実行すると >>> line = 'あいう¥n' >>> print([f'{x:02x}' for x in line.encode('utf-8')]) ['e3', '81', '82', 'e3', '81', '84', 'e3', '81', '86', '0a'] >>> print([f'{x:02x}' for x in line.rstrip().encode('utf-8')]) ['e3', '81', '82', 'e3', '81', '84', 'e3', '81', '86'] 最後の0aが改行コードLFなので、rstrip()するとちゃんと消える http://mevius.5ch.net/test/read.cgi/tech/1568616071/216
217: デフォルトの名無しさん [sage] 2020/05/14(木) 20:12:34.90 ID:eyziGhr3 a = '' b = '123' とした時、 if a: とすれば、False 、 if b: とすれば、True と評価されるけど、 この真偽値をif文を用いずに変数に直接代入するにはどうしたらいい? bool_a = not (not a) # False bool_b = not (not b) # True とすれば、目的は達せられるけど、二重否定でいかにもまわりくどい そのものズバリの方法はないかな? http://mevius.5ch.net/test/read.cgi/tech/1568616071/217
218: デフォルトの名無しさん [] 2020/05/14(木) 20:20:09.01 ID:xR/PZA9p !!a http://mevius.5ch.net/test/read.cgi/tech/1568616071/218
219: デフォルトの名無しさん [] 2020/05/14(木) 20:22:21.62 ID:xR/PZA9p bool(a) http://mevius.5ch.net/test/read.cgi/tech/1568616071/219
220: 217 [sage] 2020/05/14(木) 20:47:02.81 ID:eyziGhr3 >>219 どうもありがとう スッキリしたわ http://mevius.5ch.net/test/read.cgi/tech/1568616071/220
221: デフォルトの名無しさん [sage] 2020/05/17(日) 17:21:31.20 ID:xAYNfwXu scikit-learnよりXGBoostのrandomforestのほうが性能よいのですか? http://mevius.5ch.net/test/read.cgi/tech/1568616071/221
222: デフォルトの名無しさん [] 2020/05/19(火) 22:28:31.73 ID:m8F9ts/N > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw http://mevius.5ch.net/test/read.cgi/tech/1568616071/222
223: デフォルトの名無しさん [sage] 2020/05/24(日) 23:50:52.29 ID:k0sc2Lpo えーと、たとえばubuntuでspyder使うとき、ubuntuのaptとかsnapで入れたものと Anacondaの中で入れたものだと設定ファイルとかちゃんと別のものになりますか? http://mevius.5ch.net/test/read.cgi/tech/1568616071/223
224: デフォルトの名無しさん [] 2020/05/25(月) 01:07:05.65 ID:Y9cCXaqZ 自分でどこを見るのか設定するだけ http://mevius.5ch.net/test/read.cgi/tech/1568616071/224
225: デフォルトの名無しさん [sage] 2020/05/25(月) 13:33:29.09 ID:gis+qwRr 漏れは、Windows 10, WSL, Ubuntu 18.04 で、 VSCode の拡張機能、Remote WSL も使って、 Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、 ruby 2.6.6, node 12.16.2 を入れた rubyコマンドの参照先を確認する rbenv which ruby ~/.rbenv/versions/2.6.6/bin/ruby global はシステム全体、local は、そのプロジェクトだけのバージョンを設定する rbenv global 2.6.6 rbenv local 2.6.6 system は、apt などで、/usr/bin/ruby へ、インストールしたバージョンを設定する rbenv global system rbenv local system つまり、apt のパッケージとも共存できる http://mevius.5ch.net/test/read.cgi/tech/1568616071/225
226: 223 [sage] 2020/05/26(火) 00:28:20.96 ID:4e/0HGGp レスくれた人ありがとう。 どうやら共存大丈夫そうですね。 http://mevius.5ch.net/test/read.cgi/tech/1568616071/226
227: デフォルトの名無しさん [sage] 2020/05/28(木) 16:03:49.90 ID:G/K3BByi return selfするメソッドのアノテーションってどう書けばいいんですか? http://mevius.5ch.net/test/read.cgi/tech/1568616071/227
228: デフォルトの名無しさん [sage] 2020/05/28(木) 16:25:49.15 ID:Xow4Xb3r from __future__ import annotations https://www.python.org/dev/peps/pep-0563/#enabling-the-future-behavior-in-python-3-7 http://mevius.5ch.net/test/read.cgi/tech/1568616071/228
229: デフォルトの名無しさん [] 2020/05/31(日) 23:18:11.68 ID:LQxE6hd6 じゃんけんプログラムがかけるようになった。 フリーで仕事がとれるようになるまでが10だとしたら、 自分はいくらくらいですか? マジレスお願いします。 http://mevius.5ch.net/test/read.cgi/tech/1568616071/229
230: デフォルトの名無しさん [sage] 2020/05/31(日) 23:37:35.44 ID:TtXgrlrn >>229 0.1にも満たないよ。 英語の翻訳の仕事をフリーでやりたいという人が、this is a pen. を読めるようになりました!って言っているような程度だよ。 http://mevius.5ch.net/test/read.cgi/tech/1568616071/230
231: デフォルトの名無しさん [] 2020/05/31(日) 23:55:59.29 ID:H+ILjMnx >>230 返信ありがとうございます! ではまずは1になれるように精進します!! http://mevius.5ch.net/test/read.cgi/tech/1568616071/231
232: デフォルトの名無しさん [sage] 2020/06/01(月) 08:45:29.60 ID:jwD9tPwu >>230 もしかしたら、深層学習で顔の画像から相手の出す手を予測するタイプ のすごいプログラムかもしれないぞ? http://mevius.5ch.net/test/read.cgi/tech/1568616071/232
233: デフォルトの名無しさん [sage] 2020/06/01(月) 15:55:08.82 ID:Ottf6K9E tensorflow 2.1のtf.keras.layers.BatchNormalizationはfloat64に対応してないですか? BatchNormalizationレイヤーにデータxを流すと以下のエラーが表示されます TypeError: Value passed to parameter 'x' has DataType float64 not in list of allowed values: float16, bfloat16, float32 http://mevius.5ch.net/test/read.cgi/tech/1568616071/233
234: デフォルトの名無しさん [sage] 2020/06/01(月) 17:05:51.39 ID:XHS7d8W6 画像処理AIなら16bitでも十分であることがわかってきて、nvidiaも今更16bit対応を追加しつつある状況なのに、64bitでやる必要あるの? http://mevius.5ch.net/test/read.cgi/tech/1568616071/234
235: デフォルトの名無しさん [sage] 2020/06/07(日) 23:44:20.07 ID:66u/7Jn0 >>188 みたいな文書の検索処理の対象がUnicodeだった場合、pythonとRubyだったらどちらが早いのかな? http://mevius.5ch.net/test/read.cgi/tech/1568616071/235
236: デフォルトの名無しさん [sage] 2020/06/08(月) 07:08:57.26 ID:jRTLufNn 「早い」が処理速度なのか開発コストなのか http://mevius.5ch.net/test/read.cgi/tech/1568616071/236
237: デフォルトの名無しさん [sage] 2020/06/08(月) 11:39:46.10 ID:XmX+evHg >>235 それオレ環で簡易ベンチしたんだけど インタプリタの起動速度を含めるとpython : ruby = 1 : 1.06 処理部分だけで比べるとpython : ruby = 1 : 0.53 だった でもその差が気になるような処理をするなら pythonでもrubyでもなくgrepとか適切なツールを使うべき http://mevius.5ch.net/test/read.cgi/tech/1568616071/237
238: デフォルトの名無しさん [sage] 2020/06/08(月) 13:07:05.48 ID:zTE1iszp 文脈で分かんない? http://mevius.5ch.net/test/read.cgi/tech/1568616071/238
239: デフォルトの名無しさん [sage] 2020/06/08(月) 14:58:20.15 ID:CcRhG7ur >>238 この分野では曖昧性がある場合は必ず明記することをお勧めする http://mevius.5ch.net/test/read.cgi/tech/1568616071/239
240: デフォルトの名無しさん [sage] 2020/06/08(月) 20:38:55.89 ID:A6u337hJ 曖昧なこと曖昧なまま連絡つないだりしたら吊るされるんよな…… http://mevius.5ch.net/test/read.cgi/tech/1568616071/240
241: デフォルトの名無しさん [sage] 2020/06/09(火) 04:35:52.13 ID:Y3iPH2bl たかが5chで大げさだな http://mevius.5ch.net/test/read.cgi/tech/1568616071/241
242: デフォルトの名無しさん [sage] 2020/06/09(火) 05:38:14.05 ID:mC6F5bWM たかが5chだけと一応技術板だしね ゆるーくやりたいならマ板にどうぞ http://mevius.5ch.net/test/read.cgi/tech/1568616071/242
243: デフォルトの名無しさん [sage] 2020/06/09(火) 07:48:39.06 ID:gdEdgfU+ 一応技術板だけど所詮5chだし http://mevius.5ch.net/test/read.cgi/tech/1568616071/243
244: デフォルトの名無しさん [sage] 2020/06/14(日) 15:33:11.91 ID:9oaOHKUH >>188 横から失礼します。 一連のやり取り興味深く見ておりました。 たとえば、検索対象のログファイルが全部Unicodeであった場合、print処理するときにutf8やなんかにencodeするだけでいけますか? 検索文字もUnicodeに変換しないと駄目でしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1568616071/244
245: デフォルトの名無しさん [sage] 2020/06/14(日) 16:39:48.82 ID:9pT3ELpf >>244 pythonでやるなら検索対象のログファイルを読み込むときにutf8に変換したほうが楽だと思うぞ http://mevius.5ch.net/test/read.cgi/tech/1568616071/245
246: デフォルトの名無しさん [] 2020/06/15(月) 12:37:42.32 ID:iqqqiJ5Y >>244 >検索対象のログファイルが全部Unicodeであった場合、print処理するときにutf8やなんかにencodeする ログファイルがUnicodeって少数派じゃないかな ログファイルがutf8だったらpythonで読むときにUnicodeにdecodeするべき printは勝手に環境に合わせてencodeしてくれるのを期待 http://mevius.5ch.net/test/read.cgi/tech/1568616071/246
247: デフォルトの名無しさん [sage] 2020/06/15(月) 13:07:41.60 ID:yqEOs8la Unicodeはencodingではないんだけど UTF-16のことをUnicodeって言ってる? http://mevius.5ch.net/test/read.cgi/tech/1568616071/247
248: デフォルトの名無しさん [sage] 2020/06/15(月) 13:29:56.19 ID:Sq9k4kzW まさかutf16leのことをunicodeって呼んでるのか? だったらutf16leにデコードしちゃダメだろ… http://mevius.5ch.net/test/read.cgi/tech/1568616071/248
249: デフォルトの名無しさん [] 2020/06/19(金) 00:00:07.20 ID:NJwW7ejS python 使い始めて数年だけども、今日初めて知ったことがあるので質問させてください。 python のクラスって、インスタンスを生成した後に、勝手にメンバー変数を定義できちゃうものなんですか? もし、それがよく知られている機構なのであれば、一般的に何と呼ばれているのか教えてください。 例) >>> class myClass(): ... pass ... >>> c1 = myClass() >>> dir(c1) ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__'] >>> c1.hoge = 'hogehoge' >>> c1.hoge 'hogehoge' >>> dir(c1) ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'hoge'] また、こう言ったことをさせないためには、どうすれば良いのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1568616071/249
250: デフォルトの名無しさん [sage] 2020/06/19(金) 00:46:41.82 ID:2U294rNY >>249 よく知られてる機構だけど特別な名前が付いてるわけではない 後から変更させたくないなら@dataclass(frozen=True)を使えば良いと思う http://mevius.5ch.net/test/read.cgi/tech/1568616071/250
251: デフォルトの名無しさん [sage] 2020/06/19(金) 01:40:12.76 ID:hR7tqNr3 Ruby・JavaScript でも同じ。 動的言語のオープンクラス・メタプログラミング・モンキーパッチとかだろw JavaScript のprototype.js では、クラスに独自のメソッドを追加していたから、 ユーザーを混乱させた、モンキーパッチ・猿として嫌われたw 一方、Ruby on Rails では、オープンクラスとして便利なメソッドとして認められている。 JavaScript のjQuery の$ とか、Lodash の_ なども、認められている 同じことをやっても、嫌われると猿の扱いで、 好かれると、便利と言われるw http://mevius.5ch.net/test/read.cgi/tech/1568616071/251
252: 251 [sage] 2020/06/19(金) 05:19:33.46 ID:hR7tqNr3 そのインスタンスだけに定義される、変数・メソッドは、 特異クラス・シングルトンクラス JavaScript で書くと、x は、インスタンスa だけに定義されて、 b には定義されない function Car( ) { } a = new Car( ) a.x = 1 b = new Car( ) console.log( a.x, b.x ) //=> 1 undefined http://mevius.5ch.net/test/read.cgi/tech/1568616071/252
253: デフォルトの名無しさん [] 2020/06/19(金) 13:24:58.24 ID:NJwW7ejS >>250,251,252 ありがとうございます!! この機構、個人的には大変気持ち悪い… http://mevius.5ch.net/test/read.cgi/tech/1568616071/253
254: デフォルトの名無しさん [] 2020/06/19(金) 13:43:36.79 ID:rfdO6NUF わたくしは「メソッドを生やす」と呼んでいる Python Tips:既存のクラスにインスタンスメソッドを追加したい - Life with Python ttps://www.lifewithpython.com/2014/08/python-add-instance-methods-to-existing-class.html r9VaaG - Online Python Interpreter & Debugging Tool - Ideone.com https://ideone.com/r9VaaG class MyClass(): pass def calc(x): return x**2 c = MyClass() c.sq = calc print(c.sq(5))#25 http://mevius.5ch.net/test/read.cgi/tech/1568616071/254
255: デフォルトの名無しさん [sage] 2020/06/19(金) 13:46:13.98 ID:rQKhbTAp ビアードが生えそう http://mevius.5ch.net/test/read.cgi/tech/1568616071/255
256: デフォルトの名無しさん [] 2020/06/19(金) 14:11:20.02 ID:GhHOGZr1 >>249 そのための__setattr__() http://mevius.5ch.net/test/read.cgi/tech/1568616071/256
257: デフォルトの名無しさん [] 2020/06/21(日) 17:15:10.24 ID:rRP2z2l8 普及してる呼び名は 黒魔術 http://mevius.5ch.net/test/read.cgi/tech/1568616071/257
258: デフォルトの名無しさん [] 2020/06/25(木) 13:14:07.96 ID:ZVt/yuYi > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw http://mevius.5ch.net/test/read.cgi/tech/1568616071/258
259: 249 [] 2020/06/28(日) 01:25:43.97 ID:wIxce2FJ みなさん、ありがとうございます。 このモンキーパッチングが役に立つ場面ってどんなところなんでしょ? 自分で思いつく限りでは、そこそこ規模の大きいプロジェクトでのユニットテストで 不具合に対する対処で一時的にメソッドを書き換えてみたりとか、デバッグ用にフィールドを 追加してみたりとか、そんなことしか思いつかんです… http://mevius.5ch.net/test/read.cgi/tech/1568616071/259
260: デフォルトの名無しさん [] 2020/06/28(日) 11:56:03.44 ID:h57n4OGN 馬鹿には無理 http://mevius.5ch.net/test/read.cgi/tech/1568616071/260
261: デフォルトの名無しさん [] 2020/07/02(木) 08:46:13.12 ID:v0dv8vSc > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw Pythonさえろくにできないバカチョンのくせに できるとほざくクソチョンw http://mevius.5ch.net/test/read.cgi/tech/1568616071/261
262: デフォルトの名無しさん [sage] 2020/07/24(金) 08:16:39.89 ID:H7XPw156 while True ____government.tax += people.income.pop() ____if people.income == []: ________people.life = 0 ________people = people.next http://mevius.5ch.net/test/read.cgi/tech/1568616071/262
263: デフォルトの名無しさん [sage] 2020/07/24(金) 13:27:10.68 ID:GzrObJre if output_people_per_year >= 2.0: https://www.youtube.com/watch?v=knCbMFQJXxY http://mevius.5ch.net/test/read.cgi/tech/1568616071/263
264: デフォルトの名無しさん [sage] 2020/09/15(火) 23:18:47.34 ID:9gzhU/ts site:qiita.com/advent-calendar/ python http://mevius.5ch.net/test/read.cgi/tech/1568616071/264
265: デフォルトの名無しさん [sage] 2020/09/15(火) 23:22:58.86 ID:THx0WIti ビビった…… アドベントカレンダーもうやるのかなと……。 http://mevius.5ch.net/test/read.cgi/tech/1568616071/265
266: デフォルトの名無しさん [sage] 2020/09/21(月) 19:30:31.86 ID:z6mfdWZh 本屋さんでPythonの本を見てきたがインプットとアウトプットのバランスが良い本が見つからない 説明読んで例題沢山やって、説明読んで例題...と言うのが理想 http://mevius.5ch.net/test/read.cgi/tech/1568616071/266
267: デフォルトの名無しさん [sage] 2020/09/21(月) 19:47:22.56 ID:UAdp/MOE >>266 そらアウトプットは自分でやるもんだから本には書いてないでしょ http://mevius.5ch.net/test/read.cgi/tech/1568616071/267
268: デフォルトの名無しさん [sage] 2020/09/21(月) 20:51:04.59 ID:UOqwcRjE インデントはなあ。 http://mevius.5ch.net/test/read.cgi/tech/1568616071/268
269: デフォルトの名無しさん [] 2020/09/22(火) 02:51:14.72 ID:EwzeVKsQ 本屋のpythonの本棚は膨張する一方だが 中身は薄くなる一方 http://mevius.5ch.net/test/read.cgi/tech/1568616071/269
270: デフォルトの名無しさん [sage] 2020/09/22(火) 07:47:55.69 ID:e8bXVdUA 最初はみんなのPythonあたりでいいかね? http://mevius.5ch.net/test/read.cgi/tech/1568616071/270
271: デフォルトの名無しさん [sage] 2020/09/25(金) 09:40:04.16 ID:UVM8czPJ ド初心者の感想ききたいのであれば ここを取り下げて↓だろJK くだすれPython(超初心者用) その50【まず1嫁】 https://mevius.5ch.net/test/read.cgi/tech/1598527450/ http://mevius.5ch.net/test/read.cgi/tech/1568616071/271
272: デフォルトの名無しさん [] 2020/09/30(水) 11:43:32.93 ID:TOyie83v csvファイルを読み込んでみたのですが中身が全部nanになります。解決方法を教えてください http://mevius.5ch.net/test/read.cgi/tech/1568616071/272
273: デフォルトの名無しさん [sage] 2020/09/30(水) 12:21:14.83 ID:NNWpaWfq >>272 スパイスが足りないよ http://mevius.5ch.net/test/read.cgi/tech/1568616071/273
274: デフォルトの名無しさん [sage] 2020/09/30(水) 12:46:37.48 ID:/dbaz1tV >>270 「みんなのPython 第4版、2017」は、内容が薄い 「パーフェクト Python [改訂2版] (PERFECT SERIES 5)、2020/6/1」の新版が出た。 これは内容が濃いけど、初心者向けでは無いかも http://mevius.5ch.net/test/read.cgi/tech/1568616071/274
275: デフォルトの名無しさん [sage] 2020/09/30(水) 13:04:45.13 ID:YQqgGXto スイッチ文まだかよ(´・ω・`) http://mevius.5ch.net/test/read.cgi/tech/1568616071/275
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 180 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s