22/12/30 00:23:52.63 i/Imw4oH0.net
何もしなかったから壊れたということを知るべき。
338:デフォルトの名無しさん
22/12/30 05:59:51.50 uddbjkCB0.net
>>327-330
大変勉強になりました
お三方にいただいたアドバイスをもとに
これから検討いたします!
339:デフォルトの名無しさん
22/12/30 08:21:58.84 DzZqzBlm0.net
PythonってVisual Studio のCodeの方じゃなくてCoreの方にも入ってるよね
いつもVB.NetやC#で使ってるからそっち使ってるわ。
340:デフォルトの名無しさん
22/12/30 11:56:52.21 KypYNh+sp.net
デコレータって関数受けて関数返せばデコレータと言っていいの?
それとも機能の追加が出来れば関数返さなくてもいいの?
デコレータの例が全部ラップしてるから関数返すものをデコレータっていうのかと思ったけど、Pythonの構文的には機能の追加が要件ぽくてよくわからん
341:デフォルトの名無しさん
22/12/30 12:18:32.93 +LXrKtXS0.net
それは高階関数かな
342:デフォルトの名無しさん
22/12/30 12:32:28.57 EYlolZ9wp.net
>>338
def deco (fn):
print("Good")
fn()
print("Good")
↑の関数は高階関数と言えるし、デコレータとも言える?
343:デフォルトの名無しさん
22/12/30 12:34:35.19 6lQGRZJ+d.net
>>339
デコレータとは、@decoの形で使用されることを想定している関数
ただそれだけのこと
344:デフォルトの名無しさん
22/12/30 12:39:12.89 EYlolZ9wp.net
>>340
def deco (fn):
print("Good")
fn()
print("Good")
と↑をラップした↓
def outer (fn):
def deco ():
print("Good")
fn()
print("Good")
return deco
だとそれぞれどういうメリットデメリットが想定できる?
この程度だったら何も変わらない?
345:デフォルトの名無しさん
22/12/30 14:25:39.66 v4ysyuF5a.net
>>341
前者はデコレータとして使用できない
後者は使用できる
それだけのこと
346:デフォルトの名無しさん
22/12/30 14:30:10.80 CAw5d3+3p.net
>>342
前者もデコレータとして使えるよ?
@decoで使うってことだよね?
347:デフォルトの名無しさん
22/12/30 21:59:47.08 i0HtXYTfp.net
>>343
自己解決しました
348:デフォルトの名無しさん
22/12/30 22:26:59.27 XgQsZPRMM.net
自己解決とは一体・・・ww
349:デフォルトの名無しさん
22/12/31 00:05:03.98 Y1CGuIqUp.net
>>345
自分のわかっていないところがわかりました
350:デフォルトの名無しさん
22/12/31 00:20:01.24 E+Koymh80.net
replitのpythonテンプレートを使っているのですが、実行すると勝手にパッケージをインストールしたりします。これを止める事は出来ますか?
351:デフォルトの名無しさん
22/12/31 00:20:01.95 E+Koymh80.net
replitのpythonテンプレートを使っているのですが、実行すると勝手にパッケージをインストールしたりします。これを止める事は出来ますか?
352:デフォルトの名無しさん
22/12/31 14:58:09.42 iYLc9PIz.net
main.pyのソースを見たときに
import ○○ #upm package(パッケージ名)
の行のコメントアウト外すと消えるかも>>348
353:デフォルトの名無しさん
23/01/01 18:58:07.86 QkrDyXxA0.net
ワークマンの売上高は10年で2.6倍 好調の背景に何があるのか
www.itmedia.co.jp/business/articles/2301/01/news011.html
ワークマンpythonらしいぞ
まーそうなるわな
354:デフォルトの名無しさん
23/01/01 19:36:11.17 ps54Dm7d0.net
スレチだけど...
> KPIを達成しても売り上げが伸びない場合、社員ではなく経営の責任ということになります。
> 『会社がやれと言った内容がそもそも間違っていたんだね』ということで
まあインタビュー記事だからいくつか盛ってるとは思うけどこれがそれなりでも浸透してるなら確かに強いと思うわ
355:デフォルトの名無しさん
23/01/01 21:38:32.18 OSWb6iEUM.net
>>350
ぶっちゃけ一番安上がりだからじゃね?
356:デフォルトの名無しさん (ワッチョイ 9a7d-hX/W)
23/01/01 22:00:13.33 UVAQFgfk0.net
ちょっと前のすれにtypecheckerが出てたけど、
仕事で静的型付けって意識してる?
Dropboxが静的型付け使って開発してるぜ~っていう記事を
ちょうど見かけたもんで。
URLリンク(navi.dropbox.jp)
357:デフォルトの名無しさん
23/01/01 22:16:25.00 2lDDSA+U0.net
実際には型が動的で有り難いことは殆どなくて、大抵は決まったものしか入らない
だからこそ型なんか書かなくていい、という思想な気がする
358:デフォルトの名無しさん
23/01/01 22:41:34.82 65g2Zgvwd.net
>>353
typing hint(+dats class) 、mypyももちろんオン。会社など複数人が関わるプロジェクトね。一人なら好きにやれば良い
359:デフォルトの名無しさん
23/01/02 12:12:57.71 XEDAh58aa.net
Windows環境で、「アプリと機能」の一覧に表示されるソフトウェア名一覧をPythonから取得するにはどうしたら良いですか??
URLリンク(tadaup.jp)
360:デフォルトの名無しさん
23/01/02 12:15:15.36 a90VB+UOd.net
レジストリ読む
361:デフォルトの名無しさん
23/01/02 14:11:49.16 VCjQSWZY0.net
WMI
362:デフォルトの名無しさん
23/01/02 17:01:40.21 mMdAew+l0.net
ChatGPTで答えさせて3つ出したコードのうちwmic使ったものを手直ししてみた
デコードをutf-8だったのをcp932にしたり文字列の整形あたりを改変しなきゃだったけどこういうとき結構良い答え持ってくる
Windows環境で、「アプリと機能」の一覧に表示されるソフトウェア名一覧をPythonから取得するにはどうしたら良いですか??
Windowsで「アプリと機能」の一覧を取得するには、次のような方法があります。
wmic コマンドを使用する
Windows Management Instrumentation (WMI) を使用する
PowerShell を使用する
以下は、いずれの方法もPythonから実行するための例を示します。
import subprocess
result = subprocess.run(['wmic', 'product', 'get', 'name'], stdout=subprocess.PIPE)
output = result.stdout.decode('cp932')
applications = [line.strip() for line in output.split('\n')]
for app in applications:
print(app)
363:デフォルトの名無しさん
23/01/02 19:23:19.67 gNyrLSWLd.net
>>359
すごい!ありがとうございます!
364:デフォルトの名無しさん
23/01/02 19:38:51.68 qfqFAF6wa.net
>>359
サンプルが少ないからほぼ直コピペなんだろうな
365:デフォルトの名無しさん (ワッチョイ 9733-QAWg)
23/01/02 20:50:28.36 xWUsdzOR0.net
自演はいいって
366:デフォルトの名無しさん (ワンミングク MM8a-+uJR)
23/01/02 21:06:38.35 gHhSLzFgM.net
すごくいいです
367:デフォルトの名無しさん (ワッチョイ 0754-i7z+)
23/01/02 21:08:42.90 9G/14EFS0.net
subprocessの書き方古くない?
368:デフォルトの名無しさん (ワッチョイ 9733-QAWg)
23/01/02 21:18:09.07 xWUsdzOR0.net
いやrunは新しいAPIだよ
369:デフォルトの名無しさん (ワッチョイ 0754-i7z+)
23/01/02 21:20:08.80 9G/14EFS0.net
cmdを起動せずにリストを渡すのと、cmdにコマンドの文字列渡すやり方があるよね
370:デフォルトの名無しさん
23/01/02 21:30:45.62 xWUsdzOR0.net
文字列渡すパターンは危険だからね
チェックをちゃんとしないと予期せぬコマンドが実行される
shell=Trueしてると特にやばい
371:デフォルトの名無しさん
23/01/02 21:32:02.96 9G/14EFS0.net
別にリストでも変わらないと思うけど
面倒なだけで
372:デフォルトの名無しさん
23/01/02 21:36:28.26 1k7qyNCA0.net
>>364
新しい書き方教えて
373:デフォルトの名無しさん
23/01/02 21:38:52.52 9G/14EFS0.net
時系列はよく知らんけど、リストで渡す方法がまずあって、
不便だからと文字列の方法が追加されたんじゃないの?
374:デフォルトの名無しさん
23/01/02 22:12:07.01 65aHjL4I0.net
shlex.split("date +%a")
# -> ["date", "+%a"]
run に渡すリストはこうやって作ると便利だよ (´・ω・`)
375:デフォルトの名無しさん
23/01/02 22:23:15.59 9G/14EFS0.net
普通にf文字列がいい
376:デフォルトの名無しさん
23/01/02 22:47:14.11 +OShonpv0.net
ModuleNotFoundError: No module named 'xml.etree'; 'xml' is not a package
ElementTreeでXMLを作成すると上のエラーがどうしても出てしまいます。
ElementTree以外にXMLがいじれるのって何がいいですか?
BeautifulSoupですか?
377:デフォルトの名無しさん
23/01/02 23:55:25.20 VCjQSWZY0.net
xml.pyかxmlなディレクトリがあるんちゃうか
ググっても同じこと書いてる記事多数
378:デフォルトの名無しさん
23/01/03 00:26:25.58 o2Yi6Z0r0.net
>>374
レスありがとうです。その記事を見て確認したんですけど特に問題はなく、それ以外の解決法も見当たらずでお手上げ状態です
379:デフォルトの名無しさん
23/01/03 00:37:01.34 hRecP/5n0.net
エラーが出ますは自力で解決しろとしか
ただの間違いなんだから
380:デフォルトの名無しさん
23/01/03 02:55:11.90 LZW0ef8O0.net
誰もやらないと思うけど
こんな感じのエスケープだと、失敗してしまう
(コマンドプロンプトやshell=Trueだと、成功する)
C:¥&
381:quot;Program Files"¥Python¥python.exe -V
382:デフォルトの名無しさん
23/01/03 06:11:34.42 cXTWG1PB0.net
そりゃ " " を剥ぎ取るとかは c m d.exe がやってるんだからそれを食わせたいなら同じ事をしてやらないと失敗するのは当たり前
383:デフォルトの名無しさん
23/01/03 09:57:15.62 LZW0ef8O0.net
文字列で渡すときはWinAPIのCreateProcessを見てね
って、書いてあったわ
実行ファイルの解釈から違うとは思わなかった
すまん
384:デフォルトの名無しさん
23/01/03 15:48:59.80 E/lRcWz50.net
ファイル名の取得という基礎の基礎が
ようやく安定したレベルですまない。
import glob
files = glob.glob("./images/**", recursive=True)
print("recursive", files)
フォルダ直下にjpgファイル21個のみ入っている場合、結果が、
recursive [1.jpg 2,jpg,~,21.jpg]
と横長に表示されると思う。
これをExcelに貼り付けたときも同じかな。
これを縦に表示させることってできる?
recursive[
1.jpg,
2.jpg,
|
21.jpg]
みたいなイメージで結果を出力したい。
そもそもできることなのか分からないけど、
素直にWordに貼り付けて、
カンマを特殊文字で改行に置き換えた方がはやいかな?
385:デフォルトの名無しさん
23/01/03 16:00:07.29 xk3Wdt8AM.net
>>380
“\n”.join(files)
386:デフォルトの名無しさん
23/01/03 16:04:23.85 HKIHgf/70.net
globはいろいろ謎だよな
歴史的な何かとの互換性で微妙に使いにくい
387:デフォルトの名無しさん
23/01/03 16:06:39.39 HKIHgf/70.net
とりあえず、import glob はやらなくて、
from pathlib import Path
p = Path("./")
for file in [str(x) for x in p.glob("*")]:
print(file)
みたいに使ってるけど、これでもしっくり来ない
388:デフォルトの名無しさん
23/01/03 16:15:41.39 97qfA6UK0.net
自分でフィルタしたいならos.walk
389:デフォルトの名無しさん
23/01/03 16:25:05.94 E/lRcWz50.net
>>381
ありがとう。
一見すると、単に","が"n"に変わっただけのように見えるけど、
Excelに貼り付けたときの挙動がまったく異なるんだね。
しかし検索してもアフィみたいなサイトしかなくて大変だな
入門書探してみるノシ
390:デフォルトの名無しさん
23/01/03 17:15:05.41 90wq8UOz0.net
\nただの改行だよ
391:デフォルトの名無しさん
23/01/03 18:00:04.32 E/lRcWz50.net
失礼。
print("\n".join(files))
こういうことね。
392:デフォルトの名無しさん
23/01/03 22:20:57.30 dIZcTCs/0.net
定期的に
tuple[str, tuple[int200個]] #key: valueです
を1万件取得して
既存の辞書に追加、更新していきます
このときkeyがなければkey, valueを登録するのはいいとして
keyが既存のときのvalueの更新はどうするのが常道ですか? 高速なのがいいです。または不要な書き換えがないほうがいいです
valueに差異があれば書き換え がいいのか、問答無用で全部更新しちゃうべきなのか…
393:デフォルトの名無しさん
23/01/03 22:55:20.83 97qfA6UK0.net
理解も進むしベンチとるのがいいよ
すでに新しいタプルを構築してるなら問答無用でいいと思うけどね
キーの確認や差異がないかしらべるコストもゼロじゃないし
394:デフォルトの名無しさん
23/01/03 22:58:56.25 n4oKw/VOa.net
データベースで言う、upsert だろ。
データが無ければinsert、有ればupdate
基本中の基本
395:デフォルトの名無しさん
23/01/04 01:07:35.19 O+gUhHpWM.net
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
396:デフォルトの名無しさん
23/01/04 08:56:21.55 fFs0aGwQ0.net
perlから来るとkeyが既にあるか無いか気にしないといけないdictがうざくて仕方ない
397:デフォルトの名無しさん
23/01/04 10:43:47.27 xfkX5cN10.net
dictを継承したmydict作って、setitemをオーバーライドすればいいんじゃない?なんかその辺のパッケージにありそうだけど
398:デフォルトの名無しさん
23/01/04 11:09:24.58 fFs0aGwQ0.net
autovivificationは便利だけどどう考えても邪悪なのでpythonには似合わないとは思う
多次元のdictとか何も考えずに作れて楽なのに
399:デフォルトの名無しさん
23/01/04 11:54:12.95 3yoX2IMb0.net
perlから来たからdefaultdictを知らないってことか
400:デフォルトの名無しさん
23/01/04 11:57:20.58 PRI0tLaEM.net
defaultdictとか関係なくないか?
単にfoo[key] = valueってしてけばいいだけの話じゃないの?
401:デフォルトの名無しさん
23/01/04 12:17:46.09 fFs0aGwQ0.net
文章に単語が何回登場したかカウントする
みたいなことをしたい時に、
if word in count:
count[word] += 1
else:
count[word] = 1
みたいに毎回判定が入る
perlなら問答無用に
$count[$word] += 1;
で済んでしまう
402:デフォルトの名無しさん
23/01/04 12:21:49.86 fFs0aGwQ0.net
で、この場合はdefaultdictで解決できるのだけれど、
そうも行かないケースがままある
403:デフォルトの名無しさん
23/01/04 12:27:21.02 3yoX2IMb0.net
そうもいかないケースを挙げてみ?
404:デフォルトの名無しさん
23/01/04 13:21:09.09 hHvDsnQT0.net
俺はこっち派
count[word] = count.get(word, 0)+1
405:デフォルトの名無しさん
23/01/04 14:05:48.69 hsLqwQpIM.net
>>397
質問とは関係ない話だったのか
defaultdictをわざわざ使わなきゃいけないのは面倒だとは思うがパフォーマンスに影響するところだから違うものとして分ける考え方も理解できる
406:デフォルトの名無しさん
23/01/04 16:11:58.90 Y9cKLIFN0.net
>>397
いいんじゃないの
上に書いてる奴は見れば一瞬で理解できる
407:デフォルトの名無しさん
23/01/04 16:31:04.37 nnn7+JHJ0.net
perlの糞文法の轍を踏まず、perl屋さんが億劫に感じる方向でおながいしまつ
408:デフォルトの名無しさん
23/01/04 16:33:02.89 s5vEki4Ca.net
そりゃ言語が違うんだから当たり前だろ
そんなにperlが好きなら一生perl浸かってろ
409:デフォルトの名無しさん
23/01/04 16:46:54.88 169GBKXC0.net
Perlはこそっと使え
決して異教徒の目に触れさせるな
410:デフォルトの名無しさん
23/01/04 17:03:28.83 fFs0aGwQ0.net
初期化してない変数をいきなり参照したら0で構わないと思うんだけどな
99%はバグってるんじゃなくて初期化を忘れ�
411:スだけなんだから
412:デフォルトの名無しさん
23/01/04 17:46:01.10 R0FkSoR+6.net
バグの原因を初期化忘れだけに絞れるなら恩恵としては大きいな
413:デフォルトの名無しさん
23/01/04 18:04:46.20 lFNs7lW+0.net
>>406
> 99%はバグってるんじゃなくて初期化を忘れただけなんだから
根拠の無い妄想はブログとかでやってくれ
414:デフォルトの名無しさん
23/01/04 18:08:36.66 hHvDsnQT0.net
>>406
99%は言い過ぎ
415:デフォルトの名無しさん
23/01/04 18:23:39.40 fFs0aGwQ0.net
関数内の0や""で初期化してる処理を、スコープ先頭に移して挙動が変わるかどうか
変わらないならそれは省略可能だった初期化
416:デフォルトの名無しさん
23/01/04 18:23:43.29 oLi3mo910.net
>>406
そこはNoneでいいだろ。つか、初期化してなきゃ型も決まらないから0にもしようがない。
417:デフォルトの名無しさん
23/01/04 18:50:16.06 fFs0aGwQ0.net
だからこその動的型付けで、0だったことにする
文字列として参照されてたら""だったことにする
dictとして参照されてたら{}だったことにする
418:デフォルトの名無しさん
23/01/04 18:53:52.08 rMcGd+esd.net
>>412
それ別のバグ生み出しそう
型の違いって致命的じゃね
419:デフォルトの名無しさん
23/01/04 19:06:24.67 oLi3mo910.net
>>412
数値として参照されたか文字列として参照されたかってどう判断するつもり?
420:デフォルトの名無しさん
23/01/04 19:09:25.07 fFs0aGwQ0.net
perlはそのへんを、お前は人工知能か何かなのかという精度で判定してくれてた
普通に考えると確定しないようなケースでも何故か正解する
失敗すると発見不可能なバグになるから封印したんだろうな
421:デフォルトの名無しさん
23/01/04 20:10:19.57 JBcAh0Lfd.net
rubyキチガイといいこいつといい多言語は~って奴は聞いてもないこと話してきてウザい
422:デフォルトの名無しさん
23/01/04 21:31:42.96 oLi3mo910.net
そりゃperlと同じようなコンテキストの考え方を導入しなきゃ無理だな。
少なくとも、数値の加算と文字列の連結に同じ'+'演算子を使ってるpythonは
そのへん全部ひっくり返さないとならない。
423:デフォルトの名無しさん
23/01/04 21:39:33.83 fFs0aGwQ0.net
+される相手が文字列なら文字列
424:デフォルトの名無しさん
23/01/04 21:48:59.92 QnXxsDbw0.net
Option Explicit On
なんてやったら阿鼻叫喚か
425:デフォルトの名無しさん
23/01/04 22:01:32.73 lFNs7lW+0.net
>>418
両方初期化してない変数ならどうするんだ?
426:デフォルトの名無しさん
23/01/04 22:08:13.33 169GBKXC0.net
降魔の儀式を始める
427:デフォルトの名無しさん
23/01/04 23:09:43.15 fFs0aGwQ0.net
a = b + c
でbもcも未初期化なら、aも未初期化で何も困らない
428:デフォルトの名無しさん
23/01/04 23:58:47.37 PU4coe7B0.net
初期化すべきなのに忘れていて
忘れたものを忘れたまま使おうという発想が理解できない
そんなコードもコーダーも使い物にならない
429:デフォルトの名無しさん
23/01/05 00:00:28.67 UaHb0F9a0.net
>>417
呼ばれるメソッドはちがうよ割と大昔から
URLリンク(docs.python.org)
430:デフォルトの名無しさん
23/01/05 00:03:39.00 /79BsoYR0.net
>>422
そりゃ結局None。
変数の初期化はこの際関係なくて None + int -> int で None + str -> str になってほしいってことなんだろ。
431:デフォルトの名無しさん
23/01/05 00:05:55.35 /79BsoYR0.net
>>424
左辺の型が決まらないことには呼びようがないんじゃね?
432:デフォルトの名無しさん
23/01/05 07:49:37.10 DuFbe6wEd.net
Perl好きならPerl使ってろよ
433:デフォルトの名無しさん
23/01/05 08:03:01.51 0egeTroNM.net
いい加減perlおぢさんウザイな
荒らしてるという自覚は無いんだろうな
434:デフォルトの名無しさん
23/01/05 08:37:29.48 MKhVdLEmr.net
頭がPerl
435:デフォルトの名無しさん
23/01/05 08:54:26.68 qYGcpxae0.net
おっぱいがPython
436:デフォルトの名無しさん
23/01/05 08:54:31.46 XvyJyDBe0.net
暗黙より明示のルール�
437:ノ反してるから可能だとしてもやらないだろう 変数を参照するだけか書き換えもするかで名前空間が変わるのは結構暗黙的だと思うけど、 それは利便性が優先した 初期化を省略するのはそんなに利便性が無い
438:デフォルトの名無しさん
23/01/05 08:57:08.87 O+NRT3S+0.net
利便性が無いというかタイプミスを検出できなくなるから
439:デフォルトの名無しさん
23/01/05 13:08:24.65 A7vAZ1Ex0.net
ミスはしませんw
440:デフォルトの名無しさん
23/01/05 13:28:28.85 XvyJyDBe0.net
タイプミスしたら使ってない変数が現れるんだから、それは簡単に検出できる
441:デフォルトの名無しさん
23/01/05 14:43:39.73 O+NRT3S+0.net
>>434
どうやってやるの?
442:デフォルトの名無しさん
23/01/05 14:53:37.34 XvyJyDBe0.net
チェッカーにかける
443:デフォルトの名無しさん
23/01/05 16:58:05.12 Ej4/aJA/0.net
str型限定だけど、型を自動的に変更してくれるというのはちょっとありがたいかも
format()やf文字列だと、変数をそのまま突っ込めばいいので楽ちん
444:デフォルトの名無しさん
23/01/05 17:05:39.43 DbVL8BP10.net
自動変換は悪さにしか使われないという印象だからいらないかな
perlみたいに言語がよしなにやってくれるならそれで良いけど
ユーザー定義の暗黙の型変換は間違いなく地獄
445:デフォルトの名無しさん
23/01/05 17:13:54.28 /79BsoYR0.net
C++の変換コンストラクタとかな。
自分でそれを意図して書く人にとってはそのときは楽だろうけど、後から読む人が大変。
446:デフォルトの名無しさん
23/01/05 17:27:10.71 s7+Erfl9p.net
JSにおけるTSみたいなのってPythonでは作られないのかな
447:デフォルトの名無しさん
23/01/05 17:31:18.16 AfQblY9wd.net
Pythonには型アノテーションがあるから不要
TypeScriptの超柔軟な型付けを想像してるとガッカリするが
448:デフォルトの名無しさん
23/01/05 17:54:22.11 AqbKvwuBd.net
>>434
その使ってない変数が初期化されてて使えるといいって話が>>406でしょ
初期化忘れよりタイプミスの方が遙かに多いだろw
449:デフォルトの名無しさん
23/01/05 18:02:36.57 XvyJyDBe0.net
変数名や関数名をタイプするのなんか最初の1回だけだしな
450:デフォルトの名無しさん
23/01/05 18:15:14.05 AqbKvwuBd.net
タイプしないならどうするの?
まさかマウスポインタ操作するの?
451:デフォルトの名無しさん
23/01/05 18:41:22.77 XvyJyDBe0.net
マジで、変数名はコピペしかしない習慣にした方がいいよ
あるいは自動入力
アニメに出てくるハッカーじゃないんだから、キーボード叩きまくるスタイルは良くない
452:デフォルトの名無しさん
23/01/05 18:44:43.59 WQABuOJr0.net
Pythonが「メインの利用言語」で2位にとどまる、1位に立ったのは定番のあの言語
URLリンク(xtech.nikkei.com)
453:デフォルトの名無しさん
23/01/05 18:45:50.33 6GZFvj4Q0.net
コピペよりインテリセンス?オートコンプリート?をよく使う
454:デフォルトの名無しさん
23/01/05 19:02:35.19 uFuuDD5j0.net
読者アンケートの結果ごときで
会員登録で続きをご覧いただけますと来たか
455:デフォルトの名無しさん
23/01/05 19:18:25.74 DbVL8BP10.net
変数のレキシカルスコープを導入してくれ
456:デフォルトの名無しさん
23/01/05 19:39:15.56 +qdyai3T0.net
そういうのって登録するとわんさかスパムメールが届くことになる
457:デフォルトの名無しさん
23/01/05 20:37:35.36 aM58GnUZp.net
Pythonはレキシカルスコープ採用してるって出てくるけど変数のレキシカルスコープはまた違うの?
458:デフォルトの名無しさん
23/01/05 20:37:52.79 AqbKvwuBd.net
>>445
使ってない変数が現れたら簡単に検出できるんでしょ?
ならコピペする必要なくない?
459:デフォルトの名無しさん
23/01/06 16:48:17.73 YIB2cDqha.net
>>440
Nim 便利ょ
460:デフォルトの名無しさん
23/01/06 17:02:10.21 nq1XWMD+0.net
ちょっと文法が似てるだけの別言語やん
461:デフォルトの名無しさん
23/01/06 17:04:24.79 csJ7DXSap.net
>>453
Nim良さそうだけど全然流行ってる感じないね
そもそもPythonがライトユーザー向けに適合し過ぎてて進化の必要ないのかもね
462:デフォルトの名無しさん
23/01/06 17:36:13.11 YIB2cDqha.net
別言語だけど python と相性良い方
463:デフォルトの名無しさん
23/01/06 17:41:53.43 nq1XWMD+0.net
JavaとJavaScriptくらい違う
464:デフォルトの名無しさん
23/01/06 17:45:56.69 DjpXTv+h0.net
ほな一緒やないかい
465:デフォルトの名無しさん
23/01/06 20:18:53.27 Hxt0hqaC0.net
どこがやねーんっ
466:デフォルトの名無しさん
23/01/06 23:55:41.03 Hw74BWkVd.net
pythonを-cオプションでワンラインフィルタ作るときって便利なやり方ない?
これ相当のものをワンラインで書けるようにしたい
def inputs():
while True:
try: yield input()
except EOFError: return
for x in inputs(): print(x.upper())
EOFErrorの無視は終了コードが失敗になるから不可
sys.stdin.read().split("\n")利用はstdinのバッファリングのオンオフを切り替えられないから不可
467:デフォルトの名無しさん
23/01/07 00:31:00.42 xLvAB63F0.net
python -uc 'import sys; sys.stdout.writelines((print(x) or x.upper()) for x in sys.stdin)'
これだと行バッファ不可避だからsys.stdin.read(n)で書かんとか
468:デフォルトの名無しさん (ワッチョイ 7110-9O0i)
23/01/07 00:38:08.36 xLvAB63F0.net
多用するならPerlの-pe/-ne相当になるモジュール用意してフィルタだけ書くスタイル
469:デフォルトの名無しさん
23/01/07 00:49:55.38 lVhOhIz00.net
M1 Macでfor文を勉強中なんだけど、
names = ['A', 'B', 'C']
for name in names: print(name +'さん')
これをターミナルで実行しても
「・・・」
と表示されるだけで何の反応もない
M1だから、でしょうか。
あとでWindowsでも試してみる
470:デフォルトの名無しさん
23/01/07 01:24:54.56 4BI3EQQz0.net
もっかいエンター押せ
471:デフォルトの名無しさん
23/01/07 02:01:54.97 GmV1yQnL0.net
ここに書けるなら、Sandbox にも書けるだろう
472:デフォルトの名無しさん
23/01/07 02:09:26.56 WGkjV5JA0.net
>>463
釣りはやめろ
473:デフォルトの名無しさん
23/01/07 03:23:48.08 odL5Q3k30.net
>>462
ああそうか 単にフィルタ部だけ受け取ってexecしてしまえば楽だったか
ありがとう
474:デフォルトの名無しさん
23/01/07 04:05:10.65 79bETjVCM.net
特定のフォルダを5分おきに監視して、新たに作成されたファイル名を
SQLiteテーブルに登録していく…的なことをやりたい
単なるループで作るとCPU食って固まってしまうので非同期処理をする
必要があると思うんだけど、テンプレみたいなコードどっかにないですかね
asyncとかドキュメント見ても難しくて理解できないので…
475:デフォルトの名無しさん (アウアウウー Sa85-vxq+)
23/01/07 06:05:45.34 dqXrk0CZa.net
cron
476:デフォルトの名無しさん
23/01/07 07:43:49.02 amZltHqL0.net
なんでるーぷだとcpu食って固まるの?
477:デフォルトの名無しさん
23/01/07 07:44:51.16 GR5Mm1St0.net
cpuに食えるだけ食わせるからだよ
478:デフォルトの名無しさん
23/01/07 07:53:52.52 dqXrk0CZa.net
Ruby で、1行ずつ読み込んで処理する、1-liner のフィルタは、
ls | ruby -lne 'print $_.upcase'
ARGF を1行ずつ読み込んで、変数$_ に格納する。
ARGF とは、複数のファイルや標準入力を連結して、1つにした仮想ファイル
ruby -lne 'print $_.upcase' a.txt b.txt
479:デフォルトの名無しさん
23/01/07 08:28:19.88 GENmLOTj0.net
>>46
480:8 https://pypi.org/project/watchdog/ とか libev/libeventのバインディングなら他もたくさん
481:デフォルトの名無しさん (ワッチョイ 11cf-DSRP)
23/01/07 09:51:45.92 E1WCWcUY0.net
>>468
それ非同期処理は関係なくね?
というかIOを非同期にしてスレッドが待たなくなったらよけいにCPUを回すことになると思うが。
482:デフォルトの名無しさん (ワンミングク MMd3-4fYz)
23/01/07 09:59:59.53 QtB2nOqPM.net
sleep挟むだけじゃない?
483:デフォルトの名無しさん (ワッチョイ 5b5c-FOYR)
23/01/07 10:00:12.84 rucp1FJJ0.net
inotify
484:デフォルトの名無しさん (ワッチョイ b954-Or7w)
23/01/07 11:05:11.37 11syE16N0.net
一瞬でもいいからsleepを入れておけばOSがいい感じにやってくれる
それせずに固まってしまうフリーソフト多すぎ
例えば、JaneStyle
485:デフォルトの名無しさん (テテンテンテン MM4b-uuhX)
23/01/07 11:10:22.66 79bETjVCM.net
>>474
うーん実は非同期という概念すら理解できていないかも知れない
>>468のループを裏で動かしつつWindowsやアプリも普通に操作したいって話です
>>477
マジっすか
sleepで5分待たせるだけでいいなら簡単だからやってみます
486:デフォルトの名無しさん
23/01/07 11:53:06.20 iltXkPxC0.net
固まってしまうのは
メインスレッドで重い処理したり止めたりして
メッセージを処理しないからかな
487:デフォルトの名無しさん
23/01/07 12:02:42.84 11syE16N0.net
単純にメモリ内で巨大な配列の計算をしたいとかで、
人間が判るほど時間のかかる処理をする時に、
ループの中に微小なsleepを入れておくと、そのタイミングでOSがタスク切り替えできるので、
他のアプリに影響せずに処理できる
win10になってタスクをより奪いやすくなってる気がする
488:デフォルトの名無しさん
23/01/07 12:07:18.18 UFnoM8jpd.net
sleepってその間メッセージの処理できるの?
489:デフォルトの名無しさん
23/01/07 12:12:22.31 VzD178C+M.net
sleepしたスレッドは他の処理はできないけど
他のスレッド・プロセスは関係ない
490:デフォルトの名無しさん
23/01/07 12:54:52.65 QtB2nOqPM.net
sleep(1)を300回回して終了フラグチェックとかにしても良い
491:デフォルトの名無しさん
23/01/07 18:13:33.04 Ht7NUaQk0.net
>>468
5分おきと言わず、ファイルシステム変更イベントを受け取るイベントドリブンにした方がいいと思う
OSによって必要なコマンドやAPIは違うと思うけど
492:デフォルトの名無しさん
23/01/07 18:19:06.23 5L5/eVw7M.net
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
493:デフォルトの名無しさん
23/01/07 18:22:53.32 +xj7TcwR0.net
Windows限定でいいなら、.netのAPI
FileSystemWatcherが使えると思う
494:デフォルトの名無しさん
23/01/07 21:31:02.61 J6NwEuodM.net
>>473が書いてるwatchdogが定番ツールで
OSごとの差異を吸収してくれるよ
Linuxならinotify
WindowsならReadDirectoryChangesW(FileSystemWatcherがラップしてるWin32API)
macOSならFSEvent
495:デフォルトの名無しさん
23/01/07 21:42:10.72 11syE16N0.net
watchdogと言われると、モニタするんじゃなくて、止まってたらリセットするイメージが強いけど
496:デフォルトの名無しさん
23/01/08 00:08:32.18 GLDV6Cyi0.net
常駐フォルダ監視、なにかあったらどうにかする
処理はもう脳死でwatchdog一択というくらい定番
497:デフォルトの名無しさん
23/01/08 00:17:02.60 PbsTDkd50.net
どう実装してもいいけど
増えて消えたとかの一瞬も捉えたいならイベントドリブンで監視する必要がある
498:デフォルトの名無しさん
23/01/08 00:33:09.12 QuJ5Wt8K0.net
>>480
> ループの中に微小なsleepを入れておくと、そのタイミングでOSがタスク切り替えできるので、
いつの時代の人なんだよw
他のアプリに影響したくないなら優先度下げろよ...
499:デフォルトの名無しさん
23/01/08 00:34:59.79 QuJ5Wt8K0.net
>>488
組込屋さんかな?
500:デフォルトの名無しさん
23/01/08 01:19:18.86 nr72jIvE0.net
watchdogなんて便利なのあるのか・・・
501:デフォルトの名無しさん
23/01/08 04:46:18.93 mDwtjJAva.net
5分sleep すると、プロセスを殺せない・生き続けるから、
その分だけ、メモリなどのリソースが使えなくなるので損
cron みたいに、その時だけ起動して、
処理が終わったら、プロセスを終了するのが良い
それかRuby on Rails, npm/yarn などのagile 開発でよく使う、webpack-dev-server みたいに、
フォルダをwatch して、ファイルが変更されたら、rebuild するとか
502:デフォルトの名無しさん
23/01/08 13:39:55.68 LG3PUlqC0.net
>>491
優先順位下げるとしても無限ループにsleepを入れない実装は時代とは無関係かな
503:デフォルトの名無しさん
23/01/08 13:50:26.68 QuJ5Wt8K0.net
>>495
何のために入れる必要あるのか説明してみ
504:デフォルトの名無しさん
23/01/08 14:06:13.97 oudk2sNr.net
インスタンスメソッドをインスタンスメソッドの中で定義したいんだけどみんなどうやってるの
AIに聞いたらこんな感じだったけど
class Hoge:
def __init__(self):
self.new_method=None
def hoge1(self):
def _method():
print("hoge method1")
setattr(self,"new_method",_method)
def hoge2(self):
def _method():
print("hoge method2")
setattr(self,"new_method",_method)
h=Hoge()
h.hoge1()
h.new_method()
h.hoge2()
h.new_method()
505:デフォルトの名無しさん
23/01/08 14:13:05.44 ZWf/GgJ8d.net
VBで言うループ内のDoEvents()だよ
OSのメッセージへの応答が止まり続けると応答なしになる
だからメッセージに応答させるためにsleepを入れる
CPUの優先度を上げ下げしようがメッセージへの応答は各アプリケーションに依存する
だからループの時間が長くなればどのみちメッセージの処理ができず応答なしになる
506:デフォルトの名無しさん
23/01/08 14:16:48.76 LG3PUlqC0.net
>>496
何が言いたいのか知らんけど、CPU張り付きによるキーボード等の割り込みが阻害されるためだろう
古いとか言われて短い無限ループにsleep入れないプログラマいたら驚くかな
一人でプログラミングしてるならまだしも、第三者が使う可能性がある状況でその実装は恐い
507:デフォルトの名無しさん (ワッチョイ 9301-Kria)
23/01/08 14:35:43.73 QuJ5Wt8K0.net
>>498
メッセージループの話はまた別の話
>>499
プリエンプティブマルチタスク でググってこいよ...
未だにこんなロートルがいることに驚くわ
508:デフォルトの名無しさん (ワッチョイ 2bce-jGTX)
23/01/08 14:48:33.70 zCdq2/Tv0.net
1C/1TなCPUの時代に生きているのだろう
509:デフォルトの名無しさん
23/01/08 15:25:04.09 Aip5FLUqd.net
>>500
優先度変更でメッセージループをどうにかできるの?
510:デフォルトの名無しさん
23/01/08 15:41:35.19 QuJ5Wt8K0.net
>>502
メッセージループをどうにかできるなんて書いてないんだけど、頭大丈夫?
511:デフォルトの名無しさん
23/01/08 15:43:30.25 jwImvjcq0.net
>>501-502
見当外れだしsleepのひとも含め連休は大量ですね
512:デフォルトの名無しさん
23/01/08 15:47:25.43 NFnoEEjj0.net
実際問題として、処理奪われて操作に支障が出るソフトは普通にある
win10ではそういう問題はOSでは解決できない
513:デフォルトの名無しさん
23/01/08 15:47:46.10 1vx7bEHHM.net
どれだけググってもビジュアルスタジオにtweepyインストールできなくて
だれかおしえろください
ターミナルでpip打ち込むと認識されないとエラーで弾かれる
514:デフォルトの名無しさん
23/01/08 15:54:10.06 kQpMGlzxd.net
>>503
なら優先度だけあげても他の対策がいることになるだろ?
解決しないじゃん
515:デフォルトの名無しさん
23/01/08 15:56:00.30 hARfQwsA0.net
今時の他コア高性能CPUであれば100%張り付きで懸念するべきのはバッテリー残量と発熱くらいで、
一瞬でも100%未満になるコアが1つあればOSのタスクスイッチングには影響はほとんどないよ
GetMessage,PeekMessage,DispatchMessageをブロックしないことだけ気をつければ、あとは思う存分CPUをぶん回してもいいよ
100.00%まできっちり回せ
516:デフォルトの名無しさん
23/01/08 15:57:22.58 PbsTDkd50.net
>>506
pip3
517:デフォルトの名無しさん
23/01/08 15:59:45.54 QuJ5Wt8K0.net
>>505
それはそのソフトのつくりがタコなだけ
>>507
VBのDoEventの話なんてしてないから他所でやってくれ
518:デフォルトの名無しさん
23/01/08 16:01:44.72 kQpMGlzxd.net
>>503
>>491
優先度でメッセージループをどうにもできない以上、他のアプリに出る影響は排除できないじゃん
影響出したくないからループ中にsleepって話の中で優先度変えろって話出したの誰だよw
519:デフォルトの名無しさん
23/01/08 16:05:00.60 piRgm1WA0.net
つまり多コアCPUであっても、各プロセスは一つだけしか使ってはいけない
520:デフォルトの名無しさん
23/01/08 16:05:59.38 kQpMGlzxd.net
>>510
タコなソフトにならない解決策の話なのに優先度なんて頓珍漢なこと言い続けてる自覚ねーのな
DoEvents()も書けない、コピペすらできないみたいだし、
何のためのsleepか説明されても理解できそうにないな
521:デフォルトの名無しさん
23/01/08 16:10:11.55 96z64ttd0.net
ここをこうしたら、こういう時にこうなるよ
って話をしないと、伝わらないと思います
522:デフォルトの名無しさん
23/01/08 16:11:53.62 piRgm1WA0.net
伝えるというよりからかっているのだろう
523:デフォルトの名無しさん
23/01/08 16:14:15.67 NFnoEEjj0.net
ID:QuJ5Wt8K0 で抽出すると、ほんの一言二言書いて反応をうかがってるだけなんだよな
多分何も判ってなくて、総叩き状態を楽しんでる
524:デフォルトの名無しさん
23/01/08 16:49:42.13 +2bxRzY60.net
>>497
インスタンスメソッドの中でインスタンスメソッドを定義したとして、使う側はどうしたいんだよ
h.hoge() を読んだら h.new_method() を使えるようになる仕様でいいのか?
525:デフォルトの名無しさん
23/01/08 17:48:05.51 Ghk4Hd5x0.net
DoEvents、自アプリのメッセージを1つ実行する
sleep、CPUリソースを一時的に返却する(自アプリのメッセージは処理できない)
sleepしたところで自アプリのメッセージを処理しないと自アプリは固まってしまう
526:デフォルトの名無しさん
23/01/08 18:07:15.82 QuJ5Wt8K0.net
>>511
メッセージループを処理するスレッド(たいていメインスレッド)と >>480 が言うような重い処理のスレッド(ワーカースレッド)を分ければいいだけ
ってかまともなGUIアプリなら半ば常識だぞ
当たり前だけどワーカースレッドにsleepなんて要らん
>>513
> 何のためのsleepか説明されても理解できそうにないな
そう言うのは説明してから言わないとね
>>516
> 多分何も判ってなくて、総叩き状態を楽しんでる
分かってないのはお前な
ちゃんと プリエンプティブマルチタスク でググれって書いてあるだろ?
ググっても理解出来なかったのか?w
527:デフォルトの名無しさん
23/01/08 18:11:48.35 QuJ5Wt8K0.net
>>518
DoEventsなんて言ってる奴はVBAあたりしか使えないんだと思う
DoEventsとsleepの違いすら理解できてないんだろうな
528:デフォルトの名無しさん
23/01/08 18:13:12.88 piRgm1WA0.net
ググれと言わずに、ここで簡潔に説明することが求められています
そんなに難しいことじゃないでしょうに
529:デフォルトの名無しさん
23/01/08 18:22:37.54 2bjH6Dg5d.net
>>519
優先度の話はどこがどう関係してくるの?
530:デフォルトの名無しさん
23/01/08 19:23:01.26 QuJ5Wt8K0.net
>>521
難しくないならあんたが説明してもいいんだよ?w
>>522
話の流れも読めないのか?
>>491 > 他のアプリに影響したくないなら優先度下げろよ...
531:デフォルトの名無しさん
23/01/08 19:28:01.59 piRgm1WA0.net
オレは説明を聞きたいと思っている
532:デフォルトの名無しさん
23/01/08 19:30:28.58 NFnoEEjj0.net
ソフトのつくりがタコとか書いちゃった時点でもう詰んでるんだよ
どう言い繕っても無駄なので諦めてID変わるのを待ってろ
533:デフォルトの名無しさん
23/01/08 19:53:03.23 QuJ5Wt8K0.net
>>524
だから プリエンプティブマルチタスク でググればいいだろ
まああんたはわかってるだろうけど簡単に言えばタスクの切り替えはタイマーでやってるからsleepなんか入れなくてもタスクは切り替わる
> ループの中に微小なsleepを入れておくと、そのタイミングでOSがタスク切り替えできるので、
なんて言うのはWindows 3.1とかMac OS 9時代のノウハウや
>>525
タコ乙w
534:デフォルトの名無しさん
23/01/08 20:28:28.98 NFnoEEjj0.net
現にwin10でも上手く行っとらんだろ
事実から目を反らすなよw
535:デフォルトの名無しさん
23/01/08 21:06:12.49 oudk2sNr.net
>>517
例えば犬の基本情報を取得したい時に
Symbols={"INU":{"symbol":"犬","voice":"ワン"}}
print(Symbols["INU"])
じゃなくて
print(Symbols.INU)
みたいな参照の仕方がしたかった
かつ返ってくるのはインスタンス、みたいな
クラスをインスタンス化するときってSymbols()でカッコついちゃうのでそれ無くしたいというか・・
なので単純に
URLリンク(ideone.com)
てやってみたけどinu_action,neko_actionのとこが見た目がしっくりこなくて
あれから調べてみたらやりたいのは内部クラスだったかもしれないのでそれで書いてみたら
URLリンク(ideone.com)
こうなって、しっくりきたものの使い方合ってるのかがわからない
536:デフォルトの名無しさん (ワッチョイ 9379-G8G4)
23/01/08 21:15:22.42 Ghk4Hd5x0.net
>>526
Windows3.1はシングルタスクだよね
sleepしても他アプリに処理が移らなそう
処理時間が無駄に長引くだけ
昔過ぎて分からない
間違ってるかも
537:デフォルトの名無しさん (ワッチョイ 9301-Kria)
23/01/08 21:23:02.60 QuJ5Wt8K0.net
>>527
具体的に上手くいってないと言うソフト名出してみ
538:デフォルトの名無しさん
23/01/08 21:27:28.97 QuJ5Wt8K0.net
>>529
Windows 3.1 は協調型マルチタスク(=ノンプリエンティティブマルチタスク)
てかマジでググれ
URLリンク(www.sophia-it.com)
539:デフォルトの名無しさん
23/01/08 21:46:05.89 Ghk4Hd5x0.net
>>531
あ、いやすまん
もっと基本的なところで勘違いしてた
Windows3.1ってメインのウィンドウ以外動かないかと思ってた
540:デフォルトの名無しさん
23/01/08 22:05:28.27 piRgm1WA0.net
3.1のデモ展示では時計アプリを複数起動して
「ほら、マルチタスクですよ~」ってやってた
541:デフォルトの名無しさん
23/01/08 22:20:53.05 Ghk4Hd5x0.net
>>533
なるほどサンクス!
完全に勘違いしてた
542:デフォルトの名無しさん
23/01/09 09:18:26.66 hshZ5aP/d.net
>>528
直接attrにアクセスするような書き方するなら__getattribute__を改造するのが手っ取り早そう
URLリンク(wandbox.org)
直接dictを継承したSymbolsクラス作った方が楽そうと
後になって気づいたが
543:デフォルトの名無しさん
23/01/09 11:26:49.00 UbXmK8tM0.net
プリエンプティブに対応するパッチを書いたことあるがロートルとか言われたのがショックだわ
モバイル全盛のこの時代にCPU100%の張り付きプログラムを推奨することの視野の狭さに驚く
何度も言うがsleepを入れるのは時代とか関係なくそれはアーキテクチャと利用ケースによるものだ
組み込み分野では無限ループでトリガ待ちするのに無限ループで止めるのなんて20年以上前からやってる
544:デフォルトの名無しさん
23/01/09 12:18:22.83 Cob0L2LA0.net
>>536
逆にuComとかPICだとメインはfor(;;)で最低優先度の処理をsleepなしでゆるゆる回して、
ほとんどの処理を割り込みで動かすからsleepの出番はなくなっちゃうよね
545:デフォルトの名無しさん
23/01/09 12:18:48.74 Cob0L2LA0.net
sage忘れすまん
546:デフォルトの名無しさん
23/01/09 12:30:53.45 r84aUeSC0.net
動かす環境やOSによっても色々やり方は変わると思います
547:デフォルトの名無しさん
23/01/09 12:35:24.04 WbC15m7a0.net
プリエンプティブマルチタスクという言葉が存在する
というところを出発点にしてるから、万能だと思っちゃってるんだろうな
アプリ同士でならうまく行くんだろうけど、
プリエンプティブの仕組みを作ってるOSそのものとは競合する
OSもアプリも一つのコアの上で動くプログラムでしかない
548:デフォルトの名無しさん
23/01/09 12:38:36.89 fJBcDyWo0.net
最初のそんな負荷でもない一定周期監視の話から固まる→CPU負荷とかUIブロックの話とかになってるから
UIブロッキングを差し置いてsleepだけ話題にされるともにょるのはわからんでもない
549:デフォルトの名無しさん
23/01/09 12:47:08.01 P8ctm/0T0.net
>>541
優先度下げれば解決するって誰かが言ってた
550:デフォルトの名無しさん
23/01/09 12:51:26.43 r84aUeSC0.net
各プロセスが協調的に動いているなら、優先度は意味があるかも知れないですね
551:デフォルトの名無しさん
23/01/09 12:54:20.02 fJBcDyWo0.net
>>542
流れ見ると負荷の話に対する優先度だからUIスレッドが差し置かれているので結局もにょる
552:デフォルトの名無しさん
23/01/09 12:59:35.44 r84aUeSC0.net
処理するにあたり、CPU性能は十分にあるんですよね?
553:デフォルトの名無しさん
23/01/09 13:13:54.26 hV+nJOyS.net
>>535
なるほど
これならもし犬にマルチーズとかダックスフンドを追加したくなったとき
犬や猫鶏をinu.py,neko.py,tori.pyとかにそれぞれ分離しても管理しやすそう
ありがとう
554:デフォルトの名無しさん
23/01/09 13:30:24.28 bS50m3IM0.net
組み込み向けとかのOSだといまだにそういうアーキテクチャなんじゃないの?
確かタイマー割り込みしたりとかいろいろ面倒だった気がするし
現代的なOSでloopにsleep入れるとか無意味
555:デフォルトの名無しさん
23/01/09 13:43:58.36 hV+nJOyS.net
せっかくなのでGPT3に聞いてdictを継承して属性参照できるクラスを書いてみた
URLリンク(ideone.com)
聞いたのは、
「pythonでdictを継承したクラスの例を書いて」のみなんだが、
わざわざ聞くからには属性参照もしたいってことだろ?
と言わんばかりにその部分も補完したコード出してきてちょっとびびった・・
556:デフォルトの名無しさん
23/01/09 15:27:13.21 r84aUeSC0.net
Linuxを含めてUnix系OSならselect関数が使える
ソケット含めてI/Oを監視しプロセスに通知してくれる
Pythonでも、もちろん使える
557:デフォルトの名無しさん
23/01/09 17:16:47.85 9i8F7U9Np.net
AIって結局翻訳機みたいなもんで翻訳機に最適化した文章作らないとミスるから仕事で使えないよな
558:デフォルトの名無しさん
23/01/09 17:35:48.91 m0H/MGw3r.net
>>550
プログラミングよりそのスキル身につける方が早い時代は来るかも
559:デフォルトの名無しさん
23/01/09 18:01:59.77 +jLIXnEf0.net
URLリンク(noauto-nolife.com)
のcontent.html内{% url 'bbs:single' topic.id %}
って何を指してるかわかりますか?
views.pyかurls.pyのurlpatternsの記載のどこかが原因だとは思うんですけど。
560:デフォルトの名無しさん
23/01/09 18:03:12.22 +jLIXnEf0.net
>>552です
NoReverseMatchエラーになります。
singleなんてどこにも記載してないのでそれはそうなんでしょうが
561:デフォルトの名無しさん
23/01/09 18:29:36.59 .net
>>552
URLリンク(i.imgur.com)
562:デフォルトの名無しさん (ワッチョイ b954-Or7w)
23/01/09 18:38:19.71 WbC15m7a0.net
便利すぎて怖い
563:デフォルトの名無しさん (ワッチョイ 9933-X8vt)
23/01/09 19:33:02.64 bS50m3IM0.net
その意味を理解できないと無意味だよ?
564:デフォルトの名無しさん
23/01/09 20:38:05.70 YumOwVoa0.net
>>536
> 何度も言うがsleepを入れるのは時代とか関係なくそれはアーキテクチャと利用ケースによるものだ
だからなんのためにsleep入れてるんだよ
今でもWin3.1とか組込でノンプリエンティティブOS使ってるから時代に関係ないとでも言うのか?
> 組み込み分野では無限ループでトリガ待ちするのに無限ループで止めるのなんて20年以上前からやってる
話しそらそうと必死すぎw
565:デフォルトの名無しさん
23/01/09 20:39:49.86 YumOwVoa0.net
>>541
だからUIと重い処理はスレッド分けろって書いてあるだろ
プアな環境でCPUがアップアップならワーカースレッドの優先度下げろ
566:デフォルトの名無しさん
23/01/09 20:41:46.54 YumOwVoa0.net
>>540
カーネルスレッドの仕組みも知らないなら黙ってた方がいいぞ...
567:デフォルトの名無しさん
23/01/09 21:19:53.52 VzKaZmuqd.net
スレッドを分けろ、を起点にせずに優先度の話から入った理由が気になる
568:デフォルトの名無しさん
23/01/09 21:38:55.07 rm/gRoLA0.net
>>560
優先度の話はこれが最初か>>491
何もおかしくない気がするが
スレッド分けたところで優先度が高かったら、他のアプリがカクカクになるぞ
569:デフォルトの名無しさん
23/01/09 21:39:13.38 fJBcDyWo0.net
確かにUIスレッドとワーカーを分ければUIが固まることは無い
実際のところ同一優先度でもタイムスライスしてくれるのでUIはなんとか動くし、優先度下げればさらによく動く
ただ結局複数プロセスで動くOSである以上処理負荷をどこまでかけるかっていうのはそのプロセスのマナーになる
他プロセスがより低い優先度のワーカー動かしてるとそっちがあからさまに動かなくなるのでsleep入れるのは間違ってはいない
通常よりちょっと下げるだけであればUIは普通に動くが他プロセスの通信や動画がガクガクになったりする
570:デフォルトの名無しさん
23/01/09 21:52:50.87 YumOwVoa0.net
>>560
おれの最初のレスは >>480 に対するレスだから
571:デフォルトの名無しさん
23/01/09 21:59:14.36 YumOwVoa0.net
>>562
> 他プロセスがより低い優先度のワーカー動かしてるとそっちがあからさまに動かなくなるのでsleep入れるのは間違ってはいない
その低い優先度のワーカースレッドがないと単に無駄なsleepしてるだけのタコソフトになるわけだがw
普通により低い優先度にしなよ...
> 通常よりちょっと下げるだけであればUIは普通に動くが他プロセスの通信や動画がガクガクになったりする
なんで通信や動画再生の優先度を下げるんだよ...
572:デフォルトの名無しさん
23/01/09 21:59:59.63 Qq7b1M5F0.net
RTOSのように優先度が絶対的なら話は単純だけど
デスクトップOSは忖度があるからsleepいれるとか場当たり的な作法を
正解と勘違いするのもわからんでもないかな(ないけど)
573:デフォルトの名無しさん
23/01/09 22:02:02.62 fJBcDyWo0.net
>>564
優先度を決めてぶん回すって言うのは他の優先度低いやつを気にしないって宣言でもある
> なんで通信や動画再生の優先度を下げるんだよ...
おっとごめん。下げるっていうのは自プロセスのワーカの話ね。影響を受けるほうはchromeブラウザの動画再生とかって話。
574:デフォルトの名無しさん
23/01/09 22:21:26.63 YumOwVoa0.net
>>566
> 優先度を決めてぶん回すって言うのは他の優先度低いやつを気にしないって宣言でもある
下げてる優先度よりさらに低い優先度のタスクを気にする必要あるの?
そう言うのはCPUが空いてるなら動けばいいっていうタスクじゃないの?
あと大抵のデスクトップOSだと同一優先度ならラウンドロビンになるから全く動かなくなるとかないし
> おっとごめん。下げるっていうのは自プロセスのワーカの話ね。影響を受けるほうはchromeブラウザの動画再生とかって話。
ワーカー下げてるのに動画再生がカクカクするならCPU以外のリソースの影響でしょ
それってsleep入れても改善しなくね?
575:デフォルトの名無しさん (ワッチョイ 613c-wVfF)
23/01/09 22:44:46.53 UbXmK8tM0.net
元の話に戻すと、たかだかファイル更新をウォッチするのにCPUが100%に張り付くプログラムが正解だって言われて納得できる人は少ないだろう
OSの深いところまで知らなくても利用できるようにwatchdogなどのパッケージが使うのが正解なんだと思うよ
576:デフォルトの名無しさん
23/01/09 23:09:50.64 YumOwVoa0.net
元の話は
> 特定のフォルダを5分おきに監視して、新たに作成されたファイル名を
SQLiteテーブルに登録していく…的なことをやりたい
なのでsleepで5分待って処理するなり(まあ処理時間分ずれるから5分毎に処理したいならそれなりの処置が要るけど)ファイル監視APIなりwatchdogみたいなライブラリ使うなりすればいいだけの話でCPU100%なんて話は出てない
CPU 100%の話は
> 単純にメモリ内で巨大な配列の計算をしたいとかで、
> 人間が判るほど時間のかかる処理をする時に、
> ループの中に微小なsleepを入れておくと、そのタイミングでOSがタスク切り替えできるので、
> 他のアプリに影響せずに処理できる
とか昔のノウハウでドヤった老害がいただけの話
577:デフォルトの名無しさん
23/01/09 23:45:15.82 r84aUeSC0.net
新たに作られたファイルを記録するだけなら、数十分間隔でチェックしても間に合いそう
578:デフォルトの名無しさん
23/01/09 23:48:51.92 bS50m3IM0.net
話が逸れまくったなw
本当おじさんは関係ない話で荒らすのが好きだな
579:デフォルトの名無しさん
23/01/10 00:12:28.63 YUW/czN/0.net
Python の話でもないし
プログラム板の皆さんに裁定してもらえ
580:デフォルトの名無しさん
23/01/10 00:32:37.03 pwe9NrJo0.net
ここの話題にしたいなら、せめてPythonのコードに落とすところ迄やって欲しい
581:デフォルトの名無しさん
23/01/10 00:56:07.09 7fmBGHmvM.net
pythonでスレッドの優先度を指定できる?
582:デフォルトの名無しさん
23/01/10 00:57:08.39 7fmBGHmvM.net
threadingモジュールにはthere are no prioritiesって書かれてるんだが
583:デフォルトの名無しさん
23/01/10 01:18:40.47 BEmjqJ7z0.net
>>574
psutilでいける
Windowsでも出来た
584:デフォルトの名無しさん
23/01/10 01:30:42.71 tyEc5PEMa.net
DoEvent しないと何も動かない。
基本的に、プログレスバーで処理の進捗状況も表示できない。
処理にCPU を使われるから、描画できない
スクレイピングでも、10秒ぐらいsleep しないと、ajax のページの内容が取れない。
他のプロセスに、CPUを与えないと通信できない
585:デフォルトの名無しさん
23/01/10 02:52:37.03 BEmjqJ7z0.net
あぁ、プロセスじゃなくてスレッドか
公式のウェブサイトにはないと優先度はないと書かれているら自前で実装かね
586:デフォルトの名無しさん
23/01/10 04:26:53.04 bCHQzZKpM.net
>>485
> 30代Pythonクソチョン男は強姦魔の犯罪者!
> あなたの近くにいます!
> 父母と祖父母の戸籍謄本を提出させましょう!
ホントそれ
587:デフォルトの名無しさん
23/01/10 06:53:53.27 1UMzF0dp0.net
>>574
やったことはないけど例えばWindowsな�
588:輜ative_idでスレッドid取得してctypes経由でSetThreadPriority呼ぶとかかなぁ
589:デフォルトの名無しさん
23/01/10 07:22:16.21 +/q9pWWH0.net
pythonでJRAスクレーピングしてるが、激アクセス(数万ページ連続とか)すると怒られるかな
590:デフォルトの名無しさん
23/01/10 08:45:04.89 govR9vZh0.net
URLリンク(www.jra.go.jp)
User-agent: *
Disallow:
591:デフォルトの名無しさん
23/01/10 09:59:25.25 BF2exWNa0.net
有償でデータ売ってるからそれ買えよ
592:デフォルトの名無しさん
23/01/10 10:08:23.70 wQS7zJvf0.net
たぶん刻々と変わるオッズとかを取得してるんじゃないか?
593:デフォルトの名無しさん
23/01/10 10:35:47.62 KidLhlDB0.net
今住んでるとこ岡崎なんだよなー
だからスクレイピングすると予告なしに逮捕される
594:デフォルトの名無しさん
23/01/10 10:46:19.04 BF2exWNa0.net
静的なページなら一旦ファイルにダウンロードしてから
そのファイルをスクレイピングすれば問題なし
595:デフォルトの名無しさん
23/01/10 13:37:01.45 vQglWnVB0.net
これまで自作プログラムの設定情報は、iniファイルに出力していたのですが、
これからはレジストリで管理したいと思っています。
iniファイルだと増えすぎてしまうので、、、
新たなキーをどこかに作り管理たいのですが、レジストリのどこに作れば良いとかルールがあれば教えて下さい。
596:デフォルトの名無しさん
23/01/10 14:10:11.28 DW4759/80.net
>>587
このスレじゃ無理
こっちのスレ↓で質問してみよう。親切な達人プログラマーが懇切丁寧に教えてくれるよ
Ruby 初心者スレッド Part 67
スレリンク(tech板)
597:デフォルトの名無しさん
23/01/10 16:14:20.05 wABcpDEfd.net
watchdogを使いたいだけなのに、環境構築が出来ない。
598:デフォルトの名無しさん
23/01/10 20:19:07.57 BEmjqJ7z0.net
winregモジュールの使い方ならまだしもレジストリの使い方は流石にここではないぞ
599:デフォルトの名無しさん
23/01/10 21:08:28.15 mG8UnKKfM.net
レジストリよりiniのほうが遥かにいいんじゃね?と思うのは俺だけだろうか
600:デフォルトの名無しさん
23/01/10 22:01:11.76 KidLhlDB0.net
iniに対するレジストリのメリットは、複数ユーザで使っても混ざらない点だな
601:デフォルトの名無しさん
23/01/10 22:03:17.69 pwe9NrJo0.net
それはiniをどこに置くかで決められます
602:デフォルトの名無しさん
23/01/10 22:05:07.71 AhhHg4Rw0.net
その辺の話題はスレチだな
603:デフォルトの名無しさん
23/01/10 22:13:42.57 iHwuxQHZ0.net
boost経由で呼べば良いじゃん
604:デフォルトの名無しさん
23/01/11 10:15:37.51 WNWSBuGvd.net
URLリンク(101010.fun)
ここの、pipを使ってWatchdogライブラリをインストールします。
これがわからない。
605:デフォルトの名無しさん
23/01/11 10:21:09.30 sSLpCElv0.net
(゚Д゚)ェェエエ工工工
606:デフォルトの名無しさん (スップ Sdb3-1Rsz)
23/01/11 12:09:27.84 gbRv1Z7ld.net
shellがわかってないやつかな?
linux環境ならCtrl-Alt-Tで出てくる黒い画面でpip3 install <モジュール名> とすればいい
VisualStudio環境は知らん
607:デフォルトの名無しさん
23/01/11 12:36:58.75 pHEYs8Fp0.net
>linux環境ならCtrl-Alt-Tで出てくる黒い画面で
こういう説明なんでできちゃうんだろうか
608:デフォルトの名無しさん
23/01/11 13:03:08.65 iHuPH8qf0.net
バカだから
今は pip install hoge じゃなくて python -m pip hoge のほうがいいんじゃなかったっけ
609:デフォルトの名無しさん
23/01/11 13:04:05.15 gC4z+P/fa.net
釣られるなよ
いつものやつだ
610:デフォルトの名無しさん
23/01/11 14:53:19.92 PaKS96+/0.net
>>600
pip install hoge と
python -m pip hoge は同じじゃないのか。
611:デフォルトの名無しさん
23/01/11 15:35:31.95 /f97NRPi0.net
pipってなんかよく判らん
windowsやandroidでも、そんな簡単に付けたり外したりできないのは経験済みなので、
依存関係とか複雑なのだろう
612:デフォルトの名無しさん
23/01/11 15:51:02.84 iHuPH8qf0.net
やっぱり python -m pip hoge のほうが推奨みたいだね
参考URL貼ろうとしたらエラーになったから "pip install" vs "python -m pip" でぐぐってくれ
613:デフォルトの名無しさん
23/01/11 17:48:54.93 PaKS96+/0.net
>>604
ググった。これ?
daeudaeu.com/python-pip-difference
うちがまさにこうで、
/usr/bin/pythonは2.xで
/usr/bin/pipは3.xだ。
が、ライブラリの導入先は予め承知していないと、そりゃ色んな意味で拙いだろ...
614:デフォルトの名無しさん (テテンテンテン MM4b-p8yh)
23/01/11 18:31:10.79 hDaja8juM.net
うっといわ
615:デフォルトの名無しさん (ワッチョイ 2b63-WzqH)
23/01/11 19:00:49.39 A5R9Myj10.net
pip3をつかえば混乱は起きないと思われる
616:デフォルトの名無しさん
23/01/11 19:07:57.81 QeEETBRE0.net
環境変数までフルマネージドになるっていうのがコツな
617:デフォルトの名無しさん
23/01/11 19:14:51.41 koilfHaW0.net
venvがおすすめです
618:デフォルトの名無しさん
23/01/11 20:24:47.06 iHuPH8qf0.net
>>605
まとめの部分だけ読んだけど大体あってそう
Python 関連の調べものする時は日本語サイトは除外したほうがいい気はする (変なサイト多くない?)
venv を使う時も ./.venv/bin/python -m pip hoge で直接インストールすることができるっぽい
619:デフォルトの名無しさん
23/01/11 20:32:03.41 koilfHaW0.net
Pythonは入ってるけどpipが入ってない環境で、自分でビルドして入れるとそうなるのかな
620:デフォルトの名無しさん
23/01/11 20:38:00.37 koilfHaW0.net
venv有効にしたらvenv内のpythonとpip使われるから、普通にpip installすればいい
621:デフォルトの名無しさん
23/01/11 21:22:19.92 FiONWEgu0.net
>>610
英語も似たようなもんやで
622:デフォルトの名無しさん
23/01/12 00:24:14.84 AWG/ChaM0.net
pipコマンドを今実行しているpythonコマンドとは別に入れた場合(pipはディストロのパッケージで入れたけどpythonはpyenv経由みたいな)は、
pythonコマンドとpipコマンドの整合性がとれていない場合があるからpython -m pipの方が安心
Dockerとか使ってるならそういう心配はしないでRUN pipで大丈夫
623:デフォルトの名無しさん
23/01/12 01:05:00.06 lC/nTIdv0.net
pythonもあれなんで py に
py -m pip hoge にしてる
624:デフォルトの名無しさん
23/01/12 01:45:21.55 eOyGEuW0a.net
Ruby on Rails では、rbenv が多いが、
日本人が作った、多言語バージョンマネージャーのanyenv が良い。
asdf もある
対応言語を表示
anyenv install --list
Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv
Rubyはrbenv, node はNVM, Python はvenv などと、
各言語で、バージョンマネージャーが異なるのは面倒
最近は、Docker も多い。
就職では、Docker, AWS も必須
625:デフォルトの名無しさん
23/01/12 12:42:21.95 OnGb0X+0M.net
>>485
> 30代Pythonクソチョン男は強姦魔の犯罪者!
> あなたの近くにいます!
> 父母と祖父母の戸籍謄本を提出させましょう!
ホントそれw
626:デフォルトの名無しさん
23/01/12 18:50:17.66 WuBM7bGP0.net
azureのが給与高いよ
資格保有者も圧倒的に少ない
627:デフォルトの名無しさん
23/01/12 18:50:38.99 WuBM7bGP0.net
ちなみにソースはない
628:デフォルトの名無しさん
23/01/12 18:51:02.29 WuBM7bGP0.net
完全に勘
629:デフォルトの名無しさん (アウアウエー Sa23-n3t1)
23/01/12 20:21:00.92 VvkZ8RFRa.net
IDEって何がはやってるんだろう
VScode?spider?
630:デフォルトの名無しさん
23/01/12 23:18:40.94 Q9b1EyVr0.net
win10で使ってて、win10としては有効なパスなのに、
pythonから操作しようとすると長すぎてエラーになることがある
もしかすると、pythonではなくsubprocessで呼んでるコマンドかもしれないけど
何かの設定で長さなんか気にしなくできないのかな
631:デフォルトの名無しさん
23/01/12 23:26:49.81 Kr8Ay9bV0.net
そのパスとやらを提示しなさい
632:デフォルトの名無しさん
23/01/12 23:54:02.53 HKg0jfBE0.net
パスの最大長の制限
learn.microsoft.com/ja-jp/windows/win32/fileio/maximum-file-path-limitation?tabs=registry
633:デフォルトの名無しさん
23/01/13 00:09:02.63 jY/X4hP5a.net
検索上位に出てくるnkmkというサイトが本当に邪魔
意図的にページ内リンクを貼らずに閲覧者にスクロールさせたり、文字列検索させようとさせたりするから使いにくくて仕方がない
634:デフォルトの名無しさん
23/01/13 00:10:24.95 3/krHQqA0.net
LongPathsEnabledは既に1になっていて、
それで長いパスが有効だけど、longPathAwareがよく判らない
635:デフォルトの名無しさん
23/01/13 00:57:47.08 C2HsRRRbd.net
パスを指定するときに\\?\プレフィックスを付ける必要がある
636:デフォルトの名無しさん
23/01/13 05:49:38.62 pezk+gKQa.net
何でPython の香具師は、いつもパスに、\\ を使うのだろう?
Ruby では、Windows のパスでも、/ で書けるのに。
File.expand_path( ) でも、\を/に変換できるし
dir_path = "C:/Users/Owner/Documents/**/*"
target_dirs = Dir.glob( dir_path )
637:デフォルトの名無しさん
23/01/13 09:50:43.36 NX/X2xhta.net
>>627 はプレフィクスの話をしているのに
>>628 が知ったか過ぎて糞ワロス
638:デフォルトの名無しさん
23/01/13 10:20:19.66 zJXsWH5P0.net
病人に触るな
うつるぞ
639:デフォルトの名無しさん
23/01/13 10:20:37.84 17HPXjEx0.net
> たとえば、"\\?\D:\非常に長いパス" などです。
狂ってるとしか思えない文法
640:デフォルトの名無しさん
23/01/13 12:42:41.48 GxyunKrd0.net
>>628
もう少し勉強した方がいいぞ
raw文字列を使えばエスケープシーケンスを使う必要はない
更にいうとpythonでもスラッシュを区切り文字に使える
あと\\?\プレフィックスはWindowsのルールであってpython起因ではない
こんな短い文章で3つも間違っているのは凄いな
641:デフォルトの名無しさん
23/01/13 12:59:28.88 LZaujiQfa.net
>>632
> 更にいうとpythonでもスラッシュを区切り文字に使える
これはNTFSの仕様じゃなかったっけ?
まあどっちにせよWindowsのルールなんだけどね
642:デフォルトの名無しさん
23/01/13 13:47:27.39 lpVvtWLG0.net
windowsで生python使ってる時点でアレ
普通は仮想環境なりdockerカマして動かすよ
643:デフォルトの名無しさん
23/01/13 14:37:36.44 foyyIITL0.net
Pythonは昔からWindows対応してて
Unixな用途以外でも使われてるのに普通ってどういう
644:デフォルトの名無しさん
23/01/13 14:50:20.29 17HPXjEx0.net
長いパスのファイルを操作したい時に、仮想環境からやっても結局困るのでは
645:デフォルトの名無しさん
23/01/13 14:57:07.55 zir26acq0.net
>>634
痛々しい
646:デフォルトの名無しさん
23/01/13 15:08:30.08 lpVvtWLG0.net
windowsで使うならcondaみたいな環境依存丸ごと面倒見てくれるやつじゃないとすぐぶっ壊れるからな
647:デフォルトの名無しさん
23/01/13 15:21:16.75 Kg8S+FugM.net
ワザワザcondaなんか使うヤツ居るのか?
648:デフォルトの名無しさん
23/01/13 15:25:45.76 C2HsRRRbd.net
仮想環境からでも実環境でもロングファイルパスは使える
論点ずらしたいだけだから構う必要ない
649:デフォルトの名無しさん
23/01/13 15:35:51.40 zir26acq0.net
で、普通ってどういう意味よ?
仮想環境からwinのクリップボード操作やレジストリ操作が出来んのか?
650:デフォルトの名無しさん
23/01/13 15:54:30.06 zJXsWH5P0.net
ここは勉強スレであって議論スレではありません
651:デフォルトの名無しさん
23/01/13 21:19:57.15 IL7+IvE40.net
環境壊れたことないわ・・・
652:デフォルトの名無しさん
23/01/13 21:22:00.33 4z9M3olLM.net
勉強用にはWSL2の方がいいかもしれないけど、実際実用的なプログラムを作ろうとしたらpywin32とか必要なこともあるからねえ
conda使わないと環境が壊れるなんてことはないよ。普通にpoetryとか使えばいいだけの話だし、OSが依存してるPythonがないから、むしろぶっ壊れたってPythonインストールしなおすだけでしょ
LinuxとかでOS依存のPythonが壊れたら多分結構めんどくさいことになるけど。
653:デフォルトの名無しさん
23/01/13 22:11:52.30 JR5Mge6r0.net
>>638
無能w
654:デフォルトの名無しさん
23/01/13 22:13:51.92 lpVvtWLG0.net
それはアップデートしないだよ
何もしないのに壊れることが普通にある
655:デフォルトの名無しさん
23/01/13 23:13:24.72 lpVvtWLG0.net
>>639
むしろconda*しか*使ってない
ちな機械学習分野だから偏りはあるが
656:デフォルトの名無しさん
23/01/13 23:36:10.76 2SILumHK0.net
普通にない
メモリかストレージかお前の頭がおかしい
657:デフォルトの名無しさん
23/01/13 23:56:31.13 q8fVoEuCa.net
まあ無能の「なにもしてないのに」という言葉ほどあてにならないものはないからな
658:デフォルトの名無しさん
23/01/14 00:23:08.36 vxBJh77Y0.net
公式のPythonと併用せずに、anacondaだけ使うならそれでいいんだよ
デプロイ先やプロジェクト毎に異なる実行環境構築するようなものの為には作られてない
659:デフォルトの名無しさん
23/01/14 00:29:29.98 vxBJh77Y0.net
機械学習できる環境を手っ取り早く構築したいっていうならanaconda進めるのはわかるけど
FlaskでWebアプリ作りたいって人がたまにanaconda使ってたりする�
660:フはやばいと思う
661:デフォルトの名無しさん
23/01/14 00:34:13.49 1MvlYv0N0.net
ChatGPTに触れてAI?ニューラルネットワーク?を勉強しようと思うんですが何から始めればいいですか
理論は最低限しか勉強したくないです
662:デフォルトの名無しさん
23/01/14 00:42:42.97 LmGwAWDD0.net
>>652
pytorchやtensorflowのチュートリアルでいいと思う
喜べ、理論を学ぶよりがむしゃらになんでもかんでも試す人の方が勝つ世界だ(自分は理論を押さえたいタイプなので負ける)
663:デフォルトの名無しさん
23/01/14 00:49:24.87 C9wajgvF0.net
>>652
このスレじゃ無理
こっちのスレ↓で質問してみよう。親切な達人プログラマーが懇切丁寧に教えてくれるよ
Ruby 初心者スレッド Part 67
スレリンク(tech板)
664:デフォルトの名無しさん (アウアウエー Sab2-eHNm)
23/01/14 05:26:40.68 0nayz3bja.net
>>651
か、仮想環境をたくさん作ってるんだょ
665:デフォルトの名無しさん
23/01/14 05:50:04.90 wkpIHJLy0.net
まあ実際python環境の構築はいまだに初心者泣かせだ
上にもあったがpipの依存なんかは初心者がハマると抜け出せない
linuxはさらに地獄でpython2とpython3が混雑するのは確定で
さらにanacondaやvenvや各種yumリポジトリ、ソースからのインストール、docker環境などもはやその辺の開発者が扱えるレベルを超えちゃった
666:デフォルトの名無しさん
23/01/14 07:53:48.41 1MvlYv0N0.net
>>653
ありがと
pytorchでやってみる
667:デフォルトの名無しさん
23/01/14 08:00:46.17 aCrKEOPPM.net
>>656
Windowsに生Python入れてずっとそれ使うのが一番楽で安定する
うちは3.3入れて一切のアップデート・ライブラリ導入禁止にしてる
668:デフォルトの名無しさん
23/01/14 11:29:24.96 vxBJh77Y0.net
3.3てとっくの昔にサポート切れてるだろ
669:デフォルトの名無しさん
23/01/14 12:25:35.76 oZZKJ2l20.net
放置しとけ
670:デフォルトの名無しさん
23/01/15 01:34:04.26 EkruTxxD.net
現在の時刻から、ローソク足の最新時刻を出力するコードをAIに聞いたらこうなった
URLリンク(ideone.com)
なんかもっとスマートに書けないかな
・ローソク足は時計一周割り切れる足しかない(5時間とかだと1時間ずつずれるので基本無い)
・timedeltaの引数の%candle_periodのところはデフォルト値に計算結果が0になるような適当な数値を入れておく
な感じをベースに書き直してみたけど
URLリンク(ideone.com)
for u in candle_period:のとこが野暮ったく、そもそも全体的にもっと良い記述があるような
671:デフォルトの名無しさん
23/01/15 11:24:21.13 RjKVOkq+0.net
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
672:デフォルトの名無しさん
23/01/15 17:08:43.68 Gy6i7OPa0.net
チンチャこれ
673:デフォルトの名無しさん
23/01/15 18:17:08.02 svqF8aqF0.net
>>661
ローソク足と絡めるならpandasでresample()するのが一般的だけども
勉強がてらにということなら以下のようなコードでどうだろうか
URLリンク(ideone.com)
674:デフォルトの名無しさん
23/01/15 21:01:09.94 EkruTxxD.net
>>664
なるほど
replaceがあったのか
_daysみたいな表記にも特にこだわる必要なくなったのでそっちのがスッキリしていいな
ありがとう
675:デフォルトの名無しさん (ワッチョイ 1a2d-TTdX)
23/01/16 13:33:07.55 19rG6UMJ0.net
パイソンチュートリアルにところどころ英語が混ざってるのは本を買わせるため?
676:デフォルトの名無しさん (ワッチョイ 1a10-KxRG)
23/01/16 14:12:45.24 HxFrHGTf0.net
原文が更新されてまだ追従してないだけじゃない?
内容が古くなるけどバージョン下げたら日本語になるはず
677:デフォルトの名無しさん (ワッチョイ 8610-7DGa)
23/01/16 23:28:41.70 ieLY1UIo0.net
英語の勉強すればおk
678:デフォルトの名無しさん
23/01/17 00:11:36.79 mKywsyCg0.net
ただの独り言だが以前は原著原文読めって言われてもなーと思ってたが糞機械翻訳のドキュメントがあふれるようになってからは原文読むようになったな
679:デフォルトの名無しさん (ワッチョイ f954-ox3M)
23/01/17 08:49:29.93 86vhjnqQ0.net
今のAIなら原文が間違ってても修正してくれるかもしれん
680:デフォルトの名無しさん
23/01/18 00:14:37.02 hk0QW4ON0.net
python環境自体をパッケージングして配布する方法ってあります?
ソースコードだけだと各自のローカルのライブラリのバージョン次第で動かないとかありそうなので、dockerみたいに環境丸ごとやり取りしたいんですが。
681:デフォルトの名無しさん
23/01/18 01:07:09.81 ZQLfTfm70.net
>>670
「あなたが本当にやりたいのはA案ではありませんか?
もしあなたが提案するB案を採用すると以下のような
ごく特殊なケースだけをしょりすることになります。
それでよろしいですか?」
682:デフォルトの名無しさん
23/01/18 01:16:21.29 O4NvFfr90.net
>>671
デプロイ先で実行環境を構築したいとかそういう話?
683:デフォルトの名無しさん
23/01/18 01:24:34.07 O4NvFfr90.net
>>671
最初にPythonをインストールしてくださいってできないの?
684:デフォルトの名無しさん (ワッチョイ dd3c-CH4L)
23/01/18 06:05:50.40 jSahhEMI0.net
>>671
pyinstallerかな?
685:デフォルトの名無しさん (ワッチョイ 4110-7DGa)
23/01/18 07:46:04.02 j8aICGQQ0.net
依存パッケージのバージョンの話なら requirements.txt 用意することになるんだろうけど、
ユーザーの環境にインストールさせるのがうざいよなぁ。
スクリプト本体とバンドルして配布できればいいのに。
686:デフォルトの名無しさん (ワッチョイ f954-ox3M)
23/01/18 09:05:48.70 /pnBak0/0.net
ちゃんと判ってる人向けならrequirements.txtで足りるんだろうな
何も判らない人でもダブルクリックするだけで全てインストールされる仕組みは大変そう
687:デフォルトの名無しさん
23/01/18 11:48:52.72 cgIxykua0.net
使ったことないけどembeddable pythonは?
688:671
23/01/18 12:32:41.36 hYVfYEsja.net
すみません説明不足だったかも。pythonの開発環境自体を、ライブラリを含めて配布したいのです。
調べたらWinpythonがそれっぽい?
689:デフォルトの名無しさん
23/01/18 12:48:14.85 liJuFOIB0.net
ターゲットがLinuxならコンテナ一択やがWinアプリ書きたいん?
690:デフォルトの名無しさん
23/01/18 13:18:57.48 O4NvFfr90.net
>>679
どういう開発環境かもわからんし、pipが使えない理由もわからんけど
実行環境と開発環境をごっちゃにしてるのはわかる
よくわからんからとりあえずやってみたらいいんじゃね
691:デフォルトの名無しさん
23/01/18 14:04:46.70 s0ETZiMG0.net
x = 1
y = 2
l = [x, y]
l[x > y] = 1
l[x < y] = 10
先日、このアクセス初めて見たんだけど
こういう使い方できますってどこに書いてるん?
というかこれ何? 何をしてるの?
692:デフォルトの名無しさん
23/01/18 14:17:53.69 XUj03KlL0.net
>>682
print(int(True)) してみればわかる
693:デフォルトの名無しさん
23/01/18 15:13:41.38 +ZuSWnJO0.net
>>679
ソースからインストールするのが良いと思う
特定のディレクトリにインストールして
pipモジュールも全部そこに入れる
PYTHONPATH環境変数さえ切り替えればディレクトリ丸ごとzip化して展開するだけで動く
694:デフォルトの名無しさん
23/01/18 15:36:42.94 s0ETZiMG0.net
>>683
ああ0か1でインデックスアクセスしとるだけか…
695:デフォルトの名無しさん (アウアウアー Sace-/AVQ)
23/01/18 15:51:40.32 jMlJSS1Fa.net
>>685
それだと2番目で10帰るのはおかしくない?
696:デフォルトの名無しさん (ワッチョイ f954-ox3M)
23/01/18 15:51:50.72 /pnBak0/0.net
何に使うの?
それで元のxとかも変更されたら面白いけど
697:デフォルトの名無しさん (ワッチョイ 8646-powr)
23/01/18 17:55:01.69 6kj4tnJC0.net
>>686
以下が全て同じ事ならおかしくないのでは。
l[x < y] = 10
l[True] = 10
l[1] = 10
698:デフォルトの名無しさん (アウアウアー Sace-/AVQ)
23/01/18 17:56:51.65 4G0iEoXva.net
>>688
これって l == [1,2] でしょう?
699:デフォルトの名無しさん (アウアウエー Sab2-f+PD)
23/01/18 18:00:03.67 CSuoG/Pca.net
どうみても [1,10]
700:デフォルトの名無しさん (ワッチョイ ed01-f6s+)
23/01/18 18:01:25.91 vDmewWjV0.net
ワロタ
701:デフォルトの名無しさん (アウアウアー Sace-/AVQ)
23/01/18 18:02:02.81 4G0iEoXva.net
x = 1
y = 2
l = [x, y]
って代入してますよね。
>>690
702:デフォルトの名無しさん (アウアウエー Sab2-f+PD)
23/01/18 18:05:03.53 CSuoG/Pca.net
>>692
その下で再代入してますよね?
703:デフォルトの名無しさん (ワッチョイ 06bb-sA4L)
23/01/18 18:07:51.72 guU+fOES0.net
>>687
だいたいゴルフ
704:デフォルトの名無しさん (ワッチョイ 867b-lu1o)
23/01/18 18:11:56.58 cgb3Ru010.net
682じゃないけど、
l[x < y]実行すると確かに10って出るんだけど、l[x < y]て何?変数?
705:デフォルトの名無しさん (ワッチョイ 8610-qfBe)
23/01/18 18:13:34.26 XUj03KlL0.net
URLリンク(wandbox.org)
(´・ω・`)
706:デフォルトの名無しさん (ワッチョイ 867b-lu1o)
23/01/18 18:24:19.05 cgb3Ru010.net
なるほど、そこは式でもいいんだw
l[1]ね
707:デフォルトの名無しさん (アウアウアー Sace-/AVQ)
23/01/18 19:16:40.41 4G0iEoXva.net
>>693
本当だ……
すみません
708:デフォルトの名無しさん (アウアウエー Sab2-eHNm)
23/01/18 20:20:20.43 Hw+b6smNa.net
リストのインデックスやろ
709:デフォルトの名無しさん (ワッチョイ ed01-hn8B)
23/01/18 21:56:26.72 1WHyH76r0.net
test
710:デフォルトの名無しさん
23/01/19 00:54:56.11 5JSgYA5N0.net
682だけどみんなすまん
再代入ではなくコメントアウトしたつもりだっただけだ
x = 1
y = 2
l = [x, y]
l[x > y] # 1
l[x < y] # 2
インデックスアクセスって式でもいいんだね
その仕様って公式ドキュメントかどこかに書いとるのかな?
_list[getStart() : getEnd()]
は見たことある
711:デフォルトの名無しさん (ワッチョイ 9576-8egj)
23/01/19 08:00:24.00 cvaqY+KJ0.net
l[i+1]-l[i]
みたいなことは普通にやるでしょ
l[True]が許されてるのは知らんかったが
712:デフォルトの名無しさん (ワッチョイ f954-ox3M)
23/01/19 08:45:06.76 tHxF2dx+0.net
普通に考えてエラーだよな
713:デフォルトの名無しさん (ワンミングク MM5a-ha7Y)
23/01/19 10:18:38.24 Np1e/hbpM.net
cだとTrue==1,False==0
714:デフォルトの名無しさん (ワッチョイ dd3c-CH4L)
23/01/19 10:35:05.16 jZEAJEvg0.net
>>701
おそらくオリジナルのコードはもっと違うものだろう
a=[1,2,3,4,5]
a[a>3]
みたいな書き方ではないかと予想
715:デフォルトの名無しさん (ワッチョイ f954-ox3M)
23/01/19 10:49:25.55 tHxF2dx+0.net
Cにもよるけど、本来は0か0以外
1に限定してしまうとじゃあ2だったら?になる
0以外なら何でもいいけど1に限定するルールが追加されたりもする
716:デフォルトの名無しさん (ワンミングク MM5a-ha7Y)
23/01/19 11:10:27.46 Np1e/hbpM.net
numpyのコードでも見たんかな
717:デフォルトの名無しさん
23/01/19 13:45:08.48 O9Pu7UCm0.net
2択ならif文使わずにリスト+真偽値でこういう風に書けるけどこういうのってバグ誘発とかします?
print(["不合格", "合格"][a > 70])
718:デフォルトの名無しさん
23/01/19 13:49:31.35 tHxF2dx+0.net
print("不合格" if a <= 70 else "合格")
普通はこうするかな
そのまま文章として読める
719:デフォルトの名無しさん
23/01/19 14:07:07.89 KyLvYp+m0.net
>>708
自分だけが使うコードならそれでいいよ (競プロとかね)
複数人が触るコードでトリッキーなことをするのはやめたほうがいい
720:デフォルトの名無しさん
23/01/19 14:07:26.78 tUp9S1Vn0.net
URLリンク(twitter.com)
721:40A&s=19 (deleted an unsolicited ad)
722:デフォルトの名無しさん
23/01/19 14:41:58.83 lMPY/6+kr.net
>>711
草
723:デフォルトの名無しさん
23/01/19 14:50:57.06 tUp9S1Vn0.net
URLリンク(twitter.com)
(deleted an unsolicited ad)
724:デフォルトの名無しさん
23/01/19 15:06:12.24 tHxF2dx+0.net
いやいやいや
725:デフォルトの名無しさん
23/01/19 15:21:56.82 UZ8Yv+jk0.net
って二部探索するんかい
726:デフォルトの名無しさん (スッププ Sdea-WdMA)
23/01/19 16:25:33.10 upxAw0UEd.net
二分
727:デフォルトの名無しさん (ワッチョイ 8663-f6s+)
23/01/19 17:50:13.85 QVFjggvT0.net
一部分の探索で済まそう
728:デフォルトの名無しさん (アウアウアー Sace-0njp)
23/01/19 18:56:11.00 TNs8/XJ0a.net
リスト内で複数行にまたがる正規表現って可能なもんですかね?
0 りんごが1個うれた
1 りんご
2 が2個
3 売れた
りんご.*れた みたいな感じのパターンを使って最初にマッチする行位置が取りたいっす。
729:デフォルトの名無しさん
23/01/19 19:14:50.90 tHxF2dx+0.net
特殊な文字でjoinしたものを検索してから、特殊な文字の個数を数える
りん
ご
みたいに行を跨いでいるものは無理
730:デフォルトの名無しさん
23/01/19 19:22:45.59 5ZAVTiSz0.net
特殊な文字なしでjoinして位置変換の情報は別途生成でいいんでは
731:デフォルトの名無しさん
23/01/19 19:29:53.07 tHxF2dx+0.net
一つずつ長くしながら比較、でも判るけど時間かかりそう
一旦文字数のテーブルに変換しておけば文字列比較はしなくて済む
732:デフォルトの名無しさん
23/01/19 19:50:54.78 TNs8/XJ0a.net
719
720
721
やっぱりリスト内は難しいですよね。
joinで考えます!!
733:デフォルトの名無しさん
23/01/19 21:09:54.59 .net
AIに聞いた結果 >>718
URLリンク(i.imgur.com)
URLリンク(ideone.com)
734:デフォルトの名無しさん
23/01/19 21:26:15.66 tHxF2dx+0.net
文字列内に改行が含まれないことが明らかなら、特殊な文字として改行を使ってAIと同じ答えになる
にしてもAIすげーな
735:デフォルトの名無しさん
23/01/19 21:34:15.13 cvaqY+KJ0.net
リストに分割されてない"\n"区切りの1本の文字列なら、
reのDOTALL使っていい感じにできそう?
736:デフォルトの名無しさん
23/01/19 21:37:12.72 tHxF2dx+0.net
flags=re.DOTALL は不要な時はわざわざ付けないだけで、
あって困ることはあんまりないのでむしろデフォルトにして欲しい
737:デフォルトの名無しさん
23/01/21 01:57:46.01 hmuMvNyB0.net
一連の処理が関数化されたライブラリサイト探してるんだけど、検索しても関数の使い方ばかりヒットする。どっかいいところある?