Pythonのお勉強 Part69

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ c733-stRS)
垢版 |
2022/11/24(木) 21:39:44.67ID:A6xfpKBe0
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
 エラー文(勝手に省略orスクショうp等の横着禁止)と
 おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/

●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その58
https://mevius.5ch.net/test/read.cgi/tech/1662514433/

〇前スレ〇
Pythonのお勉強 Part68
https://mevius.5ch.net/test/read.cgi/tech/1663235546/

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ### ?
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
337デフォルトの名無しさん (ササクッテロリ Spef-0zvw)
垢版 |
2022/12/30(金) 11:56:52.21ID:KypYNh+sp
デコレータって関数受けて関数返せばデコレータと言っていいの?
それとも機能の追加が出来れば関数返さなくてもいいの?
デコレータの例が全部ラップしてるから関数返すものをデコレータっていうのかと思ったけど、Pythonの構文的には機能の追加が要件ぽくてよくわからん
2022/12/30(金) 12:18:32.93ID:+LXrKtXS0
それは高階関数かな
339デフォルトの名無しさん (ササクッテロリ Spef-0zvw)
垢版 |
2022/12/30(金) 12:32:28.57ID:EYlolZ9wp
>>338
def deco (fn):
print("Good")
fn()
print("Good")

↑の関数は高階関数と言えるし、デコレータとも言える?
2022/12/30(金) 12:34:35.19ID:6lQGRZJ+d
>>339
デコレータとは、@decoの形で使用されることを想定している関数
ただそれだけのこと
341デフォルトの名無しさん (ササクッテロリ Spef-0zvw)
垢版 |
2022/12/30(金) 12:39:12.89ID:EYlolZ9wp
>>340
def deco (fn):
print("Good")
fn()
print("Good")

と↑をラップした↓

def outer (fn):
def deco ():
print("Good")
fn()
print("Good")
return deco

だとそれぞれどういうメリットデメリットが想定できる?
この程度だったら何も変わらない?
2022/12/30(金) 14:25:39.66ID:v4ysyuF5a
>>341
前者はデコレータとして使用できない
後者は使用できる
それだけのこと
343デフォルトの名無しさん (ササクッテロリ Spef-0zvw)
垢版 |
2022/12/30(金) 14:30:10.80ID:CAw5d3+3p
>>342
前者もデコレータとして使えるよ?
@decoで使うってことだよね?
344デフォルトの名無しさん (ササクッテロリ Spef-0zvw)
垢版 |
2022/12/30(金) 21:59:47.08ID:i0HtXYTfp
>>343
自己解決しました
345デフォルトの名無しさん (ブーイモ MMf3-pLDh)
垢版 |
2022/12/30(金) 22:26:59.27ID:XgQsZPRMM
自己解決とは一体・・・ww
346デフォルトの名無しさん (ササクッテロリ Spbb-3X/C)
垢版 |
2022/12/31(土) 00:05:03.98ID:Y1CGuIqUp
>>345
自分のわかっていないところがわかりました
2022/12/31(土) 00:20:01.24ID:E+Koymh80
replitのpythonテンプレートを使っているのですが、実行すると勝手にパッケージをインストールしたりします。これを止める事は出来ますか?
2022/12/31(土) 00:20:01.95ID:E+Koymh80
replitのpythonテンプレートを使っているのですが、実行すると勝手にパッケージをインストールしたりします。これを止める事は出来ますか?
2022/12/31(土) 14:58:09.42ID:iYLc9PIz
main.pyのソースを見たときに
import ○○ #upm package(パッケージ名)
の行のコメントアウト外すと消えるかも>>348
2023/01/01(日) 18:58:07.86ID:QkrDyXxA0
ワークマンの売上高は10年で2.6倍 好調の背景に何があるのか
www.itmedia.co.jp/business/articles/2301/01/news011.html

ワークマンpythonらしいぞ
まーそうなるわな
2023/01/01(日) 19:36:11.17ID:ps54Dm7d0
スレチだけど...
> KPIを達成しても売り上げが伸びない場合、社員ではなく経営の責任ということになります。
> 『会社がやれと言った内容がそもそも間違っていたんだね』ということで
まあインタビュー記事だからいくつか盛ってるとは思うけどこれがそれなりでも浸透してるなら確かに強いと思うわ
352デフォルトの名無しさん (ブーイモ MMb6-DakT)
垢版 |
2023/01/01(日) 21:38:32.18ID:OSWb6iEUM
>>350
ぶっちゃけ一番安上がりだからじゃね?
2023/01/01(日) 22:00:13.33ID:UVAQFgfk0
ちょっと前のすれにtypecheckerが出てたけど、
仕事で静的型付けって意識してる?
Dropboxが静的型付け使って開発してるぜ~っていう記事を
ちょうど見かけたもんで。
https://navi.dropbox.jp/our-journey-to-type-checking-4-million-lines-of-python
2023/01/01(日) 22:16:25.00ID:2lDDSA+U0
実際には型が動的で有り難いことは殆どなくて、大抵は決まったものしか入らない
だからこそ型なんか書かなくていい、という思想な気がする
2023/01/01(日) 22:41:34.82ID:65g2Zgvwd
>>353
typing hint(+dats class) 、mypyももちろんオン。会社など複数人が関わるプロジェクトね。一人なら好きにやれば良い
356デフォルトの名無しさん (アウアウエー Sa52-9yt5)
垢版 |
2023/01/02(月) 12:12:57.71ID:XEDAh58aa
Windows環境で、「アプリと機能」の一覧に表示されるソフトウェア名一覧をPythonから取得するにはどうしたら良いですか??

https://tadaup.jp/loda/0102120639918904.png
2023/01/02(月) 12:15:15.36ID:a90VB+UOd
レジストリ読む
2023/01/02(月) 14:11:49.16ID:VCjQSWZY0
WMI
2023/01/02(月) 17:01:40.21ID:mMdAew+l0
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)
360デフォルトの名無しさん (スッププ Sdba-9yt5)
垢版 |
2023/01/02(月) 19:23:19.67ID:gNyrLSWLd
>>359
すごい!ありがとうございます!
2023/01/02(月) 19:38:51.68ID:qfqFAF6wa
>>359
サンプルが少ないからほぼ直コピペなんだろうな
2023/01/02(月) 20:50:28.36ID:xWUsdzOR0
自演はいいって
2023/01/02(月) 21:06:38.35ID:gHhSLzFgM
すごくいいです
2023/01/02(月) 21:08:42.90ID:9G/14EFS0
subprocessの書き方古くない?
2023/01/02(月) 21:18:09.07ID:xWUsdzOR0
いやrunは新しいAPIだよ
2023/01/02(月) 21:20:08.80ID:9G/14EFS0
cmdを起動せずにリストを渡すのと、cmdにコマンドの文字列渡すやり方があるよね
2023/01/02(月) 21:30:45.62ID:xWUsdzOR0
文字列渡すパターンは危険だからね
チェックをちゃんとしないと予期せぬコマンドが実行される
shell=Trueしてると特にやばい
2023/01/02(月) 21:32:02.96ID:9G/14EFS0
別にリストでも変わらないと思うけど
面倒なだけで
2023/01/02(月) 21:36:28.26ID:1k7qyNCA0
>>364
新しい書き方教えて
2023/01/02(月) 21:38:52.52ID:9G/14EFS0
時系列はよく知らんけど、リストで渡す方法がまずあって、
不便だからと文字列の方法が追加されたんじゃないの?
2023/01/02(月) 22:12:07.01ID:65aHjL4I0
shlex.split("date +%a")
# -> ["date", "+%a"]

run に渡すリストはこうやって作ると便利だよ (´・ω・`)
2023/01/02(月) 22:23:15.59ID:9G/14EFS0
普通にf文字列がいい
2023/01/02(月) 22:47:14.11ID:+OShonpv0
ModuleNotFoundError: No module named 'xml.etree'; 'xml' is not a package

ElementTreeでXMLを作成すると上のエラーがどうしても出てしまいます。
ElementTree以外にXMLがいじれるのって何がいいですか?
BeautifulSoupですか?
2023/01/02(月) 23:55:25.20ID:VCjQSWZY0
xml.pyかxmlなディレクトリがあるんちゃうか
ググっても同じこと書いてる記事多数
2023/01/03(火) 00:26:25.58ID:o2Yi6Z0r0
>>374
レスありがとうです。その記事を見て確認したんですけど特に問題はなく、それ以外の解決法も見当たらずでお手上げ状態です
2023/01/03(火) 00:37:01.34ID:hRecP/5n0
エラーが出ますは自力で解決しろとしか
ただの間違いなんだから
2023/01/03(火) 02:55:11.90ID:LZW0ef8O0
誰もやらないと思うけど
こんな感じのエスケープだと、失敗してしまう
(コマンドプロンプトやshell=Trueだと、成功する)

C:¥"Program Files"¥Python¥python.exe -V
2023/01/03(火) 06:11:34.42ID:cXTWG1PB0
そりゃ " " を剥ぎ取るとかは c m d.exe がやってるんだからそれを食わせたいなら同じ事をしてやらないと失敗するのは当たり前
2023/01/03(火) 09:57:15.62ID:LZW0ef8O0
文字列で渡すときはWinAPIのCreateProcessを見てね
って、書いてあったわ
実行ファイルの解釈から違うとは思わなかった
すまん
2023/01/03(火) 15:48:59.80ID:E/lRcWz50
ファイル名の取得という基礎の基礎が
ようやく安定したレベルですまない。

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に貼り付けて、
カンマを特殊文字で改行に置き換えた方がはやいかな?
381デフォルトの名無しさん (ブーイモ MMba-DakT)
垢版 |
2023/01/03(火) 16:00:07.29ID:xk3Wdt8AM
>>380
“\n”.join(files)
2023/01/03(火) 16:04:23.85ID:HKIHgf/70
globはいろいろ謎だよな
歴史的な何かとの互換性で微妙に使いにくい
2023/01/03(火) 16:06:39.39ID:HKIHgf/70
とりあえず、import glob はやらなくて、
from pathlib import Path
p = Path("./")
for file in [str(x) for x in p.glob("*")]:
 print(file)
みたいに使ってるけど、これでもしっくり来ない
2023/01/03(火) 16:15:41.39ID:97qfA6UK0
自分でフィルタしたいならos.walk
2023/01/03(火) 16:25:05.94ID:E/lRcWz50
>>381
ありがとう。
一見すると、単に","が"n"に変わっただけのように見えるけど、
Excelに貼り付けたときの挙動がまったく異なるんだね。

しかし検索してもアフィみたいなサイトしかなくて大変だな
入門書探してみるノシ
2023/01/03(火) 17:15:05.41ID:90wq8UOz0
\nただの改行だよ
2023/01/03(火) 18:00:04.32ID:E/lRcWz50
失礼。

print("\n".join(files))

こういうことね。
388デフォルトの名無しさん (ワッチョイ 5b2c-Hg2a)
垢版 |
2023/01/03(火) 22:20:57.30ID:dIZcTCs/0
定期的に
tuple[str, tuple[int200個]] #key: valueです
を1万件取得して
既存の辞書に追加、更新していきます
このときkeyがなければkey, valueを登録するのはいいとして

keyが既存のときのvalueの更新はどうするのが常道ですか? 高速なのがいいです。または不要な書き換えがないほうがいいです
valueに差異があれば書き換え がいいのか、問答無用で全部更新しちゃうべきなのか…
2023/01/03(火) 22:55:20.83ID:97qfA6UK0
理解も進むしベンチとるのがいいよ
すでに新しいタプルを構築してるなら問答無用でいいと思うけどね
キーの確認や差異がないかしらべるコストもゼロじゃないし
2023/01/03(火) 22:58:56.25ID:n4oKw/VOa
データベースで言う、upsert だろ。
データが無ければinsert、有ればupdate

基本中の基本
391デフォルトの名無しさん (ブーイモ MM7f-UGA+)
垢版 |
2023/01/04(水) 01:07:35.19ID:O+gUhHpWM
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
2023/01/04(水) 08:56:21.55ID:fFs0aGwQ0
perlから来るとkeyが既にあるか無いか気にしないといけないdictがうざくて仕方ない
393デフォルトの名無しさん (ワッチョイ f397-HbQu)
垢版 |
2023/01/04(水) 10:43:47.27ID:xfkX5cN10
dictを継承したmydict作って、setitemをオーバーライドすればいいんじゃない?なんかその辺のパッケージにありそうだけど
2023/01/04(水) 11:09:24.58ID:fFs0aGwQ0
autovivificationは便利だけどどう考えても邪悪なのでpythonには似合わないとは思う
多次元のdictとか何も考えずに作れて楽なのに
395デフォルトの名無しさん (ワッチョイ cebb-FKhm)
垢版 |
2023/01/04(水) 11:54:12.95ID:3yoX2IMb0
perlから来たからdefaultdictを知らないってことか
396デフォルトの名無しさん (ブーイモ MM13-DakT)
垢版 |
2023/01/04(水) 11:57:20.58ID:PRI0tLaEM
defaultdictとか関係なくないか?
単にfoo[key] = valueってしてけばいいだけの話じゃないの?
2023/01/04(水) 12:17:46.09ID:fFs0aGwQ0
文章に単語が何回登場したかカウントする
みたいなことをしたい時に、
if word in count:
 count[word] += 1
else:
 count[word] = 1
みたいに毎回判定が入る

perlなら問答無用に
$count[$word] += 1;
で済んでしまう
2023/01/04(水) 12:21:49.86ID:fFs0aGwQ0
で、この場合はdefaultdictで解決できるのだけれど、
そうも行かないケースがままある
399デフォルトの名無しさん (ワッチョイ cebb-FKhm)
垢版 |
2023/01/04(水) 12:27:21.02ID:3yoX2IMb0
そうもいかないケースを挙げてみ?
2023/01/04(水) 13:21:09.09ID:hHvDsnQT0
俺はこっち派

count[word] = count.get(word, 0)+1
401デフォルトの名無しさん (ブーイモ MM26-DakT)
垢版 |
2023/01/04(水) 14:05:48.69ID:hsLqwQpIM
>>397
質問とは関係ない話だったのか

defaultdictをわざわざ使わなきゃいけないのは面倒だとは思うがパフォーマンスに影響するところだから違うものとして分ける考え方も理解できる
402デフォルトの名無しさん (ワッチョイ 0e30-9yt5)
垢版 |
2023/01/04(水) 16:11:58.90ID:Y9cKLIFN0
>>397
いいんじゃないの
上に書いてる奴は見れば一瞬で理解できる
2023/01/04(水) 16:31:04.37ID:nnn7+JHJ0
perlの糞文法の轍を踏まず、perl屋さんが億劫に感じる方向でおながいしまつ
404デフォルトの名無しさん (アウアウウー Sac7-Dewi)
垢版 |
2023/01/04(水) 16:33:02.89ID:s5vEki4Ca
そりゃ言語が違うんだから当たり前だろ
そんなにperlが好きなら一生perl浸かってろ
2023/01/04(水) 16:46:54.88ID:169GBKXC0
Perlはこそっと使え
決して異教徒の目に触れさせるな
2023/01/04(水) 17:03:28.83ID:fFs0aGwQ0
初期化してない変数をいきなり参照したら0で構わないと思うんだけどな
99%はバグってるんじゃなくて初期化を忘れただけなんだから
2023/01/04(水) 17:46:01.10ID:R0FkSoR+6
バグの原因を初期化忘れだけに絞れるなら恩恵としては大きいな
2023/01/04(水) 18:04:46.20ID:lFNs7lW+0
>>406
> 99%はバグってるんじゃなくて初期化を忘れただけなんだから
根拠の無い妄想はブログとかでやってくれ
2023/01/04(水) 18:08:36.66ID:hHvDsnQT0
>>406
99%は言い過ぎ
2023/01/04(水) 18:23:39.40ID:fFs0aGwQ0
関数内の0や""で初期化してる処理を、スコープ先頭に移して挙動が変わるかどうか
変わらないならそれは省略可能だった初期化
2023/01/04(水) 18:23:43.29ID:oLi3mo910
>>406
そこはNoneでいいだろ。つか、初期化してなきゃ型も決まらないから0にもしようがない。
2023/01/04(水) 18:50:16.06ID:fFs0aGwQ0
だからこその動的型付けで、0だったことにする
文字列として参照されてたら""だったことにする
dictとして参照されてたら{}だったことにする
2023/01/04(水) 18:53:52.08ID:rMcGd+esd
>>412
それ別のバグ生み出しそう
型の違いって致命的じゃね
2023/01/04(水) 19:06:24.67ID:oLi3mo910
>>412
数値として参照されたか文字列として参照されたかってどう判断するつもり?
2023/01/04(水) 19:09:25.07ID:fFs0aGwQ0
perlはそのへんを、お前は人工知能か何かなのかという精度で判定してくれてた
普通に考えると確定しないようなケースでも何故か正解する
失敗すると発見不可能なバグになるから封印したんだろうな
2023/01/04(水) 20:10:19.57ID:JBcAh0Lfd
rubyキチガイといいこいつといい多言語は~って奴は聞いてもないこと話してきてウザい
2023/01/04(水) 21:31:42.96ID:oLi3mo910
そりゃperlと同じようなコンテキストの考え方を導入しなきゃ無理だな。
少なくとも、数値の加算と文字列の連結に同じ'+'演算子を使ってるpythonは
そのへん全部ひっくり返さないとならない。
2023/01/04(水) 21:39:33.83ID:fFs0aGwQ0
+される相手が文字列なら文字列
2023/01/04(水) 21:48:59.92ID:QnXxsDbw0
Option Explicit On
なんてやったら阿鼻叫喚か
2023/01/04(水) 22:01:32.73ID:lFNs7lW+0
>>418
両方初期化してない変数ならどうするんだ?
2023/01/04(水) 22:08:13.33ID:169GBKXC0
降魔の儀式を始める
2023/01/04(水) 23:09:43.15ID:fFs0aGwQ0
a = b + c
でbもcも未初期化なら、aも未初期化で何も困らない
2023/01/04(水) 23:58:47.37ID:PU4coe7B0
初期化すべきなのに忘れていて
忘れたものを忘れたまま使おうという発想が理解できない
そんなコードもコーダーも使い物にならない
2023/01/05(木) 00:00:28.67ID:UaHb0F9a0
>>417
呼ばれるメソッドはちがうよ割と大昔から
https://docs.python.org/ja/3/reference/datamodel.html?highlight=__add__#emulating-numeric-types
2023/01/05(木) 00:03:39.00ID:/79BsoYR0
>>422
そりゃ結局None。
変数の初期化はこの際関係なくて None + int -> int で None + str -> str になってほしいってことなんだろ。
2023/01/05(木) 00:05:55.35ID:/79BsoYR0
>>424
左辺の型が決まらないことには呼びようがないんじゃね?
2023/01/05(木) 07:49:37.10ID:DuFbe6wEd
Perl好きならPerl使ってろよ
2023/01/05(木) 08:03:01.51ID:0egeTroNM
いい加減perlおぢさんウザイな
荒らしてるという自覚は無いんだろうな
2023/01/05(木) 08:37:29.48ID:MKhVdLEmr
頭がPerl
2023/01/05(木) 08:54:26.68ID:qYGcpxae0
おっぱいがPython
2023/01/05(木) 08:54:31.46ID:XvyJyDBe0
暗黙より明示のルールに反してるから可能だとしてもやらないだろう

変数を参照するだけか書き換えもするかで名前空間が変わるのは結構暗黙的だと思うけど、
それは利便性が優先した
初期化を省略するのはそんなに利便性が無い
2023/01/05(木) 08:57:08.87ID:O+NRT3S+0
利便性が無いというかタイプミスを検出できなくなるから
2023/01/05(木) 13:08:24.65ID:A7vAZ1Ex0
ミスはしませんw
2023/01/05(木) 13:28:28.85ID:XvyJyDBe0
タイプミスしたら使ってない変数が現れるんだから、それは簡単に検出できる
2023/01/05(木) 14:43:39.73ID:O+NRT3S+0
>>434
どうやってやるの?
2023/01/05(木) 14:53:37.34ID:XvyJyDBe0
チェッカーにかける
2023/01/05(木) 16:58:05.12ID:Ej4/aJA/0
str型限定だけど、型を自動的に変更してくれるというのはちょっとありがたいかも
format()やf文字列だと、変数をそのまま突っ込めばいいので楽ちん
2023/01/05(木) 17:05:39.43ID:DbVL8BP10
自動変換は悪さにしか使われないという印象だからいらないかな
perlみたいに言語がよしなにやってくれるならそれで良いけど
ユーザー定義の暗黙の型変換は間違いなく地獄
2023/01/05(木) 17:13:54.28ID:/79BsoYR0
C++の変換コンストラクタとかな。
自分でそれを意図して書く人にとってはそのときは楽だろうけど、後から読む人が大変。
2023/01/05(木) 17:27:10.71ID:s7+Erfl9p
JSにおけるTSみたいなのってPythonでは作られないのかな
2023/01/05(木) 17:31:18.16ID:AfQblY9wd
Pythonには型アノテーションがあるから不要
TypeScriptの超柔軟な型付けを想像してるとガッカリするが
2023/01/05(木) 17:54:22.11ID:AqbKvwuBd
>>434
その使ってない変数が初期化されてて使えるといいって話が>>406でしょ
初期化忘れよりタイプミスの方が遙かに多いだろw
2023/01/05(木) 18:02:36.57ID:XvyJyDBe0
変数名や関数名をタイプするのなんか最初の1回だけだしな
2023/01/05(木) 18:15:14.05ID:AqbKvwuBd
タイプしないならどうするの?
まさかマウスポインタ操作するの?
2023/01/05(木) 18:41:22.77ID:XvyJyDBe0
マジで、変数名はコピペしかしない習慣にした方がいいよ
あるいは自動入力
アニメに出てくるハッカーじゃないんだから、キーボード叩きまくるスタイルは良くない
446デフォルトの名無しさん (ワッチョイ 8b01-IAH/)
垢版 |
2023/01/05(木) 18:44:43.59ID:WQABuOJr0
Pythonが「メインの利用言語」で2位にとどまる、1位に立ったのは定番のあの言語
https://xtech.nikkei.com/atcl/nxt/column/18/02246/110200002/?twclid=2-6h1yvcwwfn6rhkvsu5alyi08m&n_cid=nbpnxt_twad_2211_005
2023/01/05(木) 18:45:50.33ID:6GZFvj4Q0
コピペよりインテリセンス?オートコンプリート?をよく使う
2023/01/05(木) 19:02:35.19ID:uFuuDD5j0
読者アンケートの結果ごときで
会員登録で続きをご覧いただけますと来たか
2023/01/05(木) 19:18:25.74ID:DbVL8BP10
変数のレキシカルスコープを導入してくれ
2023/01/05(木) 19:39:15.56ID:+qdyai3T0
そういうのって登録するとわんさかスパムメールが届くことになる
2023/01/05(木) 20:37:35.36ID:aM58GnUZp
Pythonはレキシカルスコープ採用してるって出てくるけど変数のレキシカルスコープはまた違うの?
2023/01/05(木) 20:37:52.79ID:AqbKvwuBd
>>445
使ってない変数が現れたら簡単に検出できるんでしょ?
ならコピペする必要なくない?
453デフォルトの名無しさん (アウアウウー Sac7-yDM8)
垢版 |
2023/01/06(金) 16:48:17.73ID:YIB2cDqha
>>440
Nim 便利ょ
2023/01/06(金) 17:02:10.21ID:nq1XWMD+0
ちょっと文法が似てるだけの別言語やん
2023/01/06(金) 17:04:24.79ID:csJ7DXSap
>>453
Nim良さそうだけど全然流行ってる感じないね
そもそもPythonがライトユーザー向けに適合し過ぎてて進化の必要ないのかもね
456デフォルトの名無しさん (アウアウウー Sac7-Dewi)
垢版 |
2023/01/06(金) 17:36:13.11ID:YIB2cDqha
別言語だけど python と相性良い方
2023/01/06(金) 17:41:53.43ID:nq1XWMD+0
JavaとJavaScriptくらい違う
2023/01/06(金) 17:45:56.69ID:DjpXTv+h0
ほな一緒やないかい
459デフォルトの名無しさん (ワッチョイ 1a03-uhAF)
垢版 |
2023/01/06(金) 20:18:53.27ID:Hxt0hqaC0
どこがやねーんっ
460デフォルトの名無しさん (スップ Sdba-kLll)
垢版 |
2023/01/06(金) 23:55:41.03ID:Hw74BWkVd
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のバッファリングのオンオフを切り替えられないから不可
2023/01/07(土) 00:31:00.42ID:xLvAB63F0
python -uc 'import sys; sys.stdout.writelines((print(x) or x.upper()) for x in sys.stdin)'

これだと行バッファ不可避だからsys.stdin.read(n)で書かんとか
2023/01/07(土) 00:38:08.36ID:xLvAB63F0
多用するならPerlの-pe/-ne相当になるモジュール用意してフィルタだけ書くスタイル
2023/01/07(土) 00:49:55.38ID:lVhOhIz00
M1 Macでfor文を勉強中なんだけど、

names = ['A', 'B', 'C']
for name in names: print(name +'さん')

これをターミナルで実行しても

「・・・」

と表示されるだけで何の反応もない
M1だから、でしょうか。

あとでWindowsでも試してみる
2023/01/07(土) 01:24:54.56ID:4BI3EQQz0
もっかいエンター押せ
2023/01/07(土) 02:01:54.97ID:GmV1yQnL0
ここに書けるなら、Sandbox にも書けるだろう
2023/01/07(土) 02:09:26.56ID:WGkjV5JA0
>>463
釣りはやめろ
467デフォルトの名無しさん (ワッチョイ 1176-1Rsz)
垢版 |
2023/01/07(土) 03:23:48.08ID:odL5Q3k30
>>462
ああそうか 単にフィルタ部だけ受け取ってexecしてしまえば楽だったか
ありがとう
2023/01/07(土) 04:05:10.65ID:79bETjVCM
特定のフォルダを5分おきに監視して、新たに作成されたファイル名を
SQLiteテーブルに登録していく…的なことをやりたい
単なるループで作るとCPU食って固まってしまうので非同期処理をする
必要があると思うんだけど、テンプレみたいなコードどっかにないですかね
asyncとかドキュメント見ても難しくて理解できないので…
2023/01/07(土) 06:05:45.34ID:dqXrk0CZa
cron
470デフォルトの名無しさん (ワッチョイ ab33-veFr)
垢版 |
2023/01/07(土) 07:43:49.02ID:amZltHqL0
なんでるーぷだとcpu食って固まるの?
2023/01/07(土) 07:44:51.16ID:GR5Mm1St0
cpuに食えるだけ食わせるからだよ
2023/01/07(土) 07:53:52.52ID:dqXrk0CZa
Ruby で、1行ずつ読み込んで処理する、1-liner のフィルタは、

ls | ruby -lne 'print $_.upcase'

ARGF を1行ずつ読み込んで、変数$_ に格納する。
ARGF とは、複数のファイルや標準入力を連結して、1つにした仮想ファイル

ruby -lne 'print $_.upcase' a.txt b.txt
2023/01/07(土) 08:28:19.88ID:GENmLOTj0
>>468
https://pypi.org/project/watchdog/
とか
libev/libeventのバインディングなら他もたくさん
2023/01/07(土) 09:51:45.92ID:E1WCWcUY0
>>468
それ非同期処理は関係なくね?
というかIOを非同期にしてスレッドが待たなくなったらよけいにCPUを回すことになると思うが。
2023/01/07(土) 09:59:59.53ID:QtB2nOqPM
sleep挟むだけじゃない?
476デフォルトの名無しさん (ワッチョイ 5b5c-FOYR)
垢版 |
2023/01/07(土) 10:00:12.84ID:rucp1FJJ0
inotify
2023/01/07(土) 11:05:11.37ID:11syE16N0
一瞬でもいいからsleepを入れておけばOSがいい感じにやってくれる
それせずに固まってしまうフリーソフト多すぎ
例えば、JaneStyle
2023/01/07(土) 11:10:22.66ID:79bETjVCM
>>474
うーん実は非同期という概念すら理解できていないかも知れない
>>468のループを裏で動かしつつWindowsやアプリも普通に操作したいって話です

>>477
マジっすか
sleepで5分待たせるだけでいいなら簡単だからやってみます
2023/01/07(土) 11:53:06.20ID:iltXkPxC0
固まってしまうのは
メインスレッドで重い処理したり止めたりして
メッセージを処理しないからかな
2023/01/07(土) 12:02:42.84ID:11syE16N0
単純にメモリ内で巨大な配列の計算をしたいとかで、
人間が判るほど時間のかかる処理をする時に、
ループの中に微小なsleepを入れておくと、そのタイミングでOSがタスク切り替えできるので、
他のアプリに影響せずに処理できる

win10になってタスクをより奪いやすくなってる気がする
2023/01/07(土) 12:07:18.18ID:UFnoM8jpd
sleepってその間メッセージの処理できるの?
482デフォルトの名無しさん (ブーイモ MM4b-mEot)
垢版 |
2023/01/07(土) 12:12:22.31ID:VzD178C+M
sleepしたスレッドは他の処理はできないけど
他のスレッド・プロセスは関係ない
2023/01/07(土) 12:54:52.65ID:QtB2nOqPM
sleep(1)を300回回して終了フラグチェックとかにしても良い
484デフォルトの名無しさん (ワッチョイ e197-Kn2b)
垢版 |
2023/01/07(土) 18:13:33.04ID:Ht7NUaQk0
>>468
5分おきと言わず、ファイルシステム変更イベントを受け取るイベントドリブンにした方がいいと思う
OSによって必要なコマンドやAPIは違うと思うけど
485デフォルトの名無しさん (ブーイモ MMab-JgFh)
垢版 |
2023/01/07(土) 18:19:06.23ID:5L5/eVw7M
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
2023/01/07(土) 18:22:53.32ID:+xj7TcwR0
Windows限定でいいなら、.netのAPI
FileSystemWatcherが使えると思う
487デフォルトの名無しさん (ブーイモ MM4b-mEot)
垢版 |
2023/01/07(土) 21:31:02.61ID:J6NwEuodM
>>473が書いてるwatchdogが定番ツールで
OSごとの差異を吸収してくれるよ

Linuxならinotify
WindowsならReadDirectoryChangesW(FileSystemWatcherがラップしてるWin32API)
macOSならFSEvent
2023/01/07(土) 21:42:10.72ID:11syE16N0
watchdogと言われると、モニタするんじゃなくて、止まってたらリセットするイメージが強いけど
489デフォルトの名無しさん (ワッチョイ 112c-aLII)
垢版 |
2023/01/08(日) 00:08:32.18ID:GLDV6Cyi0
常駐フォルダ監視、なにかあったらどうにかする
処理はもう脳死でwatchdog一択というくらい定番
2023/01/08(日) 00:17:02.60ID:PbsTDkd50
どう実装してもいいけど
増えて消えたとかの一瞬も捉えたいならイベントドリブンで監視する必要がある
2023/01/08(日) 00:33:09.12ID:QuJ5Wt8K0
>>480
> ループの中に微小なsleepを入れておくと、そのタイミングでOSがタスク切り替えできるので、
いつの時代の人なんだよw
他のアプリに影響したくないなら優先度下げろよ...
2023/01/08(日) 00:34:59.79ID:QuJ5Wt8K0
>>488
組込屋さんかな?
2023/01/08(日) 01:19:18.86ID:nr72jIvE0
watchdogなんて便利なのあるのか・・・
2023/01/08(日) 04:46:18.93ID:mDwtjJAva
5分sleep すると、プロセスを殺せない・生き続けるから、
その分だけ、メモリなどのリソースが使えなくなるので損

cron みたいに、その時だけ起動して、
処理が終わったら、プロセスを終了するのが良い

それかRuby on Rails, npm/yarn などのagile 開発でよく使う、webpack-dev-server みたいに、
フォルダをwatch して、ファイルが変更されたら、rebuild するとか
2023/01/08(日) 13:39:55.68ID:LG3PUlqC0
>>491
優先順位下げるとしても無限ループにsleepを入れない実装は時代とは無関係かな
2023/01/08(日) 13:50:26.68ID:QuJ5Wt8K0
>>495
何のために入れる必要あるのか説明してみ
2023/01/08(日) 14:06:13.97ID:oudk2sNr
インスタンスメソッドをインスタンスメソッドの中で定義したいんだけどみんなどうやってるの
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()
2023/01/08(日) 14:13:05.44ID:ZWf/GgJ8d
VBで言うループ内のDoEvents()だよ
OSのメッセージへの応答が止まり続けると応答なしになる
だからメッセージに応答させるためにsleepを入れる
CPUの優先度を上げ下げしようがメッセージへの応答は各アプリケーションに依存する
だからループの時間が長くなればどのみちメッセージの処理ができず応答なしになる
2023/01/08(日) 14:16:48.76ID:LG3PUlqC0
>>496
何が言いたいのか知らんけど、CPU張り付きによるキーボード等の割り込みが阻害されるためだろう
古いとか言われて短い無限ループにsleep入れないプログラマいたら驚くかな
一人でプログラミングしてるならまだしも、第三者が使う可能性がある状況でその実装は恐い
2023/01/08(日) 14:35:43.73ID:QuJ5Wt8K0
>>498
メッセージループの話はまた別の話

>>499
プリエンプティブマルチタスク でググってこいよ...
未だにこんなロートルがいることに驚くわ
2023/01/08(日) 14:48:33.70ID:zCdq2/Tv0
1C/1TなCPUの時代に生きているのだろう
2023/01/08(日) 15:25:04.09ID:Aip5FLUqd
>>500
優先度変更でメッセージループをどうにかできるの?
2023/01/08(日) 15:41:35.19ID:QuJ5Wt8K0
>>502
メッセージループをどうにかできるなんて書いてないんだけど、頭大丈夫?
2023/01/08(日) 15:43:30.25ID:jwImvjcq0
>>501-502
見当外れだしsleepのひとも含め連休は大量ですね
2023/01/08(日) 15:47:25.43ID:NFnoEEjj0
実際問題として、処理奪われて操作に支障が出るソフトは普通にある
win10ではそういう問題はOSでは解決できない
2023/01/08(日) 15:47:46.10ID:1vx7bEHHM
どれだけググってもビジュアルスタジオにtweepyインストールできなくて
だれかおしえろください

ターミナルでpip打ち込むと認識されないとエラーで弾かれる
2023/01/08(日) 15:54:10.06ID:kQpMGlzxd
>>503
なら優先度だけあげても他の対策がいることになるだろ?
解決しないじゃん
2023/01/08(日) 15:56:00.30ID:hARfQwsA0
今時の他コア高性能CPUであれば100%張り付きで懸念するべきのはバッテリー残量と発熱くらいで、
一瞬でも100%未満になるコアが1つあればOSのタスクスイッチングには影響はほとんどないよ
GetMessage,PeekMessage,DispatchMessageをブロックしないことだけ気をつければ、あとは思う存分CPUをぶん回してもいいよ
100.00%まできっちり回せ
2023/01/08(日) 15:57:22.58ID:PbsTDkd50
>>506
pip3
2023/01/08(日) 15:59:45.54ID:QuJ5Wt8K0
>>505
それはそのソフトのつくりがタコなだけ

>>507
VBのDoEventの話なんてしてないから他所でやってくれ
2023/01/08(日) 16:01:44.72ID:kQpMGlzxd
>>503
>>491
優先度でメッセージループをどうにもできない以上、他のアプリに出る影響は排除できないじゃん
影響出したくないからループ中にsleepって話の中で優先度変えろって話出したの誰だよw
2023/01/08(日) 16:05:00.60ID:piRgm1WA0
つまり多コアCPUであっても、各プロセスは一つだけしか使ってはいけない
2023/01/08(日) 16:05:59.38ID:kQpMGlzxd
>>510
タコなソフトにならない解決策の話なのに優先度なんて頓珍漢なこと言い続けてる自覚ねーのな
DoEvents()も書けない、コピペすらできないみたいだし、
何のためのsleepか説明されても理解できそうにないな
2023/01/08(日) 16:10:11.55ID:96z64ttd0
ここをこうしたら、こういう時にこうなるよ
って話をしないと、伝わらないと思います
2023/01/08(日) 16:11:53.62ID:piRgm1WA0
伝えるというよりからかっているのだろう
2023/01/08(日) 16:14:15.67ID:NFnoEEjj0
ID:QuJ5Wt8K0 で抽出すると、ほんの一言二言書いて反応をうかがってるだけなんだよな
多分何も判ってなくて、総叩き状態を楽しんでる
517デフォルトの名無しさん (ワッチョイ 1176-1Rsz)
垢版 |
2023/01/08(日) 16:49:42.13ID:+2bxRzY60
>>497
インスタンスメソッドの中でインスタンスメソッドを定義したとして、使う側はどうしたいんだよ

h.hoge() を読んだら h.new_method() を使えるようになる仕様でいいのか?
2023/01/08(日) 17:48:05.51ID:Ghk4Hd5x0
DoEvents、自アプリのメッセージを1つ実行する
sleep、CPUリソースを一時的に返却する(自アプリのメッセージは処理できない)

sleepしたところで自アプリのメッセージを処理しないと自アプリは固まってしまう
2023/01/08(日) 18:07:15.82ID:QuJ5Wt8K0
>>511
メッセージループを処理するスレッド(たいていメインスレッド)と >>480 が言うような重い処理のスレッド(ワーカースレッド)を分ければいいだけ
ってかまともなGUIアプリなら半ば常識だぞ
当たり前だけどワーカースレッドにsleepなんて要らん

>>513
> 何のためのsleepか説明されても理解できそうにないな
そう言うのは説明してから言わないとね

>>516
> 多分何も判ってなくて、総叩き状態を楽しんでる
分かってないのはお前な
ちゃんと プリエンプティブマルチタスク でググれって書いてあるだろ?
ググっても理解出来なかったのか?w
2023/01/08(日) 18:11:48.35ID:QuJ5Wt8K0
>>518
DoEventsなんて言ってる奴はVBAあたりしか使えないんだと思う
DoEventsとsleepの違いすら理解できてないんだろうな
2023/01/08(日) 18:13:12.88ID:piRgm1WA0
ググれと言わずに、ここで簡潔に説明することが求められています
そんなに難しいことじゃないでしょうに
2023/01/08(日) 18:22:37.54ID:2bjH6Dg5d
>>519
優先度の話はどこがどう関係してくるの?
2023/01/08(日) 19:23:01.26ID:QuJ5Wt8K0
>>521
難しくないならあんたが説明してもいいんだよ?w

>>522
話の流れも読めないのか?
>>491 > 他のアプリに影響したくないなら優先度下げろよ...
2023/01/08(日) 19:28:01.59ID:piRgm1WA0
オレは説明を聞きたいと思っている
2023/01/08(日) 19:30:28.58ID:NFnoEEjj0
ソフトのつくりがタコとか書いちゃった時点でもう詰んでるんだよ
どう言い繕っても無駄なので諦めてID変わるのを待ってろ
2023/01/08(日) 19:53:03.23ID:QuJ5Wt8K0
>>524
だから プリエンプティブマルチタスク でググればいいだろ
まああんたはわかってるだろうけど簡単に言えばタスクの切り替えはタイマーでやってるからsleepなんか入れなくてもタスクは切り替わる

> ループの中に微小なsleepを入れておくと、そのタイミングでOSがタスク切り替えできるので、
なんて言うのはWindows 3.1とかMac OS 9時代のノウハウや

>>525
タコ乙w
2023/01/08(日) 20:28:28.98ID:NFnoEEjj0
現にwin10でも上手く行っとらんだろ
事実から目を反らすなよw
2023/01/08(日) 21:06:12.49ID:oudk2sNr
>>517
例えば犬の基本情報を取得したい時に
Symbols={"INU":{"symbol":"犬","voice":"ワン"}}
print(Symbols["INU"])
じゃなくて
print(Symbols.INU)
みたいな参照の仕方がしたかった
かつ返ってくるのはインスタンス、みたいな

クラスをインスタンス化するときってSymbols()でカッコついちゃうのでそれ無くしたいというか・・
なので単純に
https://ideone.com/QQs1cM
てやってみたけどinu_action,neko_actionのとこが見た目がしっくりこなくて
あれから調べてみたらやりたいのは内部クラスだったかもしれないのでそれで書いてみたら
https://ideone.com/E7c3gz
こうなって、しっくりきたものの使い方合ってるのかがわからない
2023/01/08(日) 21:15:22.42ID:Ghk4Hd5x0
>>526
Windows3.1はシングルタスクだよね
sleepしても他アプリに処理が移らなそう
処理時間が無駄に長引くだけ

昔過ぎて分からない
間違ってるかも
2023/01/08(日) 21:23:02.60ID:QuJ5Wt8K0
>>527
具体的に上手くいってないと言うソフト名出してみ
2023/01/08(日) 21:27:28.97ID:QuJ5Wt8K0
>>529
Windows 3.1 は協調型マルチタスク(=ノンプリエンティティブマルチタスク)
てかマジでググれ
https://www.sophia-it.com/content/%E5%8D%94%E8%AA%BF%E7%9A%84%E3%83%9E%E3%83%AB%E3%83%81%E3%82%BF%E3%82%B9%E3%82%AF
2023/01/08(日) 21:46:05.89ID:Ghk4Hd5x0
>>531
あ、いやすまん
もっと基本的なところで勘違いしてた
Windows3.1ってメインのウィンドウ以外動かないかと思ってた
2023/01/08(日) 22:05:28.27ID:piRgm1WA0
3.1のデモ展示では時計アプリを複数起動して
「ほら、マルチタスクですよ~」ってやってた
2023/01/08(日) 22:20:53.05ID:Ghk4Hd5x0
>>533
なるほどサンクス!
完全に勘違いしてた
535デフォルトの名無しさん (スップ Sdb3-1Rsz)
垢版 |
2023/01/09(月) 09:18:26.66ID:hshZ5aP/d
>>528
直接attrにアクセスするような書き方するなら__getattribute__を改造するのが手っ取り早そう
https://wandbox.org/permlink/8kyCCbavwFRBlV3R

直接dictを継承したSymbolsクラス作った方が楽そうと
後になって気づいたが
2023/01/09(月) 11:26:49.00ID:UbXmK8tM0
プリエンプティブに対応するパッチを書いたことあるがロートルとか言われたのがショックだわ
モバイル全盛のこの時代にCPU100%の張り付きプログラムを推奨することの視野の狭さに驚く
何度も言うがsleepを入れるのは時代とか関係なくそれはアーキテクチャと利用ケースによるものだ
組み込み分野では無限ループでトリガ待ちするのに無限ループで止めるのなんて20年以上前からやってる
537デフォルトの名無しさん (ワッチョイ a109-DWwd)
垢版 |
2023/01/09(月) 12:18:22.83ID:Cob0L2LA0
>>536
逆にuComとかPICだとメインはfor(;;)で最低優先度の処理をsleepなしでゆるゆる回して、
ほとんどの処理を割り込みで動かすからsleepの出番はなくなっちゃうよね
2023/01/09(月) 12:18:48.74ID:Cob0L2LA0
sage忘れすまん
2023/01/09(月) 12:30:53.45ID:r84aUeSC0
動かす環境やOSによっても色々やり方は変わると思います
2023/01/09(月) 12:35:24.04ID:WbC15m7a0
プリエンプティブマルチタスクという言葉が存在する
というところを出発点にしてるから、万能だと思っちゃってるんだろうな
アプリ同士でならうまく行くんだろうけど、
プリエンプティブの仕組みを作ってるOSそのものとは競合する
OSもアプリも一つのコアの上で動くプログラムでしかない
2023/01/09(月) 12:38:36.89ID:fJBcDyWo0
最初のそんな負荷でもない一定周期監視の話から固まる→CPU負荷とかUIブロックの話とかになってるから
UIブロッキングを差し置いてsleepだけ話題にされるともにょるのはわからんでもない
2023/01/09(月) 12:47:08.01ID:P8ctm/0T0
>>541
優先度下げれば解決するって誰かが言ってた
2023/01/09(月) 12:51:26.43ID:r84aUeSC0
各プロセスが協調的に動いているなら、優先度は意味があるかも知れないですね
2023/01/09(月) 12:54:20.02ID:fJBcDyWo0
>>542
流れ見ると負荷の話に対する優先度だからUIスレッドが差し置かれているので結局もにょる
2023/01/09(月) 12:59:35.44ID:r84aUeSC0
処理するにあたり、CPU性能は十分にあるんですよね?
2023/01/09(月) 13:13:54.26ID:hV+nJOyS
>>535
なるほど
これならもし犬にマルチーズとかダックスフンドを追加したくなったとき
犬や猫鶏をinu.py,neko.py,tori.pyとかにそれぞれ分離しても管理しやすそう
ありがとう
2023/01/09(月) 13:30:24.28ID:bS50m3IM0
組み込み向けとかのOSだといまだにそういうアーキテクチャなんじゃないの?
確かタイマー割り込みしたりとかいろいろ面倒だった気がするし
現代的なOSでloopにsleep入れるとか無意味
2023/01/09(月) 13:43:58.36ID:hV+nJOyS
せっかくなのでGPT3に聞いてdictを継承して属性参照できるクラスを書いてみた
https://ideone.com/6msm1f

聞いたのは、
「pythonでdictを継承したクラスの例を書いて」のみなんだが、
わざわざ聞くからには属性参照もしたいってことだろ?
と言わんばかりにその部分も補完したコード出してきてちょっとびびった・・
2023/01/09(月) 15:27:13.21ID:r84aUeSC0
Linuxを含めてUnix系OSならselect関数が使える
ソケット含めてI/Oを監視しプロセスに通知してくれる
Pythonでも、もちろん使える
2023/01/09(月) 17:16:47.85ID:9i8F7U9Np
AIって結局翻訳機みたいなもんで翻訳機に最適化した文章作らないとミスるから仕事で使えないよな
551デフォルトの名無しさん (オッペケ Sr4d-4Wvq)
垢版 |
2023/01/09(月) 17:35:48.91ID:m0H/MGw3r
>>550
プログラミングよりそのスキル身につける方が早い時代は来るかも
2023/01/09(月) 18:01:59.77ID:+jLIXnEf0
https://noauto-nolife.com/post/django-ajax-long-polling/
のcontent.html内{% url 'bbs:single' topic.id %}
って何を指してるかわかりますか?
views.pyかurls.pyのurlpatternsの記載のどこかが原因だとは思うんですけど。
2023/01/09(月) 18:03:12.22ID:+jLIXnEf0
>>552です
NoReverseMatchエラーになります。
singleなんてどこにも記載してないのでそれはそうなんでしょうが
2023/01/09(月) 18:29:36.59
>>552
https://i.imgur.com/iKoZbam.png
2023/01/09(月) 18:38:19.71ID:WbC15m7a0
便利すぎて怖い
2023/01/09(月) 19:33:02.64ID:bS50m3IM0
その意味を理解できないと無意味だよ?
2023/01/09(月) 20:38:05.70ID:YumOwVoa0
>>536
> 何度も言うがsleepを入れるのは時代とか関係なくそれはアーキテクチャと利用ケースによるものだ
だからなんのためにsleep入れてるんだよ
今でもWin3.1とか組込でノンプリエンティティブOS使ってるから時代に関係ないとでも言うのか?

> 組み込み分野では無限ループでトリガ待ちするのに無限ループで止めるのなんて20年以上前からやってる
話しそらそうと必死すぎw
2023/01/09(月) 20:39:49.86ID:YumOwVoa0
>>541
だからUIと重い処理はスレッド分けろって書いてあるだろ
プアな環境でCPUがアップアップならワーカースレッドの優先度下げろ
2023/01/09(月) 20:41:46.54ID:YumOwVoa0
>>540
カーネルスレッドの仕組みも知らないなら黙ってた方がいいぞ...
2023/01/09(月) 21:19:53.52ID:VzKaZmuqd
スレッドを分けろ、を起点にせずに優先度の話から入った理由が気になる
2023/01/09(月) 21:38:55.07ID:rm/gRoLA0
>>560
優先度の話はこれが最初か>>491
何もおかしくない気がするが

スレッド分けたところで優先度が高かったら、他のアプリがカクカクになるぞ
2023/01/09(月) 21:39:13.38ID:fJBcDyWo0
確かにUIスレッドとワーカーを分ければUIが固まることは無い
実際のところ同一優先度でもタイムスライスしてくれるのでUIはなんとか動くし、優先度下げればさらによく動く

ただ結局複数プロセスで動くOSである以上処理負荷をどこまでかけるかっていうのはそのプロセスのマナーになる
他プロセスがより低い優先度のワーカー動かしてるとそっちがあからさまに動かなくなるのでsleep入れるのは間違ってはいない
通常よりちょっと下げるだけであればUIは普通に動くが他プロセスの通信や動画がガクガクになったりする
2023/01/09(月) 21:52:50.87ID:YumOwVoa0
>>560
おれの最初のレスは >>480 に対するレスだから
2023/01/09(月) 21:59:14.36ID:YumOwVoa0
>>562
> 他プロセスがより低い優先度のワーカー動かしてるとそっちがあからさまに動かなくなるのでsleep入れるのは間違ってはいない
その低い優先度のワーカースレッドがないと単に無駄なsleepしてるだけのタコソフトになるわけだがw
普通により低い優先度にしなよ...

> 通常よりちょっと下げるだけであればUIは普通に動くが他プロセスの通信や動画がガクガクになったりする
なんで通信や動画再生の優先度を下げるんだよ...
2023/01/09(月) 21:59:59.63ID:Qq7b1M5F0
RTOSのように優先度が絶対的なら話は単純だけど
デスクトップOSは忖度があるからsleepいれるとか場当たり的な作法を
正解と勘違いするのもわからんでもないかな(ないけど)
2023/01/09(月) 22:02:02.62ID:fJBcDyWo0
>>564
優先度を決めてぶん回すって言うのは他の優先度低いやつを気にしないって宣言でもある

> なんで通信や動画再生の優先度を下げるんだよ...
おっとごめん。下げるっていうのは自プロセスのワーカの話ね。影響を受けるほうはchromeブラウザの動画再生とかって話。
2023/01/09(月) 22:21:26.63ID:YumOwVoa0
>>566
> 優先度を決めてぶん回すって言うのは他の優先度低いやつを気にしないって宣言でもある
下げてる優先度よりさらに低い優先度のタスクを気にする必要あるの?
そう言うのはCPUが空いてるなら動けばいいっていうタスクじゃないの?
あと大抵のデスクトップOSだと同一優先度ならラウンドロビンになるから全く動かなくなるとかないし

> おっとごめん。下げるっていうのは自プロセスのワーカの話ね。影響を受けるほうはchromeブラウザの動画再生とかって話。
ワーカー下げてるのに動画再生がカクカクするならCPU以外のリソースの影響でしょ
それってsleep入れても改善しなくね?
2023/01/09(月) 22:44:46.53ID:UbXmK8tM0
元の話に戻すと、たかだかファイル更新をウォッチするのにCPUが100%に張り付くプログラムが正解だって言われて納得できる人は少ないだろう
OSの深いところまで知らなくても利用できるようにwatchdogなどのパッケージが使うのが正解なんだと思うよ
2023/01/09(月) 23:09:50.64ID:YumOwVoa0
元の話は

> 特定のフォルダを5分おきに監視して、新たに作成されたファイル名を
SQLiteテーブルに登録していく…的なことをやりたい

なのでsleepで5分待って処理するなり(まあ処理時間分ずれるから5分毎に処理したいならそれなりの処置が要るけど)ファイル監視APIなりwatchdogみたいなライブラリ使うなりすればいいだけの話でCPU100%なんて話は出てない

CPU 100%の話は
> 単純にメモリ内で巨大な配列の計算をしたいとかで、
> 人間が判るほど時間のかかる処理をする時に、
> ループの中に微小なsleepを入れておくと、そのタイミングでOSがタスク切り替えできるので、
> 他のアプリに影響せずに処理できる
とか昔のノウハウでドヤった老害がいただけの話
2023/01/09(月) 23:45:15.82ID:r84aUeSC0
新たに作られたファイルを記録するだけなら、数十分間隔でチェックしても間に合いそう
2023/01/09(月) 23:48:51.92ID:bS50m3IM0
話が逸れまくったなw
本当おじさんは関係ない話で荒らすのが好きだな
2023/01/10(火) 00:12:28.63ID:YUW/czN/0
Python の話でもないし
プログラム板の皆さんに裁定してもらえ
2023/01/10(火) 00:32:37.03ID:pwe9NrJo0
ここの話題にしたいなら、せめてPythonのコードに落とすところ迄やって欲しい
574デフォルトの名無しさん (ブーイモ MM4b-mEot)
垢版 |
2023/01/10(火) 00:56:07.09ID:7fmBGHmvM
pythonでスレッドの優先度を指定できる?
575デフォルトの名無しさん (ブーイモ MM4b-mEot)
垢版 |
2023/01/10(火) 00:57:08.39ID:7fmBGHmvM
threadingモジュールにはthere are no prioritiesって書かれてるんだが
2023/01/10(火) 01:18:40.47ID:BEmjqJ7z0
>>574
psutilでいける
Windowsでも出来た
2023/01/10(火) 01:30:42.71ID:tyEc5PEMa
DoEvent しないと何も動かない。
基本的に、プログレスバーで処理の進捗状況も表示できない。
処理にCPU を使われるから、描画できない

スクレイピングでも、10秒ぐらいsleep しないと、ajax のページの内容が取れない。
他のプロセスに、CPUを与えないと通信できない
2023/01/10(火) 02:52:37.03ID:BEmjqJ7z0
あぁ、プロセスじゃなくてスレッドか
公式のウェブサイトにはないと優先度はないと書かれているら自前で実装かね
579デフォルトの名無しさん (ブーイモ MM35-JgFh)
垢版 |
2023/01/10(火) 04:26:53.04ID:bCHQzZKpM
>>485
> 30代Pythonクソチョン男は強姦魔の犯罪者!
> あなたの近くにいます!
> 父母と祖父母の戸籍謄本を提出させましょう!

ホントそれ
2023/01/10(火) 06:53:53.27ID:1UMzF0dp0
>>574
やったことはないけど例えばWindowsならnative_idでスレッドid取得してctypes経由でSetThreadPriority呼ぶとかかなぁ
2023/01/10(火) 07:22:16.21ID:+/q9pWWH0
pythonでJRAスクレーピングしてるが、激アクセス(数万ページ連続とか)すると怒られるかな
2023/01/10(火) 08:45:04.89ID:govR9vZh0
https://www.jra.go.jp/robots.txt

User-agent: *
Disallow:
2023/01/10(火) 09:59:25.25ID:BF2exWNa0
有償でデータ売ってるからそれ買えよ
2023/01/10(火) 10:08:23.70ID:wQS7zJvf0
たぶん刻々と変わるオッズとかを取得してるんじゃないか?
2023/01/10(火) 10:35:47.62ID:KidLhlDB0
今住んでるとこ岡崎なんだよなー
だからスクレイピングすると予告なしに逮捕される
2023/01/10(火) 10:46:19.04ID:BF2exWNa0
静的なページなら一旦ファイルにダウンロードしてから
そのファイルをスクレイピングすれば問題なし
2023/01/10(火) 13:37:01.45ID:vQglWnVB0
これまで自作プログラムの設定情報は、iniファイルに出力していたのですが、
これからはレジストリで管理したいと思っています。
iniファイルだと増えすぎてしまうので、、、

新たなキーをどこかに作り管理たいのですが、レジストリのどこに作れば良いとかルールがあれば教えて下さい。
588デフォルトの名無しさん (ワッチョイ 0101-Or7w)
垢版 |
2023/01/10(火) 14:10:11.28ID:DW4759/80
>>587
このスレじゃ無理
こっちのスレ↓で質問してみよう。親切な達人プログラマーが懇切丁寧に教えてくれるよ

Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/
2023/01/10(火) 16:14:20.05ID:wABcpDEfd
watchdogを使いたいだけなのに、環境構築が出来ない。
2023/01/10(火) 20:19:07.57ID:BEmjqJ7z0
winregモジュールの使い方ならまだしもレジストリの使い方は流石にここではないぞ
591デフォルトの名無しさん (ブーイモ MM35-mEot)
垢版 |
2023/01/10(火) 21:08:28.15ID:mG8UnKKfM
レジストリよりiniのほうが遥かにいいんじゃね?と思うのは俺だけだろうか
2023/01/10(火) 22:01:11.76ID:KidLhlDB0
iniに対するレジストリのメリットは、複数ユーザで使っても混ざらない点だな
2023/01/10(火) 22:03:17.69ID:pwe9NrJo0
それはiniをどこに置くかで決められます
2023/01/10(火) 22:05:07.71ID:AhhHg4Rw0
その辺の話題はスレチだな
2023/01/10(火) 22:13:42.57ID:iHwuxQHZ0
boost経由で呼べば良いじゃん
2023/01/11(水) 10:15:37.51ID:WNWSBuGvd
https://101010.fun/programming/python-watchdog-event.html
ここの、pipを使ってWatchdogライブラリをインストールします。
これがわからない。
2023/01/11(水) 10:21:09.30ID:sSLpCElv0
(゚Д゚)ェェエエ工工工
598デフォルトの名無しさん (スップ Sdb3-1Rsz)
垢版 |
2023/01/11(水) 12:09:27.84ID:gbRv1Z7ld
shellがわかってないやつかな?

linux環境ならCtrl-Alt-Tで出てくる黒い画面でpip3 install <モジュール名> とすればいい

VisualStudio環境は知らん
2023/01/11(水) 12:36:58.75ID:pHEYs8Fp0
>linux環境ならCtrl-Alt-Tで出てくる黒い画面で
こういう説明なんでできちゃうんだろうか
2023/01/11(水) 13:03:08.65ID:iHuPH8qf0
バカだから

今は pip install hoge じゃなくて python -m pip hoge のほうがいいんじゃなかったっけ
2023/01/11(水) 13:04:05.15ID:gC4z+P/fa
釣られるなよ
いつものやつだ
2023/01/11(水) 14:53:19.92ID:PaKS96+/0
>>600
pip install hoge と
python -m pip hoge は同じじゃないのか。
2023/01/11(水) 15:35:31.95ID:/f97NRPi0
pipってなんかよく判らん
windowsやandroidでも、そんな簡単に付けたり外したりできないのは経験済みなので、
依存関係とか複雑なのだろう
2023/01/11(水) 15:51:02.84ID:iHuPH8qf0
やっぱり python -m pip hoge のほうが推奨みたいだね
参考URL貼ろうとしたらエラーになったから "pip install" vs "python -m pip" でぐぐってくれ
605デフォルトの名無しさん (ワッチョイ 6146-5Q5j)
垢版 |
2023/01/11(水) 17:48:54.93ID:PaKS96+/0
>>604
ググった。これ?
daeudaeu.com/python-pip-difference

うちがまさにこうで、
/usr/bin/pythonは2.xで
/usr/bin/pipは3.xだ。
が、ライブラリの導入先は予め承知していないと、そりゃ色んな意味で拙いだろ...
2023/01/11(水) 18:31:10.79ID:hDaja8juM
うっといわ
2023/01/11(水) 19:00:49.39ID:A5R9Myj10
pip3をつかえば混乱は起きないと思われる
2023/01/11(水) 19:07:57.81ID:QeEETBRE0
環境変数までフルマネージドになるっていうのがコツな
609デフォルトの名無しさん (ワッチョイ ab33-DWwd)
垢版 |
2023/01/11(水) 19:14:51.41ID:koilfHaW0
venvがおすすめです
2023/01/11(水) 20:24:47.06ID:iHuPH8qf0
>>605
まとめの部分だけ読んだけど大体あってそう
Python 関連の調べものする時は日本語サイトは除外したほうがいい気はする (変なサイト多くない?)

venv を使う時も ./.venv/bin/python -m pip hoge で直接インストールすることができるっぽい
611デフォルトの名無しさん (ワッチョイ ab33-DWwd)
垢版 |
2023/01/11(水) 20:32:03.41ID:koilfHaW0
Pythonは入ってるけどpipが入ってない環境で、自分でビルドして入れるとそうなるのかな
612デフォルトの名無しさん (ワッチョイ ab33-DWwd)
垢版 |
2023/01/11(水) 20:38:00.37ID:koilfHaW0
venv有効にしたらvenv内のpythonとpip使われるから、普通にpip installすればいい
2023/01/11(水) 21:22:19.92ID:FiONWEgu0
>>610
英語も似たようなもんやで
614デフォルトの名無しさん (ワッチョイ e197-Kn2b)
垢版 |
2023/01/12(木) 00:24:14.84ID:AWG/ChaM0
pipコマンドを今実行しているpythonコマンドとは別に入れた場合(pipはディストロのパッケージで入れたけどpythonはpyenv経由みたいな)は、
pythonコマンドとpipコマンドの整合性がとれていない場合があるからpython -m pipの方が安心
Dockerとか使ってるならそういう心配はしないでRUN pipで大丈夫
615デフォルトの名無しさん (ワッチョイ 11ad-tb1I)
垢版 |
2023/01/12(木) 01:05:00.06ID:lC/nTIdv0
pythonもあれなんで py に
py -m pip hoge にしてる
2023/01/12(木) 01:45:21.55ID:eOyGEuW0a
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 も必須
617デフォルトの名無しさん (ブーイモ MM3d-JgFh)
垢版 |
2023/01/12(木) 12:42:21.95ID:OnGb0X+0M
>>485
> 30代Pythonクソチョン男は強姦魔の犯罪者!
> あなたの近くにいます!
> 父母と祖父母の戸籍謄本を提出させましょう!

ホントそれw
2023/01/12(木) 18:50:17.66ID:WuBM7bGP0
azureのが給与高いよ
資格保有者も圧倒的に少ない
2023/01/12(木) 18:50:38.99ID:WuBM7bGP0
ちなみにソースはない
2023/01/12(木) 18:51:02.29ID:WuBM7bGP0
完全に勘
621デフォルトの名無しさん (アウアウエー Sa23-n3t1)
垢版 |
2023/01/12(木) 20:21:00.92ID:VvkZ8RFRa
IDEって何がはやってるんだろう
VScode?spider?
2023/01/12(木) 23:18:40.94ID:Q9b1EyVr0
win10で使ってて、win10としては有効なパスなのに、
pythonから操作しようとすると長すぎてエラーになることがある
もしかすると、pythonではなくsubprocessで呼んでるコマンドかもしれないけど
何かの設定で長さなんか気にしなくできないのかな
2023/01/12(木) 23:26:49.81ID:Kr8Ay9bV0
そのパスとやらを提示しなさい
2023/01/12(木) 23:54:02.53ID:HKg0jfBE0
パスの最大長の制限
learn.microsoft.com/ja-jp/windows/win32/fileio/maximum-file-path-limitation?tabs=registry
2023/01/13(金) 00:09:02.63ID:jY/X4hP5a
検索上位に出てくるnkmkというサイトが本当に邪魔
意図的にページ内リンクを貼らずに閲覧者にスクロールさせたり、文字列検索させようとさせたりするから使いにくくて仕方がない
2023/01/13(金) 00:10:24.95ID:3/krHQqA0
LongPathsEnabledは既に1になっていて、
それで長いパスが有効だけど、longPathAwareがよく判らない
2023/01/13(金) 00:57:47.08ID:C2HsRRRbd
パスを指定するときに\\?\プレフィックスを付ける必要がある
2023/01/13(金) 05:49:38.62ID:pezk+gKQa
何でPython の香具師は、いつもパスに、\\ を使うのだろう?

Ruby では、Windows のパスでも、/ で書けるのに。
File.expand_path( ) でも、\を/に変換できるし

dir_path = "C:/Users/Owner/Documents/**/*"
target_dirs = Dir.glob( dir_path )
629デフォルトの名無しさん (アウアウウー Sa85-DH5p)
垢版 |
2023/01/13(金) 09:50:43.36ID:NX/X2xhta
>>627 はプレフィクスの話をしているのに
>>628 が知ったか過ぎて糞ワロス
2023/01/13(金) 10:20:19.66ID:zJXsWH5P0
病人に触るな
うつるぞ
2023/01/13(金) 10:20:37.84ID:17HPXjEx0
> たとえば、"\\?\D:\非常に長いパス" などです。

狂ってるとしか思えない文法
2023/01/13(金) 12:42:41.48ID:GxyunKrd0
>>628
もう少し勉強した方がいいぞ
raw文字列を使えばエスケープシーケンスを使う必要はない
更にいうとpythonでもスラッシュを区切り文字に使える
あと\\?\プレフィックスはWindowsのルールであってpython起因ではない
こんな短い文章で3つも間違っているのは凄いな
2023/01/13(金) 12:59:28.88ID:LZaujiQfa
>>632
> 更にいうとpythonでもスラッシュを区切り文字に使える
これはNTFSの仕様じゃなかったっけ?
まあどっちにせよWindowsのルールなんだけどね
2023/01/13(金) 13:47:27.39ID:lpVvtWLG0
windowsで生python使ってる時点でアレ
普通は仮想環境なりdockerカマして動かすよ
2023/01/13(金) 14:37:36.44ID:foyyIITL0
Pythonは昔からWindows対応してて
Unixな用途以外でも使われてるのに普通ってどういう
2023/01/13(金) 14:50:20.29ID:17HPXjEx0
長いパスのファイルを操作したい時に、仮想環境からやっても結局困るのでは
2023/01/13(金) 14:57:07.55ID:zir26acq0
>>634
痛々しい
2023/01/13(金) 15:08:30.08ID:lpVvtWLG0
windowsで使うならcondaみたいな環境依存丸ごと面倒見てくれるやつじゃないとすぐぶっ壊れるからな
2023/01/13(金) 15:21:16.75ID:Kg8S+FugM
ワザワザcondaなんか使うヤツ居るのか?
2023/01/13(金) 15:25:45.76ID:C2HsRRRbd
仮想環境からでも実環境でもロングファイルパスは使える
論点ずらしたいだけだから構う必要ない
2023/01/13(金) 15:35:51.40ID:zir26acq0
で、普通ってどういう意味よ?
仮想環境からwinのクリップボード操作やレジストリ操作が出来んのか?
2023/01/13(金) 15:54:30.06ID:zJXsWH5P0
ここは勉強スレであって議論スレではありません
2023/01/13(金) 21:19:57.15ID:IL7+IvE40
環境壊れたことないわ・・・
644デフォルトの名無しさん (ブーイモ MMab-Kn2b)
垢版 |
2023/01/13(金) 21:22:00.33ID:4z9M3olLM
勉強用にはWSL2の方がいいかもしれないけど、実際実用的なプログラムを作ろうとしたらpywin32とか必要なこともあるからねえ
conda使わないと環境が壊れるなんてことはないよ。普通にpoetryとか使えばいいだけの話だし、OSが依存してるPythonがないから、むしろぶっ壊れたってPythonインストールしなおすだけでしょ
LinuxとかでOS依存のPythonが壊れたら多分結構めんどくさいことになるけど。
2023/01/13(金) 22:11:52.30ID:JR5Mge6r0
>>638
無能w
2023/01/13(金) 22:13:51.92ID:lpVvtWLG0
それはアップデートしないだよ
何もしないのに壊れることが普通にある
2023/01/13(金) 23:13:24.72ID:lpVvtWLG0
>>639
むしろconda*しか*使ってない
ちな機械学習分野だから偏りはあるが
2023/01/13(金) 23:36:10.76ID:2SILumHK0
普通にない
メモリかストレージかお前の頭がおかしい
2023/01/13(金) 23:56:31.13ID:q8fVoEuCa
まあ無能の「なにもしてないのに」という言葉ほどあてにならないものはないからな
650デフォルトの名無しさん (ワッチョイ c633-w88e)
垢版 |
2023/01/14(土) 00:23:08.36ID:vxBJh77Y0
公式のPythonと併用せずに、anacondaだけ使うならそれでいいんだよ
デプロイ先やプロジェクト毎に異なる実行環境構築するようなものの為には作られてない
651デフォルトの名無しさん (ワッチョイ c633-w88e)
垢版 |
2023/01/14(土) 00:29:29.98ID:vxBJh77Y0
機械学習できる環境を手っ取り早く構築したいっていうならanaconda進めるのはわかるけど
FlaskでWebアプリ作りたいって人がたまにanaconda使ってたりするのはやばいと思う
2023/01/14(土) 00:34:13.49ID:1MvlYv0N0
ChatGPTに触れてAI?ニューラルネットワーク?を勉強しようと思うんですが何から始めればいいですか
理論は最低限しか勉強したくないです
653デフォルトの名無しさん (ワッチョイ 1d97-I4nj)
垢版 |
2023/01/14(土) 00:42:42.97ID:LmGwAWDD0
>>652
pytorchやtensorflowのチュートリアルでいいと思う
喜べ、理論を学ぶよりがむしゃらになんでもかんでも試す人の方が勝つ世界だ(自分は理論を押さえたいタイプなので負ける)
2023/01/14(土) 00:49:24.87ID:C9wajgvF0
>>652
このスレじゃ無理
こっちのスレ↓で質問してみよう。親切な達人プログラマーが懇切丁寧に教えてくれるよ

Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/
655デフォルトの名無しさん (アウアウエー Sab2-eHNm)
垢版 |
2023/01/14(土) 05:26:40.68ID:0nayz3bja
>>651
か、仮想環境をたくさん作ってるんだょ
2023/01/14(土) 05:50:04.90ID:wkpIHJLy0
まあ実際python環境の構築はいまだに初心者泣かせだ
上にもあったがpipの依存なんかは初心者がハマると抜け出せない
linuxはさらに地獄でpython2とpython3が混雑するのは確定で
さらにanacondaやvenvや各種yumリポジトリ、ソースからのインストール、docker環境などもはやその辺の開発者が扱えるレベルを超えちゃった
2023/01/14(土) 07:53:48.41ID:1MvlYv0N0
>>653
ありがと
pytorchでやってみる
2023/01/14(土) 08:00:46.17ID:aCrKEOPPM
>>656
Windowsに生Python入れてずっとそれ使うのが一番楽で安定する
うちは3.3入れて一切のアップデート・ライブラリ導入禁止にしてる
659デフォルトの名無しさん (ワッチョイ c633-w88e)
垢版 |
2023/01/14(土) 11:29:24.96ID:vxBJh77Y0
3.3てとっくの昔にサポート切れてるだろ
2023/01/14(土) 12:25:35.76ID:oZZKJ2l20
放置しとけ
2023/01/15(日) 01:34:04.26ID:EkruTxxD
現在の時刻から、ローソク足の最新時刻を出力するコードをAIに聞いたらこうなった
https://ideone.com/G6XWNa

なんかもっとスマートに書けないかな
・ローソク足は時計一周割り切れる足しかない(5時間とかだと1時間ずつずれるので基本無い)
・timedeltaの引数の%candle_periodのところはデフォルト値に計算結果が0になるような適当な数値を入れておく
な感じをベースに書き直してみたけど
https://ideone.com/DYlS8s
for u in candle_period:のとこが野暮ったく、そもそも全体的にもっと良い記述があるような
662デフォルトの名無しさん (ワッチョイ 4aad-E1m+)
垢版 |
2023/01/15(日) 11:24:21.13ID:RjKVOkq+0
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
2023/01/15(日) 17:08:43.68ID:Gy6i7OPa0
チンチャこれ
2023/01/15(日) 18:17:08.02ID:svqF8aqF0
>>661
ローソク足と絡めるならpandasでresample()するのが一般的だけども
勉強がてらにということなら以下のようなコードでどうだろうか

https://ideone.com/938gH9
2023/01/15(日) 21:01:09.94ID:EkruTxxD
>>664
なるほど
replaceがあったのか
_daysみたいな表記にも特にこだわる必要なくなったのでそっちのがスッキリしていいな
ありがとう
2023/01/16(月) 13:33:07.55ID:19rG6UMJ0
パイソンチュートリアルにところどころ英語が混ざってるのは本を買わせるため?
2023/01/16(月) 14:12:45.24ID:HxFrHGTf0
原文が更新されてまだ追従してないだけじゃない?
内容が古くなるけどバージョン下げたら日本語になるはず
2023/01/16(月) 23:28:41.70ID:ieLY1UIo0
英語の勉強すればおk
2023/01/17(火) 00:11:36.79ID:mKywsyCg0
ただの独り言だが以前は原著原文読めって言われてもなーと思ってたが糞機械翻訳のドキュメントがあふれるようになってからは原文読むようになったな
2023/01/17(火) 08:49:29.93ID:86vhjnqQ0
今のAIなら原文が間違ってても修正してくれるかもしれん
2023/01/18(水) 00:14:37.02ID:hk0QW4ON0
python環境自体をパッケージングして配布する方法ってあります?
ソースコードだけだと各自のローカルのライブラリのバージョン次第で動かないとかありそうなので、dockerみたいに環境丸ごとやり取りしたいんですが。
2023/01/18(水) 01:07:09.81ID:ZQLfTfm70
>>670
「あなたが本当にやりたいのはA案ではありませんか?
もしあなたが提案するB案を採用すると以下のような
ごく特殊なケースだけをしょりすることになります。
それでよろしいですか?」
673デフォルトの名無しさん (ワッチョイ c633-w88e)
垢版 |
2023/01/18(水) 01:16:21.29ID:O4NvFfr90
>>671
デプロイ先で実行環境を構築したいとかそういう話?
674デフォルトの名無しさん (ワッチョイ c633-w88e)
垢版 |
2023/01/18(水) 01:24:34.07ID:O4NvFfr90
>>671
最初にPythonをインストールしてくださいってできないの?
2023/01/18(水) 06:05:50.40ID:jSahhEMI0
>>671
pyinstallerかな?
2023/01/18(水) 07:46:04.02ID:j8aICGQQ0
依存パッケージのバージョンの話なら requirements.txt 用意することになるんだろうけど、
ユーザーの環境にインストールさせるのがうざいよなぁ。
スクリプト本体とバンドルして配布できればいいのに。
2023/01/18(水) 09:05:48.70ID:/pnBak0/0
ちゃんと判ってる人向けならrequirements.txtで足りるんだろうな
何も判らない人でもダブルクリックするだけで全てインストールされる仕組みは大変そう
2023/01/18(水) 11:48:52.72ID:cgIxykua0
使ったことないけどembeddable pythonは?
2023/01/18(水) 12:32:41.36ID:hYVfYEsja
すみません説明不足だったかも。pythonの開発環境自体を、ライブラリを含めて配布したいのです。
調べたらWinpythonがそれっぽい?
2023/01/18(水) 12:48:14.85ID:liJuFOIB0
ターゲットがLinuxならコンテナ一択やがWinアプリ書きたいん?
681デフォルトの名無しさん (ワッチョイ c633-w88e)
垢版 |
2023/01/18(水) 13:18:57.48ID:O4NvFfr90
>>679
どういう開発環境かもわからんし、pipが使えない理由もわからんけど
実行環境と開発環境をごっちゃにしてるのはわかる
よくわからんからとりあえずやってみたらいいんじゃね
682デフォルトの名無しさん (ワッチョイ 954f-3xOh)
垢版 |
2023/01/18(水) 14:04:46.70ID:s0ETZiMG0
x = 1
y = 2
l = [x, y]

l[x > y] = 1
l[x < y] = 10

先日、このアクセス初めて見たんだけど
こういう使い方できますってどこに書いてるん?
というかこれ何? 何をしてるの?
2023/01/18(水) 14:17:53.69ID:XUj03KlL0
>>682
print(int(True)) してみればわかる
2023/01/18(水) 15:13:41.38ID:+ZuSWnJO0
>>679
ソースからインストールするのが良いと思う
特定のディレクトリにインストールして
pipモジュールも全部そこに入れる
PYTHONPATH環境変数さえ切り替えればディレクトリ丸ごとzip化して展開するだけで動く
685デフォルトの名無しさん (ワッチョイ 954f-3xOh)
垢版 |
2023/01/18(水) 15:36:42.94ID:s0ETZiMG0
>>683
ああ0か1でインデックスアクセスしとるだけか…
2023/01/18(水) 15:51:40.32ID:jMlJSS1Fa
>>685
それだと2番目で10帰るのはおかしくない?
2023/01/18(水) 15:51:50.72ID:/pnBak0/0
何に使うの?
それで元のxとかも変更されたら面白いけど
688デフォルトの名無しさん (ワッチョイ 8646-powr)
垢版 |
2023/01/18(水) 17:55:01.69ID:6kj4tnJC0
>>686
以下が全て同じ事ならおかしくないのでは。
l[x < y] = 10
l[True] = 10
l[1] = 10
2023/01/18(水) 17:56:51.65ID:4G0iEoXva
>>688
これって l == [1,2] でしょう?
2023/01/18(水) 18:00:03.67ID:CSuoG/Pca
どうみても [1,10]
2023/01/18(水) 18:01:25.91ID:vDmewWjV0
ワロタ
2023/01/18(水) 18:02:02.81ID:4G0iEoXva
x = 1
y = 2
l = [x, y]
って代入してますよね。

>>690
2023/01/18(水) 18:05:03.53ID:CSuoG/Pca
>>692
その下で再代入してますよね?
2023/01/18(水) 18:07:51.72ID:guU+fOES0
>>687
だいたいゴルフ
2023/01/18(水) 18:11:56.58ID:cgb3Ru010
682じゃないけど、
l[x < y]実行すると確かに10って出るんだけど、l[x < y]て何?変数?
2023/01/18(水) 18:13:34.26ID:XUj03KlL0
ttps://wandbox.org/permlink/COIBSt4ZBZn69DsP

(´・ω・`)
2023/01/18(水) 18:24:19.05ID:cgb3Ru010
なるほど、そこは式でもいいんだw
l[1]ね
2023/01/18(水) 19:16:40.41ID:4G0iEoXva
>>693
本当だ……
すみません
699デフォルトの名無しさん (アウアウエー Sab2-eHNm)
垢版 |
2023/01/18(水) 20:20:20.43ID:Hw+b6smNa
リストのインデックスやろ
2023/01/18(水) 21:56:26.72ID:1WHyH76r0
test
701デフォルトの名無しさん (ワッチョイ ad7d-3xOh)
垢版 |
2023/01/19(木) 00:54:56.11ID:5JSgYA5N0
682だけどみんなすまん
再代入ではなくコメントアウトしたつもりだっただけだ

x = 1
y = 2
l = [x, y]

l[x > y] # 1
l[x < y] # 2

インデックスアクセスって式でもいいんだね
その仕様って公式ドキュメントかどこかに書いとるのかな?

_list[getStart() : getEnd()]
は見たことある
702デフォルトの名無しさん (ワッチョイ 9576-8egj)
垢版 |
2023/01/19(木) 08:00:24.00ID:cvaqY+KJ0
l[i+1]-l[i]
みたいなことは普通にやるでしょ

l[True]が許されてるのは知らんかったが
2023/01/19(木) 08:45:06.76ID:tHxF2dx+0
普通に考えてエラーだよな
2023/01/19(木) 10:18:38.24ID:Np1e/hbpM
cだとTrue==1,False==0
2023/01/19(木) 10:35:05.16ID:jZEAJEvg0
>>701
おそらくオリジナルのコードはもっと違うものだろう
a=[1,2,3,4,5]
a[a>3]
みたいな書き方ではないかと予想
2023/01/19(木) 10:49:25.55ID:tHxF2dx+0
Cにもよるけど、本来は0か0以外
1に限定してしまうとじゃあ2だったら?になる
0以外なら何でもいいけど1に限定するルールが追加されたりもする
2023/01/19(木) 11:10:27.46ID:Np1e/hbpM
numpyのコードでも見たんかな
2023/01/19(木) 13:45:08.48ID:O9Pu7UCm0
2択ならif文使わずにリスト+真偽値でこういう風に書けるけどこういうのってバグ誘発とかします?

print(["不合格", "合格"][a > 70])
2023/01/19(木) 13:49:31.35ID:tHxF2dx+0
print("不合格" if a <= 70 else "合格")
普通はこうするかな
そのまま文章として読める
2023/01/19(木) 14:07:07.89ID:KyLvYp+m0
>>708
自分だけが使うコードならそれでいいよ (競プロとかね)
複数人が触るコードでトリッキーなことをするのはやめたほうがいい
2023/01/19(木) 14:07:26.78ID:tUp9S1Vn0
https://twitter.com/JeroenFrijters/status/1615204074588180481?t=Nlkhxbmh050Nn6J689j40A&s=19
https://twitter.com/5chan_nel (5ch newer account)
2023/01/19(木) 14:41:58.83ID:lMPY/6+kr
>>711
2023/01/19(木) 14:50:57.06ID:tUp9S1Vn0
https://twitter.com/TyrannoSaurav/status/1615492525997035521?t=KAdJgmcRHQdgUAMSWG5mhg&s=19
https://twitter.com/5chan_nel (5ch newer account)
2023/01/19(木) 15:06:12.24ID:tHxF2dx+0
いやいやいや
2023/01/19(木) 15:21:56.82ID:UZ8Yv+jk0
って二部探索するんかい
2023/01/19(木) 16:25:33.10ID:upxAw0UEd
二分
2023/01/19(木) 17:50:13.85ID:QVFjggvT0
一部分の探索で済まそう
2023/01/19(木) 18:56:11.00ID:TNs8/XJ0a
リスト内で複数行にまたがる正規表現って可能なもんですかね?

0 りんごが1個うれた
1 りんご
2 が2個
3 売れた

りんご.*れた みたいな感じのパターンを使って最初にマッチする行位置が取りたいっす。
2023/01/19(木) 19:14:50.90ID:tHxF2dx+0
特殊な文字でjoinしたものを検索してから、特殊な文字の個数を数える

りん

みたいに行を跨いでいるものは無理
2023/01/19(木) 19:22:45.59ID:5ZAVTiSz0
特殊な文字なしでjoinして位置変換の情報は別途生成でいいんでは
2023/01/19(木) 19:29:53.07ID:tHxF2dx+0
一つずつ長くしながら比較、でも判るけど時間かかりそう
一旦文字数のテーブルに変換しておけば文字列比較はしなくて済む
2023/01/19(木) 19:50:54.78ID:TNs8/XJ0a
719
720
721
やっぱりリスト内は難しいですよね。
joinで考えます!!
2023/01/19(木) 21:09:54.59
AIに聞いた結果 >>718
https://i.imgur.com/WseDWPs.jpg
https://ideone.com/S6X4NB
2023/01/19(木) 21:26:15.66ID:tHxF2dx+0
文字列内に改行が含まれないことが明らかなら、特殊な文字として改行を使ってAIと同じ答えになる
にしてもAIすげーな
725デフォルトの名無しさん (ワッチョイ 9576-8egj)
垢版 |
2023/01/19(木) 21:34:15.13ID:cvaqY+KJ0
リストに分割されてない"\n"区切りの1本の文字列なら、
reのDOTALL使っていい感じにできそう?
2023/01/19(木) 21:37:12.72ID:tHxF2dx+0
flags=re.DOTALL は不要な時はわざわざ付けないだけで、
あって困ることはあんまりないのでむしろデフォルトにして欲しい
2023/01/21(土) 01:57:46.01ID:hmuMvNyB0
一連の処理が関数化されたライブラリサイト探してるんだけど、検索しても関数の使い方ばかりヒットする。どっかいいところある?
2023/01/21(土) 02:03:09.47ID:NCV4+yjc6
その関数を使えばいいのでは
2023/01/21(土) 02:08:14.13ID:8Gumyjw80
ChatGPTがいいよ
730デフォルトの名無しさん (ワッチョイ cf46-l+ta)
垢版 |
2023/01/21(土) 02:58:00.85ID:Bxvmrygr0
>>723
その ideone.com/S6X4NB の実行結果は match line: 4 になっている。
4行目しか、/りんご.*れた/ にマッチしてないのでは。

「複数行にまたがる正規表現」ということなら、2~5行目にかけた
"りんごが1個3 りんご4 りんごが2個うれた5 売れた"
にマッチし、match line: 2 が返りそうな気がする。
2023/01/21(土) 04:51:17.18ID:+3UW7oH80
ほんとだ
re.MULTILINEじゃなくてre.DOTALLが正解でしたね
2023/01/21(土) 13:38:37.90ID:5rRYrQvt0
みんな引数書くとき型ヒントつけてる?
Intelicenseのためになるべくつけるようにしたいんだけど
あえてつけない方がいいって意見あったりする?
2023/01/21(土) 14:01:26.32ID:fUOngKcuM
>>732
使ってないなあ
使わなくても動くものは使わなくていい
シンプルイズベスト
2023/01/21(土) 14:32:39.33ID:A7VrgYN70
俺は書く。
引数の型なんて昔からコメントに書いてたしなぁ。
2023/01/21(土) 16:32:06.79
AIで勝手につけてもらったほうが楽だったりして
https://i.imgur.com/EyAlxnO.jpg
2023/01/21(土) 17:06:12.97ID:EhE1HfEs0
>>732
書ける型は必ず書くかな
なくても理解できるなんてまやかしだからね
一人で数百行のスクリプト書くだけなら好きにすればいいけど
2023/01/21(土) 17:54:45.51ID:N4/N+WFUd
俺も書く
明日の自分は別人だとおもってるから
2023/01/21(土) 18:03:08.29ID:6NqTTwhj0
必要そうだと思えば書く
一律には決めない
739デフォルトの名無しさん (ワッチョイ a397-xFde)
垢版 |
2023/01/21(土) 18:29:49.08ID:vxlp1VLj0
分析用のコードとか簡単なアルゴリズム検証用のプロトでは書かないけど、
それなりに運用される前提のコードなら書くかなあ。
2023/01/21(土) 21:58:12.42ID:CGLAOxtya
コメントもアノテーションも書いたら負け
書かなくとも直感的に頭の中に入ってくるコードを書くのは必然
2023/01/21(土) 22:05:29.47ID:qRfy1PGha
変数名は6文字以下
2023/01/21(土) 22:32:25.46ID:8msiXC4t0
コメントはわかるが型書くのはバグ、デグレ回避だからな
2023/01/22(日) 00:43:00.91ID:alhRdr+00
皆さんありがとうごおざいます。
強く忌避される理由もなさそうなので遠慮なく使っていこうかと思います。
2023/01/22(日) 09:46:38.39ID:mu8Nl5mu0
昔はコメントは1行ごとに書けと言われていたがな。
コメントのみ抽出してテスト項目書にするから。
2023/01/22(日) 10:25:05.16ID:sXfLTPHJ0
昔の人ってバカだったんですね
2023/01/22(日) 10:36:24.49ID:mu8Nl5mu0
テスト担当は本来自分じゃないんだぞ。
2023/01/22(日) 10:56:53.83ID:Z9h86Jnh0
本文のコメントをテスト項目書に書くってどいうことだろ
2023/01/22(日) 11:07:16.38ID:Dp7umTA90
まだ網羅とかの概念が無かった頃かな
2023/01/22(日) 11:20:11.52ID:mu8Nl5mu0
そうだね。ちょうどカバレッジ(率)という用語が出てきてプログラム化されてきたかなという頃だな。
2023/01/22(日) 11:26:46.20ID:dLuJ8Aewd
>>744
言われてないぞ
2023/01/22(日) 11:39:32.26ID:vp80yT++0
>>744
コードの行数とコメントの行数が同じになるの?
2023/01/22(日) 13:19:21.37ID:Z9h86Jnh0
逆になんでコメントなんだろうと思った。
コードそのまま写した方が手間も間違いも無くてよさそうに思うが。
2023/01/22(日) 14:08:53.41ID:mu8Nl5mu0
言われていないなら言われていないでいいよ。
別に書かなくても誰も困ってないんだろ。

コードで行っている処理を日本語などの言語で表現できないような状態はバグの温床だな。
2023/01/22(日) 14:36:52.28ID:CeTBqGTsd
>>753
生産性の悪い、規約でがんじがらめの現場しか経験してないのかな
コメントは処理の内容じゃなく、なぜその処理かを記述するんだよ
何やってるかなんてコード読めば済むだろ
2023/01/22(日) 14:46:00.56ID:lD3V8UVm
こういうことをしたいんだがもっと上手く書けないもんかな・・
https://ideone.com/QYEWI4
等分割ではなくて等比的に分割していく、みたいな

微妙にsum結果が合ってないのも気になる
2023/01/22(日) 15:08:55.72ID:mu8Nl5mu0
floatだからじゃないの?decimal使ったら?
757デフォルトの名無しさん (ブーイモ MM1f-/qsW)
垢版 |
2023/01/22(日) 15:36:21.63ID:++gHrjAvM
おあつらえ向きに何がやりたいかわからんコメントが必要なコードが出てきたぞ
2023/01/22(日) 15:57:16.18ID:Z9h86Jnh0
ふつうはその関数の仕様や期待動作をコメントに書くんだよ
759デフォルトの名無しさん (ワッチョイ 4376-gzmJ)
垢版 |
2023/01/22(日) 16:15:50.88ID:6lZDc9UV0
sideとexの意図がわからんから無視したが、
だいたいこんな感じになれば満足か?

def divisionor(source, ratio, maxcount):
for _ in range(maxcount):
yield source
source*=ratio

def step_values(sumvalue, ratio, step):
firstvalue = sumvalue * (1-ratio) / (1-ratio**step)
return list(divisionor(firstvalue, ratio, step))

print(step_values(11111, 0.1, 5))
2023/01/22(日) 17:26:38.16ID:KzI8pxO80
この行は何をしたいのか
なぜこの選択肢を取ったのか
この選択肢を試してみたがこういう方法でうまくいかない

とかをコメントで残しておいてくれると
後々助かる
2023/01/22(日) 17:57:02.93ID:tbxzfOk70
そもそもそういうコメントが不要なコードのがよくない?
ちゃんとレビューしよう
2023/01/22(日) 19:17:12.88ID:Dp7umTA90
関数名や変数名から想像した通りに動作をするならコメントは要らない
予想を裏切る行動をする箇所だけコメントが必要

そんな書き方するなという話だけど、そうしないといけない時もある
外部のバグに合わせて仕方なく変なことするとか
再帰呼び出しもコメントが無いとパッと見て判らない
763デフォルトの名無しさん (ワッチョイ cf46-l+ta)
垢版 |
2023/01/22(日) 21:39:41.12ID:rHuBFYoH0
>>761
> そもそもそういうコメントが不要なコードのがよくない?

それ、ドキュメント書きを怠けたい人の方便だからね。
誰に聞いたか知らないが、真に受けるのはやめよう。
そもそも、そうのたまう人が説明不要なコードを書いた試し無いでしょ。
2023/01/22(日) 21:50:50.32ID:HMT2GUgc0
コメントは悪、という思想は悪
その正体は怠慢と傲慢
2023/01/22(日) 21:56:14.88ID:nZDUyUTud
>>760の言ってる内容はコードとして残せないから残す意味がある
処理の内容を書く奴は処理とコメントに矛盾が生じたときに困るし、
コードとコメントの双方を直すことになる奴だから残すべきじゃない
2023/01/22(日) 21:58:28.48ID:mu8Nl5mu0
>>765
同じことをいうヤツが何人もいるが、それは仕様自体を正しく把握してない状態では?
2023/01/22(日) 21:59:29.89ID:CYRi3QMt0
コメント欄は上司の悪口を書いておく場所です
2023/01/22(日) 22:00:55.76ID:tbxzfOk70
>>763
自分のコードでもレビューでもそう意識して実践してるけどダメ?
>>762のようなケースもあるからこそ
ノイズになるしょうもないコメントは書きたくないから
なるべくコードだけで分かるように心がけてる
2023/01/22(日) 22:04:13.87ID:vp80yT++0
# 何故動いているのか分からない

# 触るな!キケン!
2023/01/22(日) 22:10:16.22ID:9Ojcnz4Cd
>>766
仕様を把握してたらなおさらコードの内容をコメントとして書く理由がない
ある程度の規模のOSSのソース見てごらん
ちゃんと意味のあるコメントが書かれてる
2023/01/22(日) 22:23:35.47ID:o/PhajQ/0
>>765
コードコメントをAPIドキュメントとして使うよう場合は
仕様としての処理の内容をコメントに書く

それに「この行は何をしたいのか」は基本的にコードに書くべきこと
特にPythonのように高レベル言語では意図が伝わるコードを書くべき
2023/01/22(日) 22:28:26.52ID:CYRi3QMt0
# この先地雷原有り
2023/01/22(日) 22:29:55.26ID:/fZ7r7w/d
>>771
何をしたいのかと何をやってるのかは違うからね
コードから読み取れるのは何をやってるのか(how)だけであり、
なぜ(why)ややりたいこと(want to)は読み取れない
だからこそコードに残せない情報はコメントで残す意味がある
774デフォルトの名無しさん (JP 0H9f-xoCn)
垢版 |
2023/01/22(日) 22:54:57.29ID:R9Yr7t5mH
まともなコードを読めば
ドキュメントとコメントと適切な命名、型ヒントの重要性について学べるだろう

個人用の短い書き捨てのコードしか書かないんだったら好きにすりゃいい
2023/01/22(日) 23:02:22.21ID:bkKT3NQT0
コメントは分かりやすくするためだから長文でダラダラ説明じゃなく要点を端的に示せばいいよね
>>773のとおりどうやってやっているかはコード見ればいいから不要だけど何のための処理かとか入出力変数の内容はメモ欲しいかな
2023/01/22(日) 23:25:39.03ID:o/PhajQ/0
>>773
>何をしたいのかと何をやってるのかは違うからね
それ違ったらバグだよ
Whyは一般的にはコードに書けない
HowだけでなくWhatをコードに書く
それが意図を伝えるコード
2023/01/23(月) 02:03:11.45ID:iK9HS79n0
コメント書いてわかりやすくするなら
はじめからわかりやすいコードを書くことを心がけて行きたい
コメントやドキュメントに頼らずに直感的に頭の中にすっと入ってくるコードを目指すべき
778デフォルトの名無しさん (ワッチョイ a397-xFde)
垢版 |
2023/01/23(月) 08:55:05.46ID:e6QcTLyI0
ユークリッドの互助法みたいなのは、ユークリッドの互助法を行う、でいいと思うけど、
数式をプログラムにする際にやたらに複雑になってしまったような場合は概要だけでなく解説を入れるかな。
glibcのmath.cのcosとかいい例って感じするけど。
2023/01/23(月) 09:04:24.24ID:ZLTOxX5K0
いわゆる「下回り」は高速性も求められるので、難解になりがちだな
何ならアセンブラで書いてある

そういうダーティな部分は最下層に追いやって、上の方はクリーンに書くので、
そんな難解なものを書けるチャンスはまずやって来ない
780デフォルトの名無しさん (ブーイモ MMa7-xFde)
垢版 |
2023/01/23(月) 09:13:35.90ID:JALIr7W8M
>>779
numpyとかダーティになりがちだし、自分はnumpyのコードも書くからなあ。そう言うコメントを書く機会ある。
2023/01/23(月) 09:15:42.81ID:qV3QzySmp
あれは実際どの型で動いてるのか不安になる時あるわ
ちょっとコード変えたらエラー出まくりとか嫌になる
782デフォルトの名無しさん (アウアウウー Saa7-KLwc)
垢版 |
2023/01/23(月) 15:20:45.47ID:wy0Tx5tFa
普段からコメント書いたり読んだりしてないといきなりは難しい
2023/01/23(月) 15:25:29.48ID:ZLTOxX5K0
コメントとは違うけど、docopt ってよく出来てる
ドキュメントを書くとその通りに動く
あの無敵な感じを関数単位でやれるといい
2023/01/23(月) 19:31:40.09ID:Hk4+8ffPM
>>732
付けてるけど
Noneチェックしないとエラーになってうざいときある
785デフォルトの名無しさん (ブーイモ MMff-3swV)
垢版 |
2023/01/24(火) 01:38:47.57ID:k7nS/dQwM
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
786デフォルトの名無しさん (ワッチョイ 6f7a-um8e)
垢版 |
2023/01/24(火) 23:55:50.38ID:NOigsG6z0
ウェブサイトのデータ抽出してからエクセルにデータ貼り付けて、
そこからさらに重複していないデータ(データ一覧に一つしか存在しないという意味、リストにすでに含まれてたら…ってのはng)だけ取り出したいんだけど、
この重複してないデータの取り出し方法がわかりません
どんな方法ありますか?
2023/01/25(水) 00:04:00.77ID:Eu1oQ2MW0
>>786
Python不得意ならExcelでやればいいんでは?
テキストファイル化してコマンドラインからuniq(PowerShellならGet-Unique)でもええし
Pythonならset(集合)にデータをタプルで入れていけば勝手に一意にはなる
2023/01/25(水) 01:26:29.91
#エクセルデータをpandasで読み込んでdataframeに変換する例
import pandas as pd
data = pd.read_excel('path/to/excel_file.xlsx')
#特定のシートだけ読み込む
data = pd.read_excel('path/to/excel_file.xlsx', sheet_name='Sheet1')
#特定の範囲だけ読み込む
data = pd.read_excel('path/to/excel_file.xlsx', usecols='A:C')
#読み込んだあと、特定の列から重複しないユニークな値を抽出する
data = pd.read_excel('path/to/excel_file.xlsx')
unique_values = data['column_name'].unique()

#pandasで重複しない値を取得する例
import pandas as pd
data = {'Name': ['John', 'Mike', 'Brad', 'Jane', 'John', 'Mike'],
'Age': [25, 30, 35, 40, 25, 30],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'New York', 'Los Angeles']}
df = pd.DataFrame(data)
unique_values = df['Name'].unique()
print(unique_values)
2023/01/25(水) 01:50:21.75ID:u8Mn4x2gM
>>786
重複排除じゃなくて
最初から完全に一意のものだけ取り出すってこと?
俺の頭では無理だな
790デフォルトの名無しさん (ワッチョイ cf46-l+ta)
垢版 |
2023/01/25(水) 02:54:09.95ID:na5kNBW00
>>786
仕様の「リスト」が何を指すか解らない。その一文を無視して、

連想配列(Pythonだとdic?)で、
var["データの1要素"]++
みたいなことをし、
var["データの1要素"] != 1 を捨てるかな。
2023/01/25(水) 03:11:17.39ID:4wQ5Uou30
>>786
動的計画法で探索したら済む
2023/01/25(水) 08:15:31.51ID:ByQxjYtpa
Ruby 2.7 から、tally で、配列内に同じ要素が何個あるかを数えられる。
そこから、重複していないものをフィルターする

ary = [ 1, 2, 2, 1, 3 ]
p hash = ary.tally #=> {1=>2, 2=>2, 3=>1}

p result = hash.select { |key, val| val == 1 } #=> {3=>1}
2023/01/25(水) 09:28:21.85ID:1X933CFM0
既にexcelにあるなら、重複の削除でいいのでは
2023/01/25(水) 13:48:53.45ID:lTdR++oJ0
>>786
collections.Counterで要素数が1のものだけ抽出すれば?
2023/01/25(水) 13:53:44.39ID:lTdR++oJ0
こんな感じで。
import collections
l = ['a', 'a', 'a', 'a', 'b', 'c', 'c']
c = collections.Counter(l)
print([k for k,v in c.items() if v==1])
2023/01/25(水) 13:56:42.38ID:lTdR++oJ0
つか、ここだとmarkdown使えんから
具体的な質問なら、SOとか寺にしたほうがいいよ
2023/01/25(水) 15:23:19.30ID:B2re/Hy6d
というか>>1見ましょうって話だけど
2023/01/25(水) 22:08:02.33ID:BPa0NAyM0
>>795
上にもあるけど単にリストのユニーク要素を取り出すならsetに一旦変換するのが楽だと思うけど
l = ['a', 'a', 'a', 'a', 'b', 'c', 'c']
print(list(set(l)))
ただ>>786のやりたいことがイマイチ分からないのでみんなエスパーするしかない
エクセルが間に挟んだのはどういう処理(過去保存データとのマージとか途中経過置きたいのか)とかリストって一次元のリストなのかとかがよく分からない
2023/01/25(水) 23:56:04.30ID:3IYN0s1Ra
分割統治法の処理に一行追記するだけでできる気が
800デフォルトの名無しさん (ワッチョイ 5346-l+ta)
垢版 |
2023/01/26(木) 00:59:27.75ID:rjz6yl2y0
>>798
>>786
1:abcd
2:abcd
3:efgh
を、
1:abcd
2:efgh
とユニークにするのでなく、
1:efgh
としたいと言っているのでなかろうか。どうだろう。
2023/01/26(木) 12:21:48.66ID:M4fxvzOfM
新規性探索アルゴリズムで実装してみてはどうだろう
2023/01/26(木) 12:31:06.80ID:GrZTDGimd
おそらく探索系のアルゴリズム使うよりもfind等の関数型でやったほうが強いだろう
rubyならすぐ書けるんだがな
2023/01/26(木) 12:43:57.64ID:UdXClMFA0
数が一つを保証するために探索系アルゴリズムもないだろう
N個あったらO(N)で数え上げだろう
804デフォルトの名無しさん (ブーイモ MMff-3swV)
垢版 |
2023/01/26(木) 16:56:31.08ID:T1n7nFq3M
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
2023/01/26(木) 22:54:11.42ID:Wh8CZgs50
ZDDを
2023/01/27(金) 16:28:22.40ID:uGmwFOSM
これ地味にむずいかもって事例に遭遇した。

ページネーションされているウェブサイトにて
1ページ毎に(日付、値)の形式で何行か表示されていて
(日付、値)だけをスクレイピングするとする

例えばこんな感じ
1ページ目
2023/01/26(木) 22:54:11、1
2023/01/26(木) 22:53:30、2
2023/01/26(木) 22:52:08、1
2ページ目
2023/01/26(木) 22:51:04、1
2023/01/26(木) 22:51:04、2
2023/01/26(木) 22:50:23、1

問題は、
スクレイピング中に、ウェブサイト側がデータを更新した場合
同じ日付を重複して収集してしまう可能性があること。
同じ日付時刻なこと自体は間違いではなく正常なので
ウェブサイトの更新時によるズレなのか、単に同じ日付時刻のデータなのか
を判別する処理が難しいというか、単純であればあるほど
常に最新データを収集するとかでない限り不可能な気がした
807デフォルトの名無しさん (オイコラミネオ MM07-M8KT)
垢版 |
2023/01/27(金) 16:47:43.59ID:c/fSkYwsM
>>1
svgを使いたいのだが、
インストールすらエラー、、、
2023/01/27(金) 17:16:38.85
google colabは普通にできた >>807
https://colab.research.google.com/drive/1lXnjIZ29Dv52Xxqms_Bq72set8w_gNFp
809デフォルトの名無しさん (ブーイモ MM1f-/qsW)
垢版 |
2023/01/27(金) 17:38:27.29ID:COYgsLLDM
>>806
識別子も更新日時もなくサイレントに更新されるような品質の低いデータならページ単位に取得日時を記録してスナップショットとして割り切るしかない
2023/01/27(金) 19:13:48.24ID:ttcy9Q0Rd
>>806
スレタイ読める?
811デフォルトの名無しさん (オイコラミネオ MM07-M8KT)
垢版 |
2023/01/27(金) 19:53:07.73ID:wbJwBZC+M
>>808
ありがとうございます
812デフォルトの名無しさん (ワッチョイ 43ad-qYbV)
垢版 |
2023/01/27(金) 22:54:09.27ID:QwmTjMRl0
>>806
Rakuten Koboの期間で絞り込むと一緒だ
デフォルトが売上順になっていて、ページ移動すると、順番が変わる
結果セットに対して、ページを作成しているのではなく、その都度作成してる。
こうゆう作りの所は、諦めるしかない。
結果セットをいじるのは、勘弁してほしい
(今日出ているのに、ページまたがりで見つからなくて、別のとこで買ったことも)
2023/01/27(金) 23:03:53.86ID:wC9qLVMj0
気持ち悪い自演
814デフォルトの名無しさん (ブーイモ MMb6-Db9z)
垢版 |
2023/01/29(日) 11:45:29.18ID:Ac+ianrsM
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
2023/01/29(日) 14:25:12.72ID:sXEwsNxr
pythonファイルを定期実行するときに、○○秒待機したタスクだけを一度実行(また○○秒待機)
ってこんな面倒だったっけ・・?
https://ideone.com/s6VVQo
whileで無限ループとかだと、経過時間をメモリできるから簡単だけど
pyファイル実行毎だとその都度全部クリアされるからどこかに記録しとかないといけない、という認識であってるのだろうか・・
ほぼ最小構成のつもりでこんなに長くなってしまった
2023/01/30(月) 15:47:46.06ID:6GqSWy3Oa
>>815
普通の人はscheduleモジュール使う
プロセスごとだとLinuxのcronやWindowsのスケジューラ使う
2023/01/30(月) 17:17:45.74ID:U0BG6clG
プロセスごとだと、タスクごとにpyファイルを分けて
例えば
task1.py task2.py ・・・
みたいに分けて
OSの方でそのpyファイルを定期実行する感じですかね

仮に、どこからか情報を取得するようなタスクだったら、DBに記録して
DBから情報を取得して処理する.py
に分けて、それも定期実行する
みたいな
もちろんやり方は自由なんだろうけど
実行時間に依存した料金体系のサービスで節約したい場合とか
ループ使わないだけで構成変わっちゃうので、かつ汎用性持たせようとして苦労してます・・
ありがとうございました >>816
2023/01/30(月) 19:13:50.35ID:6GqSWy3Oa
>>817
金額が安いのはサーバレスサービスかな
例えばhttpで受け付けるAPIを用意して、AWSでLambdaファンクションをCloudWatch経由でたたく
1分に1回実行するとして2000円以下だと思う
それも高いと言うなら月額1000円未満のVPS借りてLinuxでcronかな
819デフォルトの名無しさん (ワッチョイ 3635-5T4A)
垢版 |
2023/01/31(火) 14:03:50.00ID:F8VbnJh50
https://github.com/fanzeyi/pokemon.json/blob/master/pokedex.json
*火(Fire)と飛翔(Flying)の属性を持ったポケモンの数を表示
*消防士向きのポケモンを判定する  図鑑番号を指定して  水(Water)のタイプをもっていて、すばやさが平均以上の  ポケモンであれば、採用と表示する
*発電向きのポケモンを判定する  図鑑番号を指定して  でんき(Electric)のタイプをもっていて、ぼうぎょりょくが中央値以上の  ポケモンであれば、採用と表示する
誰かこれの回答と解説お願いできる?
820デフォルトの名無しさん (ワッチョイ 3635-5T4A)
垢版 |
2023/01/31(火) 14:04:37.72ID:F8VbnJh50
import urllib
import json
response = urllib.request.urlopen('https://raw.githubusercontent.com/fanzeyi/pokemon.json/master/pokedex.json')
content = response.read()
jpk = json.loads(content)
jpk
821デフォルトの名無しさん (ワッチョイ 3635-5T4A)
垢版 |
2023/01/31(火) 14:05:09.66ID:F8VbnJh50
頼む
822デフォルトの名無しさん (ワッチョイ 4ea4-5T4A)
垢版 |
2023/01/31(火) 14:41:57.01ID:M1DmxzTw0
PySimpleGUIで2つの最大サイズの画面を遷移させたいのですが、
ウインドウを作成しておいて表示/非表示で見た目に入れ替えようとしました。

# 最初にウインドウの起動位置を指定して起動
main_window = make_main(0, 0)
sub_window = make_sub(0, 0)
# サブウインドウを非表示にする
sub_window.hide()

main_windowにあるボタンを押すと
# サブウインドウを表示する
sub_window.un_hide()

サブウインドウが最前面に表示されます。
その後、sub_windowにあるボタンを押して、
# サブウインドウを非表示にする
sub_window.hide()
メインウインドウを最前面にしようとしてもサブウインドウが最前面に表示されたままです。

双方のボタンで前後入れ替えて表示したいのですが、良い案はありませんでしょうか。
2023/01/31(火) 15:06:40.46
AIに聞いた結果 >>819
合っているかはわからん

import urllib
import json
import pandas as pd
response = urllib.request.urlopen('https://raw.githubusercontent.com/fanzeyi/pokemon.json/master/pokedex.json')
content = response.read()
jpk = json.loads(content)
#print(jpk)
df = pd.DataFrame(jpk)
df['name']=df['name'].apply(lambda x: x['japanese'])
df=df.join(df["base"].apply(pd.Series)).drop(columns=["base"])

#火(Fire)と飛翔(Flying)の属性を持ったポケモンの数を表示
target_types = ['Fire','Flying']
count = sum([all(value in row for value in target_types) for row in df['type']])
print("typeがFireとFlyingのポケモンの数",count)

#消防士向きのポケモンを判定する  図鑑番号を指定して  水(Water)のタイプをもっていて、すばやさが平均以上の  ポケモンであれば、採用と表示する
target_types = ["Water"]
m_speed=df["Speed"].mean()
filtered_df = df[df.apply(lambda row: all(value in row['type'] for value in target_types) and row['Speed'] >= m_speed, axis=1)]
print("消防士向きのポケモン\n",list(filtered_df["name"]))
#発電向きのポケモンを判定する  図鑑番号を指定して  でんき(Electric)のタイプをもっていて、ぼうぎょりょくが中央値以上の  ポケモンであれば、採用と表示する
target_types = ["Electric"]
m_defense=df["Defense"].median()
filtered_df = df[df.apply(lambda row: all(value in row['type'] for value in target_types) and row['Defense'] >= m_defense, axis=1)]
print("発電向きのポケモン\n",list(filtered_df["name"]))

#typeがFireとFlyingのポケモンの数 6
# 消防士向きのポケモン ['カメックス', 'ゴルダック', 'ニョロモ', 'ニョロゾ', 'ニョロボン', 略
# 発電向きのポケモン ['コイル', 'レアコイル', 'マルマイン', 'サンダー', 'デンリュウ', 'ライコウ', 略
2023/01/31(火) 15:11:42.84
>>822
PySimpleGUI の bring_to_front() 関数を使って、ウインドウを最前面に表示することができます。

以下は、サブウインドウを最前面に表示する例です:
sub_window.un_hide()
sub_window.bring_to_front()

また、メインウインドウを最前面に表示するには、以下のようにします:
main_window.bring_to_front()

このように、各ウインドウを最前面に表示することで、ボタンを押したときに前後入れ替えて表示することができます。
825デフォルトの名無しさん (ワッチョイ 4ea4-5T4A)
垢版 |
2023/01/31(火) 15:22:58.11ID:M1DmxzTw0
>>822
出来ました、ありがとうございます!
全画面表示しかしていないので、もしかして表示/非表示にする必要は無いかもですね。
826デフォルトの名無しさん (ワッチョイ 3635-5T4A)
垢版 |
2023/01/31(火) 15:30:49.11ID:F8VbnJh50
>>823
多分あってます、ありがとうございます!
827デフォルトの名無しさん
垢版 |
2023/01/31(火) 15:43:13.04
>>823,>>819
>水(Water)のタイプをもっていて、すばやさが平均以上
>でんき(Electric)のタイプをもっていて、ぼうぎょりょくが中央値以上
全水タイプの素早さの平均値
全でんきタイプのぼうぎょりょくの中央値、なら

#消防士向きのポケモンを判定する  図鑑番号を指定して  水(Water)のタイプをもっていて、すばやさが平均以上の  ポケモンであれば、採用と表示する
target_types = ["Water"]
new_df=df[df['type'].apply(lambda x: all(value in x for value in target_types))]
m_speed=new_df["Speed"].mean()
filtered_df = new_df[new_df.apply(lambda row: all(value in row['type'] for value in target_types) and row['Speed'] >= m_speed, axis=1)]
print(f"消防士向きのポケモン: {len(filtered_df)}\n",list(filtered_df["name"]))
#発電向きのポケモンを判定する  図鑑番号を指定して  でんき(Electric)のタイプをもっていて、ぼうぎょりょくが中央値以上の  ポケモンであれば、採用と表示する
target_types = ["Electric"]
new_df=df[df['type'].apply(lambda x: all(value in x for value in target_types))]
m_defense=new_df["Defense"].median()
filtered_df = new_df[new_df.apply(lambda row: all(value in row['type'] for value in target_types) and row['Defense'] >= m_defense, axis=1)]
print(f"発電向きのポケモン: {len(filtered_df)}\n",list(filtered_df["name"]))
#typeがFireとFlyingのポケモン 6 ['リザードン', 'ファイヤー', 'ホウオウ', 'ヒノヤコマ', 'ファイアロー', 'オドリドリ']
#消防士向きのポケモン: 65
#['カメックス', 'ゴルダック', 'ニョロモ', 'ニョロゾ', 'ニョロボン', 略
#発電向きのポケモン: 27
#['コイル', 'レアコイル', 'マルマイン', 'サンダース', 'サンダー', 'デンリュウ', 'ライコウ', 略
2023/01/31(火) 16:34:08.98ID:yVHAxCVq0
いつまでここにコード貼り付けてるんだ?
>>1が読めないのか?
2023/01/31(火) 16:38:55.16ID:s5HjvgLO
fastAPIのこれが謎技術すぎて理解が追いつかない
https://sqlmodel.tiangolo.com/tutorial/fastapi/session-with-dependency/
要約すると
def db_session():
 with Session(engine) as session:
  yield session
session=Depends(db_session)
session.add(...)
session.add(...)
的にコードはwith構文の外に書いているのに、処理はwith内で書いたときのような効果が維持されてる(with抜けるときに勝手にsession.close()してくれるなど)、みたいな
from fastapi import Dependsってクラスか何かを通してるみたいで
https://github.com/tiangolo/fastapi/blob/master/fastapi/dependencies/utils.py
この辺ぽいけど見たけどよくわからなかった
2023/01/31(火) 18:26:25.76ID:Bz7d934y0
めっちゃ簡単に説明するとじゃ~と流せなくてちょびちょび流すようなことしてる感じかな
831デフォルトの名無しさん (ワッチョイ 4ef2-5T4A)
垢版 |
2023/01/31(火) 22:49:45.03ID:ElV7WbZZ0
>>819の者です。
多分あってるといったけど問題文にあってませんでした。
下のurlの問題について
https://dpaste.com/E2T6AX67C
しらべた末に自分なりにif inをつかったけどダメでした
正解をおしえてほしいです
2023/02/01(水) 01:43:38.22
>>831
・水タイプ全体のすばやさの平均なのか、全ポケモンのすばやさの平均なのか
前者の”水タイプ全体の平均”とするなら
https://dpaste.com/CUY959GZD
https://i.imgur.com/j02A1GX.jpg
833デフォルトの名無しさん (ワッチョイ 4ef2-5T4A)
垢版 |
2023/02/01(水) 01:50:28.37ID:p7QqUxzi0
>>832
ありがとうございます
今度こそ大丈夫そうです
2023/02/01(水) 06:39:17.75ID:4XVMJZMA
再現しようとしたけど断念しました >>829

#通常通りwith文のブロックの中で処理をする
https://ideone.com/QROz2s

#with文から外れてwith処理をする
https://ideone.com/zRNmKr
withブロックに依存しないwith処理まではできたけど
その分余計なコードが増えた・・
2023/02/01(水) 13:32:08.04ID:BH4poKX+a
with は、Ruby のコンテキスト(文脈)マネージャーみたいな奴か?

File.open(file_path, 'w') { |io| io.write "あ" } # 書き込み

File.openにブロックを渡すと、
正常時・エラー時に、自動的にファイルを閉じてくれる機能

自分でエラー処理を書かなくてもよい
2023/02/01(水) 13:46:14.41ID:n4KWr8vq0
Rubyのコンテキストマネージャーって何w
openがそういう実装になってるだけですやん
2023/02/01(水) 16:08:22.19ID:stnVYJIM0
さわっちゃだめ
2023/02/01(水) 18:46:44.78ID:PZvaggtd0
>>817
俺ならシェルスクリプトで
ループ内で最小単位の時間でsleep、カウンターの剰余0で実行
バッチファイルなら常駐メモリは2MB以下ですむ
:TOP
timeout /nobreak 10
set /a cx+=1
set /a t=cx%6
if %t%==0 task1.py
set /a t=cx%30
if %t%==0 task2.py
goto TOP
こんな感じ
2023/02/02(木) 13:56:48.73ID:KmBGO/iG
ミックスインなるデザインパターンを見たけど
これほんとにメンテナンス楽になるんだろうか。。
端的には、
それ単体では実行できない部分に細分化したクラスを継承する
だけど
細分化した先のメソッドで「このプロパティなんだったっけ?」ってなるような
2023/02/02(木) 16:53:18.68ID:r1wDpa0G0
デザインパターンの本折角買ったのに全く読んでねえ
2023/02/02(木) 17:01:42.99ID:6VWl20Ht0
>>839
mix-in先にあるプロパティを直接さわるコードなんて書かない
やるにしてもアクセサ経由
2023/02/02(木) 18:23:59.93ID:KmBGO/iG
Mixin+継承で書いたの
https://ideone.com/5GpJQ2
普通の継承で書いたの
https://ideone.com/8wRFFB

publicとprivate機能を追加したくなったとき
Mixinのとき
https://ideone.com/RRy6OW
普通の継承のとき
https://ideone.com/L3BS95

Mixin+継承のメリット
・Mixinクラス名を見ればそのクラスが何の機能を持つかわかる
・他の親クラスに転用できる
デメリット
・子クラスや他の継承クラスを変更するとき面倒くさそう

普通の継承のメリット
・継承元クラスにいろいろまとめることができる
デメリット
・親クラスを変更するとき親クラスに何の機能があるのかを把握した上で継承クラスを変更しなければならない

そもそもMixinの概念が合っているかどうかわからないけどこんな感じだろうか・・
2023/02/02(木) 18:51:04.22ID:NBDZ59im0
mixinも継承も使わないのがベスト
そもそも継承して使うクラスというのが既にオワコン
2023/02/02(木) 19:19:04.01ID:r1wDpa0G0
クラス継承は人類にはまだ早い
2023/02/02(木) 23:05:14.98ID:vvZK94Dt0
無理にデザインパターンにはめようとして逆に仕事増やす人いるよね
846デフォルトの名無しさん (ワッチョイ 8754-VB2L)
垢版 |
2023/02/03(金) 08:56:19.76ID:4ZQXLYki0
人類の敵
役人マインド
847デフォルトの名無しさん (ワッチョイ 4f02-4osW)
垢版 |
2023/02/04(土) 22:55:39.41ID:8GYKU8d40
どなたかご教示願います。

・PDFにページ番号を付加するために「PyPDF2」を使ったプログラムを組んでいます。
・reader.getNumPages() という関数を使って、自宅で試作して成功しました。
・許可を受けて、会社のPCにPythonとPyPDF2をインストールして同じコードを実行したころ、
PyPDF2のバージョンが上がったため使っていた関数が使えなくなりました。
・修正する時間もないので、PyPDF2の旧バージョンをインストールしたいのですが、
そういう方法はありますか?

Python3.9を使用しています。
PyPDFは旧2.2を使用していて、現在は3.0が最新です。
何卒よろしくお願いします。
2023/02/04(土) 23:05:28.75ID:Mjpe5lc+0
>>847
pipつかってる前提だけど
https://pip.pypa.io/en/stable/user_guide/#installing-packages

そして他へ配布する場合は
https://pip.pypa.io/en/stable/user_guide/#requirements-files
としてあげる
2023/02/05(日) 08:58:36.70ID:eiY3kUbi0
PyMuPDFが好き
なんでfitzなのか知らんけど

何をやるにしてもpdfは闇が深すぎる気がする
2023/02/05(日) 11:11:37.38ID:vWrwcA+50
>>847
2.2.0 なら
https://pypi.org/project/PyPDF2/2.2.0/#files
てかリリース履歴から任意のバージョンを取得できるよ
https://pypi.org/project/PyPDF2/#history
2023/02/05(日) 20:10:21.25ID:jIVcFujk0
pdfは厄介や
見る分はいいが、いじり出すとな
2023/02/05(日) 20:18:57.59ID:eiY3kUbi0
pdf関連のツールとかも無数にあるけど、みんな不完全にしか動かない

ターゲットを限定して、自分専用のを各自作るのが結局一番いい
2023/02/05(日) 21:18:04.66ID:jIVcFujk0
perl の時代はexcelもだめだめやった
今はマシやが、pdfがfinal frontierになっとる
2023/02/05(日) 21:39:21.13ID:eiY3kUbi0
perlでexcelは現役でやってたりする
excelインストール済の環境でWin32::OLEで使う
単にexcelを自動操縦してるだけ
互換性100%
855デフォルトの名無しさん (ブーイモ MM4f-68U3)
垢版 |
2023/02/07(火) 22:44:36.78ID:JLSdttvwM
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
2023/02/08(水) 14:33:54.91ID:nmN/DJX90
>>854
OLEかぁ
久しぶりに聞く名前だ
2023/02/08(水) 19:23:21.18ID:HmLip+MXa
OLEっていまだに動くのがすごいよな
セキュリティなんかガバガバだろうけど
2023/02/08(水) 20:42:51.28ID:rgNELHZyM
つくしんぼうだとガバガバ
2023/02/08(水) 20:54:17.75ID:H2y39Faw0
テキストとしてコピペしたつもりなのに勝手に色とかフォントとか付いてくるのはOLEのせい
860デフォルトの名無しさん (ワッチョイ 3f02-9FIK)
垢版 |
2023/02/09(木) 19:27:56.84ID:2nq9WSR10
ダウト
2023/02/09(木) 23:51:13.50ID:0zz5GtIk0
スレ的に、pycharmとvscodeだとどちらが優勢?
2023/02/10(金) 06:47:24.38ID:9NE3m3zk0
両方を本気で使っててvscode使い続けるやつがいるとは思えない
でもpyCharmの学習コストが高いっていうのはありそうだし、
知名度の差もあるからシェア的にはvscodeになりそう
2023/02/10(金) 08:22:50.18ID:VmkjxzjW0
>>862
> 両方を本気で使っててvscode使い続けるやつがいるとは思えない
全員 Python 「だけ」を使ってるわけじゃないから
2023/02/10(金) 12:48:56.54ID:zbRLQJO30
AIはオワコン
半導体株売ろっと
865デフォルトの名無しさん (ワッチョイ 0f46-+GrI)
垢版 |
2023/02/10(金) 16:37:07.28ID:VUhTkGAX0
AIはかげろう
2023/02/10(金) 20:52:15.58ID:vj3ehjkG0
いうてもPyCharmてJavaScriptのフロントエンドもまあまあ扱えるでしょ
それでサーバーサイドPython+フロントエンドを開発できる
C#とかGoとかはやったことないからわからんけど
2023/02/10(金) 21:08:19.86ID:MRlqHo2s0
C#は探せば用途あるでしょ
Goが役立つ人は限られる気がするけど
2023/02/10(金) 21:44:39.24ID:W1ovqKbO0
HentAI
869デフォルトの名無しさん (ワッチョイ 7f46-+GrI)
垢版 |
2023/02/10(金) 22:31:01.34ID:oWcE0R3w0
揉まなきゃpAI損
2023/02/10(金) 23:45:42.77ID:4dTZ5mDNd
>>866
pyから入った人に、Javascriptは覚えやすいのだろうか
2023/02/11(土) 00:20:30.01ID:6SOEh1520
いろいろしたかったらIntelliJ買ってくださいだったけど
無料のVS/VSCodeのが応用範囲広いしね
特にニッチな言語や設定ファイル
2023/02/11(土) 04:23:36.93ID:BoyDX9aw0
>>870
はっきり言ってめちゃくちゃ大変だけど、特に非同期処理が当たり前のところとか…。
サーバサイドとフロントエンド両方作るみたいな想定ね
2023/02/11(土) 12:38:01.63ID:a+HD9nM9a
Ruby on Rails のポートフォリオでも昔は、Bootstrap, jQuery だけで採用された

その後、ソニックガーデンの伊藤 淳一、
YouTube で有名な雑食系エンジニア・KENTA の初心者向けRailsサロンとか、
Rails専業のRUNTEQ などの生徒が、Vue.js を使った事で、
これはすごいとなって、日本ではVue.jsが決め手となった。
もちろん、React もある

今や、Linux, Docker, AWS Solution Architect も決め手となってきて、
KENTAのサロン内のAWS部に入って、皆でくろかわこうへいのAWSサロンにも入る

今や、Railsの未経験者は、10年以上のプロよりも上!
日本人の未経験者は、競争的に究極まで進化して、外人はクレイジーと驚嘆している

米国年収ではレトロなRubyが、最新の3強・Go/Rust/Elixir に勝ってしまうという珍現象が起きて、
多くの言語が6.5万ドルの中、Goが8.9万ドル、Rubyが9.3万!
Rails, AWS Solution Architect は13万ドルで、最も稼げる資格となった!

KENTAのサロンでも、JavaScript は初心者用の本を1冊読むだけ。
ES3〜ES5(2015)までの文法の変遷を追うだけで、Rubyの5倍以上あるので、お茶を濁すだけ

モダンJavaScriptの基本から始める React実践の教科書 (最新ReactHooks対応)、
じゃけぇ(岡田 拓巳)、2021

仕組みに重点を置いた本で、この本が最も簡単
874デフォルトの名無しさん (アウアウウー Sa4f-STvZ)
垢版 |
2023/02/11(土) 15:46:05.91ID:sAfMiQQTa
Sa4fゴミだな
2023/02/11(土) 15:51:27.83ID:hVG8U9QK0
わろたw
2023/02/11(土) 16:33:57.31ID:eEmRi8RJ0
自虐もほどほどにな
2023/02/12(日) 02:17:40.59ID:iemKZNlda
ちんこ痒い
2023/02/12(日) 08:27:40.05ID:AiZftOV60
>>872
バックエンドはpyですからね
aws,Javascript全部やるしかない
2023/02/12(日) 10:50:54.77ID:vYQ8HlVu
>Googleトレンドのデータに基づいてマスク氏の人気のピークが過ぎたと説明したエンジニアをその場で解雇したという。
>衝動的に従業員を解雇するため、チームごと消滅するサービスを別のチームが引き継いで
>「考古学者のようにコードを掘り下げ」状況を把握するところから始めなければならないと従業員の1人は語った。

やっぱどこもそうなんだな
2023/02/12(日) 12:01:32.79ID:9pgH/Ado0
まだ見ぬ引き継ぎ担当の為にコードを書かないとな
2023/02/12(日) 12:32:44.31ID:TEyM1SUY0
生産設備なんかで使われるラダーや図面なんかは
設備を立ち上げた設計者以外とは別に
社内の生産技術、改造工事をする社内外注とか
いろんな人が見て、改造することが前提になっているので
誰が見てもすぐわかるようにわかりやすい形で標準化されている
製造業で世界のトップにのし上がった国だけに突き詰められている
2023/02/12(日) 12:34:04.00ID:TEyM1SUY0
「以外」がいらんかった
2023/02/12(日) 13:07:29.19ID:+dHL9JcR0
リレーで実現できるような単純な動作しかさせないからわかりやすいと感じるだけだろ
2023/02/12(日) 13:07:35.57ID:2oU17ty6a
電気自動車の中古を買う香具師がいない。
誰が、3年落ちの中古を買う?
無理

早く水素エンジンへ移行すべき!

KENTAは、PHP, Scala をオワコン認定したから、
Scalaコミュニティーは、初心者にマウントを取ってくるベテばかりになって、
コミュニティーは崩壊し、RubyからScalaへ移行した、Twitter も崩壊中
2023/02/12(日) 13:46:49.70ID:9pgH/Ado0
ログをリアルタイムでグラフで見たくて、matplotlibでpngに書き出すようにしてみたけど、
matplotlibって体系ぐちゃぐちゃやな

ああ、そういう設計思想なのね、と納得すれば理解できる感じのモジュールと違って、
腑に落ちない仕様が後から後から出てくる
2023/02/12(日) 14:01:42.13ID:X/kdHYm50
>>885
matplotlibは汎用的すぎるからデータ可視化に強いライブラリ
たとえばPlotly(Dash)とかはどう?
887デフォルトの名無しさん (ワッチョイ eb01-8ynX)
垢版 |
2023/02/12(日) 15:22:19.00ID:SibvJmIn0
>>885
grafanaとか使う方がいい
888デフォルトの名無しさん (ワッチョイ fb97-VNfR)
垢版 |
2023/02/12(日) 20:26:28.32ID:u4Fhn/CP0
>>883
けどさ、電気電子板のPLCスレッドとか見るとわかるけど、絶対に間違っちゃいけない世界だから単純なことでも大変だと思うよ。
規模にもよるだろうけど、間違えたら人死にが出たり大損害を引き起こしたりするわけで。
アプリケーション屋と組込屋が分かれているのと一緒で、PLCのプログラム組んで問題なく動かすのはかなりのノウハウの塊だと思う。
自分は職業プログラマでweb、スマホアプリ、簡単なゲーム、簡単な組込みぐらいはやって比較的幅広くやってる方だと思うけど、
工場ドメインの様々な勉強が必要そうだから、PLCは出来る気がしないもの。
2023/02/12(日) 20:36:50.89ID:sJAtAfk80
俺たちゃお気楽プログラマ~♪
890デフォルトの名無しさん (ワッチョイ 1eaa-bF0w)
垢版 |
2023/02/12(日) 20:42:26.52ID:Uw3AYzIK0
>>888
知り合いが大型航空機やってるけど
テスト時にプログラマーも乗せられるらしい
強迫性障害向きの仕事って言ってた
891デフォルトの名無しさん (ワッチョイ de33-t1ev)
垢版 |
2023/02/12(日) 21:34:38.08ID:PLqOcqYy0
>>890
そんなわけないよね
2023/02/12(日) 21:52:17.13ID:TwTNSw9k0
機長「オイ、プログラマ。バグだ、直ちに直せ!」
プロ「ラジャ」
2023/02/12(日) 22:04:14.78ID:W1IQdKYb0
マルビナス諸島のときは現地でデバッグしていた奴が報道されていたな
2023/02/12(日) 22:04:45.92ID:lyxlstJm0
組込やってたけど大したトラブルも起こさずにやり抜けたわ
せいぜい客先の担当者のクビが飛んだ程度で行政絡みの面倒までは俺は無かった
895デフォルトの名無しさん (ワッチョイ de33-t1ev)
垢版 |
2023/02/12(日) 22:30:05.80ID:PLqOcqYy0
問題が起こった時、普段はお客さんにごめんなさいするか、お客さんがプレスリリースでごめんなさいするかの範囲だったのに
問題が起こってるのを朝食食べながら見てたニュースで知った時は、速攻会社向かったわ
2023/02/12(日) 22:34:49.40ID:9/VmCJ800
組み込みでもCとかならいいけど、HDLだと死ぬよな
if i == 1 begin
 x = x + 1
 y = y + 1
end
とかで、上は実行されるけど下は実行されない(あるいは逆)なんてことがあって、
なぜなら上と下は別回路だからジッターやVthでi == 1の評価タイミングが
それぞれ別だと説明された時はめまいがしたよ
2023/02/12(日) 22:38:29.28ID:9pgH/Ado0
X線天文衛星もプログラマ乗せれば良かったのに
2023/02/12(日) 22:51:38.90ID:TwTNSw9k0
>>897
そうだな
次回、お前乗ってくれ
2023/02/12(日) 22:57:47.53ID:9pgH/Ado0
実際のとこ、人命がかかってないようなプログラムは
設計もコーディングもそんなにガチガチじゃないんだろうな
2023/02/12(日) 23:08:24.46ID:19IYgGC60
金融とかだと直接人命には関わらないけど損害が半端無いからレビューからガチガチにやる
2023/02/12(日) 23:29:33.29ID:AiZftOV60
金扱うと慎重になると思うやん
でもテキトーよ、テキトー
2023/02/12(日) 23:32:01.19ID:9pgH/Ado0
衛星打ち上げも結構かかったんだけどな
保険も入ってるだろうし、あんまり真剣にはなれなかったか
2023/02/12(日) 23:40:56.94ID:W1IQdKYb0
>>900
せやな by みずほ
2023/02/13(月) 00:05:31.10ID:G/muWx3/0
全銀ネット、富士通のメインフレームとCOBOLから脱却するそうだ
何が起こるかな
2023/02/13(月) 00:17:10.79ID:McPJ8/Gs0
あれ、要るの?
906デフォルトの名無しさん (ワッチョイ fb97-VNfR)
垢版 |
2023/02/13(月) 04:51:00.05ID:hJs7vHnO0
>>890
あるだろうね。その場でバグを治すのは無理だけど、モジュール同士の不整合で起きた問題を察知する能力は、作ってる側だから高いだろうし。
このモジュールのブレーカー切ってくださいと適切に指示できる可能性は高いと思う。
907デフォルトの名無しさん (ワッチョイ 0aad-OWHM)
垢版 |
2023/02/13(月) 05:25:35.75ID:/SHSFd6E0
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
2023/02/13(月) 09:39:03.78ID:B+jXOPo80
>>904
PythonでDecimal使用になるんだろうな。
2023/02/13(月) 09:40:38.79ID:xUTIVHTPp
pythonじややらない案件の話ばかりだなぁ
2023/02/13(月) 09:48:16.75ID:B+jXOPo80
JAVAとかって書いてあるからBigDecimal使用かもしれない。
2023/02/13(月) 09:57:09.49ID:McPJ8/Gs0
これでやっと年が4桁になるの?
2023/02/13(月) 10:24:49.88ID:TbP3vqk50
ガチガチのプログラム書くなら型と再代入不可を徹底してないとな
PyPyのRPythonとか
913デフォルトの名無しさん (アウアウウー Sa4f-STvZ)
垢版 |
2023/02/13(月) 15:26:22.65ID:B5eUc1dfa
そのためのedgeなんだが
そもそも実行って言ってる時点でアレGe
2023/02/13(月) 19:14:50.22ID:LnNS0iyY0
Pythonにインターフェースはありますか? C++の純粋仮想関数のようなもの。
2023/02/13(月) 19:33:32.16ID:1xRe7ytN6
できるけどいくらでも書き換えられるので無意味
結局人間が気をつけて書くしかない
2023/02/13(月) 19:58:27.85ID:LnNS0iyY0
ありがとうございます。
Python Interfaceで検索してみたらいろいろ出てきました。
ただ、PythonでInterface必須なクリーンアーキテクチャーやSOLID原則で検索してもこれというものが出てきません。
Pythonでは、無理なんでしょうか?
2023/02/13(月) 20:04:04.83ID:eVQtswx1a
>>885
Rのggplot2に比べたらぐちゃぐちゃやな
ggplot2の設計の美しさは衝撃

>>916
typingモジュールのProtocolを調べてみてください
2023/02/13(月) 20:40:14.69ID:McPJ8/Gs0
昔はR使ってグラフ描いてた
難解ではあるけど判れば納得できた
2023/02/13(月) 22:32:08.83ID:8gYboHYF0
スレ的に、pyscriptってどんな感じですか?
発表時は結構期待してたんだけど周囲では特に盛り上がってる話を聞かないので。
2023/02/13(月) 22:36:48.62ID:GLlRj+3F0
frontendのよいフレームワークが出るまでは盛り上がらなさそう
そもそもユーザ層が違う
921デフォルトの名無しさん (ワッチョイ 1e46-kPwk)
垢版 |
2023/02/14(火) 03:38:56.63ID:hQspEMKA0
>>919
そんなのあるんだ。
JavaScriptがJavaと違うように、PyScriptもPythonと違い、Pythonの感覚で書くとバグったりするのかね。
2023/02/14(火) 10:57:52.26ID:FeINB5ty0
HTML内にPythonコードを書いて実行できるPyScriptで遊んでみた!
https://zenn.dev/astrologian/articles/a76ce13d4426ec

実行速度が遅いのが問題らしい。
2023/02/14(火) 20:52:07.30ID:JeIKhMV2a
昔から似たようなコンセプトでbrythonがあるけど使っている人を見たことがない
924デフォルトの名無しさん (ワッチョイ 8a7f-wyQN)
垢版 |
2023/02/14(火) 22:55:42.96ID:xNbPR4cy0
Anacondaの仮想環境なんですが、
ApacheのhttpサーバーからAnacondaで作った仮想環境を呼び出すにはどうしたらいいんでしょうか?
925デフォルトの名無しさん (ワッチョイ de33-t1ev)
垢版 |
2023/02/15(水) 00:43:19.53ID:m6ERJ1kZ0
>>924
mod_wsgi
2023/02/17(金) 14:22:57.45ID:UR/8oyNM0
:= のnotって何?
927デフォルトの名無しさん (ブーイモ MM3b-OWHM)
垢版 |
2023/02/17(金) 14:54:45.34ID:KaUoAYGGM
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
2023/02/18(土) 10:58:06.97ID:Xvqc+C2d0
代入して、その値をbooleanとして評価して、真偽を反転
2023/02/18(土) 12:59:50.90ID:Kp5Ga40h0
代入して否定したいのか否定を代入したいのか
2023/02/18(土) 13:09:47.13ID:JHTb03FG0
代入されたものに対して処理をしたいけど、
ネストが深くならないように成立しない場合を先にはじきたい
2023/02/18(土) 13:18:26.79ID:qMhvXcXD0
いずれにしても可読性が落ちるな
分けて書いたほうがいいかも
932デフォルトの名無しさん (ワッチョイ cbaa-t9pH)
垢版 |
2023/02/18(土) 14:34:50.38ID:fKLgEVwO0
呼び出しが重いから代入して使いたい
ガード節を置きたい ときは
分けて書いた方がいい。読みやすい

value = func()
if not value: return
if value > _max: return

以下処理系
2023/02/18(土) 15:49:32.67ID:H8UbSm360
ずっとそういう立場だったのに3の途中から迷走してる
4になる頃には現代的に整理されてつまらん言語になってそう
934デフォルトの名無しさん (ワッチョイ 0332-wFFf)
垢版 |
2023/02/19(日) 01:20:32.22ID:nNFGqM740
pandasのデータフレームの表示についての質問です
データフレームの各行の最小値を強調して表示したいと考えており、.style.applyメソッドを使っています
しかし.style.applyメソッドでは、インデックスやカラムのラベルに重複があると、

'`Styler.apply` and `.applymap` are not compatible with non-unique index or columns.'

というエラーが出てしまいます
あえてデータフレームのインデックスやカラムのラベルを重複させている場合、どのような方法が考えられるでしょうか?
2023/02/19(日) 03:06:11.59ID:owAZbnPUd
>>934
まずはお前の馬鹿頭を治す
2023/02/19(日) 03:29:13.01ID:lgdcqK5W0
割とマジでchatgptに聞けで終わってしまう時代だ
2023/02/19(日) 09:14:54.39ID:VeYBHi5gM
そんな馬鹿げたことを
教えて貰うまでボケーッと待つんだろうか??
自分で調べる事も出来ないなら
Excelでやった方が効率良さそう
2023/02/19(日) 09:44:11.66ID:3slf7lQG0
pandasのindexってかなりガンだよな
要らないことも多いし、無くても大抵どうにかできる
ぴったりはまると短く書けるけど、はまらない場合が邪魔すぎる

他との絡みでpandasでないといけない場合以外は、polarsの方がいいと思う
2023/02/22(水) 16:33:09.99ID:8cEw3aZd0
chatGPTで教科書問題を解かせた
-----------------------------------------------------------------------------
(x,y,z)のデータ列(82,97,163),(100,91,138),(125,79,138),(96,92,136),(99,92,140),(190,54,103),(186,57,121),(142,73,124),(95,94,145),(179,58,116),(139,76,141),(77,98,152)について
z=a*x+b*y+c
を最小二乗法でフィットした場合のa,b,cを求めるpythonのプログラムコードを示せ。
また、これらのデータ列と回帰式を、グラフに示せ。
-----------------------------------------------------------------------------
2023/02/22(水) 16:35:40.37ID:8cEw3aZd0
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# Define the data points as a numpy array
data = np.array([(82,97,163),(100,91,138),(125,79,138),(96,92,136),(99,92,140),
(190,54,103),(186,57,121),(142,73,124),(95,94,145),(179,58,116),
(139,76,141),(77,98,152)])

# Extract the x, y, and z data from the array
x_data = data[:, 0]
y_data = data[:, 1]
z_data = data[:, 2]

# Create a design matrix A and observation vector b for the least squares method
A = np.column_stack((x_data, y_data, np.ones(len(x_data))))
b = z_data.reshape(-1, 1)

# Calculate the coefficients (a, b, c) of the regression equation z = a*x + b*y + c using the least squares method
coefficients = np.linalg.lstsq(A, b, rcond=None)[0]
a, b, c = coefficients.flatten()

# Print the regression equation
print(f"Regression equation: z = {a:.2f}x + {b:.2f}y + {c:.2f}")
2023/02/22(水) 16:36:01.41ID:8cEw3aZd0
# Plot the data points and the regression plane in a 3D plot
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x_data, y_data, z_data, c='black', label='Data')
xx, yy = np.meshgrid(np.linspace(np.min(x_data), np.max(x_data), 10),
np.linspace(np.min(y_data), np.max(y_data), 10))
zz = a*xx + b*yy + c
ax.plot_surface(xx, yy, zz, alpha=0.2, color='red', label='Regression plane')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.legend()
plt.show()
2023/02/22(水) 16:38:50.98ID:it1Xseb70
https://paiza.io/ja/projects/new
2023/02/22(水) 16:39:00.40ID:8cEw3aZd0
実行結果はこれ

https://imgur.com/oCKeFIQ
2023/02/22(水) 16:51:09.36ID:FUWiOSXc0
https://i.imgur.com/oCKeFIQ.png
2023/02/22(水) 17:17:54.25ID:KIOkNBej0
英語と日本語の切り替えが出来てるな
非日本語圏から引っ張ってきたコードっぽいから
コメント中はさすがに英語のままだけどな
946デフォルトの名無しさん (ワッチョイ cd7f-rAts)
垢版 |
2023/02/22(水) 20:15:58.88ID:hTf83RXL0
解答例とほぼ同じコードなのに時間内に何回やっても処理が終わらなくて
手元でも異様に時間かかるのなんでかわからなくて数時間悩んだけど
使わん関数定義削除しただけで爆速で終わったわ

なんで使用しない関数で遅くなるのかわからん
残しておかないと使いまわせないじゃないか
2023/02/22(水) 20:25:59.84ID:wNuHTQWsd
インタプリタの宿命
2023/02/22(水) 20:29:17.51ID:ZZubk8190
>>946
https://docs.python.org/ja/3/library/profile.html
まちがえてオーバーライドしてたとかロックとか
副作用あったんだとおもうよ
2023/02/22(水) 20:29:22.37ID:aZ0d5T8Y0
残しておきたいならコメントアウトしときゃ良いだけやろ
950デフォルトの名無しさん (ワッチョイ 4b33-/+FQ)
垢版 |
2023/02/22(水) 21:19:36.29ID:iyWP0Wxq0
chatgptは日本語以外の情報が少ない事柄についてはだいぶよわい
https://pastebin.com/00CfEssp
2023/02/22(水) 21:24:52.14ID:vGcUnMzNp
みんなグローバル変数なのが悪い
2023/02/25(土) 02:32:35.91ID:fRKjwVtd0
変態的なコード読みたい
2023/02/25(土) 06:49:02.84ID:6wG5CouS0
>>952
fizzbuzz golfでも愉しめばいい
2023/02/25(土) 07:25:36.17ID:ON3K6+Cw0
これってPython案件だけどどんな感じ?
https://i.imgur.com/OJd0qP3.jpg
https://i.imgur.com/P0ENxQF.jpg
2023/02/25(土) 07:33:33.88ID:6wG5CouS0
お前の胸毛次第
2023/02/25(土) 11:21:54.65ID:+S97f7TQr
早々に全身の毛がツルツルになってしまうだろうから、
それをも上回る毛髪育成能力が試されるであろう
2023/02/25(土) 11:28:14.58ID:ABmpaAZG0
彡 ⌒ ミ
(´・ω・`)
2023/02/26(日) 01:52:43.30ID:K+LJZ5aa0
グローバル変数を変更したいときは

a = 0
def subA():
 global a
 a = 10

とかってglobalを付けるものだと思いますが、
リストの時はglobalは必要なのでしょうか

x = []
def subB
 x.append(100)

とやると、subB()内でグローバルのリストxの値が更新できますが
これは仕様なのでしょうか
2023/02/26(日) 02:33:13.25ID:wqhIU5p60
このへんは後方互換からくる癌なので納得しにくいけど、シンプルに
a = 10 # aを新規作成
x.append(100) # xが見つからないからエラー
だけの状況とくらべるとわかるかも
https://docs.python.org/ja/3/reference/executionmodel.html#naming-and-binding
https://docs.python.org/ja/3/reference/executionmodel.html#resolution-of-names
960デフォルトの名無しさん (ワッチョイ 4597-UlDE)
垢版 |
2023/02/26(日) 08:07:28.89ID:Lhu00T1Z0
>>958
x.append(100)はPython的には変更になってない、と言うのが正しいかな(変更の定義にもよるが)
ミュータブルオブジェクトの状態が変わるだけなのはOK、変数に代入されているオブジェクトのidが変わるわけじゃないから。ってことになるかな。
タプルだと当然のことながらそれは出来ない。
2023/02/26(日) 12:46:38.67ID:ivVZ3cSu0
>>958
subAの時はglobal aが無ければsubA内のローカル変数としてaが確保され、10が代入される
subBの時はローカル変数xは存在しないため自動的に外側のスコープxと解釈され、グローバル変数のxに対しappendが行われる
962デフォルトの名無しさん (ワッチョイ 76aa-5yMf)
垢版 |
2023/02/27(月) 13:37:34.91ID:/aqCHt/10
z:int = 0
中略

def fuck(n: int):
__global x, y
____if n == z:
______x += 1
____else:
______y += 1


参照しかしなくてもglobal x, y zとすべきですか
def fuck(n: int, z=z)がいいですか
このままでいいですか? グローバル変数から距離があるとzってなんやねんみたいになりませんか
963デフォルトの名無しさん (アウアウエー Sa02-mjxs)
垢版 |
2023/02/27(月) 17:19:24.05ID:3MgFEhuya
そもそも例だからzなんだろうけど
zなんて名前をglobalで造って参照とか間違ってる
参照だけなら付ける必要はないが
あとxもyも初期化せずに使うのも嫌
暗黙に期待するな
2023/02/27(月) 19:18:22.22ID:VSd9S9hu0
global使ったら負けだ
アプリクラスをまず作れ
2023/02/27(月) 19:32:44.15ID:UQ+3DsEX0
アクセサにしとかないと収集つかなくなるなら分かるけど
スコープの話なら同一モジュールなんだしそう変わらん
2023/02/27(月) 20:00:30.43ID:mnnddEHh0
アクセサ、明日の天気は?
2023/02/27(月) 20:22:09.04ID:YZpHH4fN0
明日は晴れか雨、所によっては曇りでしょう
968デフォルトの名無しさん (アウウィフ FF39-mjxs)
垢版 |
2023/02/28(火) 12:15:16.49ID:xNmaYcy8F
再接続でIPだけ変更して連投がバレたときの言い訳の仕方は?
2023/02/28(火) 14:18:51.50ID:rfWQBJAf0
俺さっきJK娘とク○ニ○○マンしてきた
娘は凄く満たされた様な顔してた

娘が連れてきた友人達にも大好評でもっと欲しいっておねだりされた
2023/02/28(火) 15:34:14.75ID:groBZKNj0
クイニーアマン
971デフォルトの名無しさん (アウアウウー Sa39-TB2p)
垢版 |
2023/03/01(水) 06:02:07.65ID:sZY5tZ90a
ChatGPTのおかげでコーディングがはかどる
2023/03/02(木) 00:17:23.95ID:7V/uO2E30
使ったことないライブラリとかググるより聞いたほうが早いよね
それに慣れるとヤバい気がするのでほどほどにしてるけど
2023/03/02(木) 02:05:32.41ID:2hkvli5V0
ググって不安になるより配布元か同梱マニュアルみるよね
ちゃんとdocstring書いてるのも多い
974デフォルトの名無しさん (スププ Sdfa-mjxs)
垢版 |
2023/03/02(木) 10:29:17.43ID:yJHlyUH+d
971
どう観ても一手間も二手間も遥かに無駄に掛かるのに
何が嬉しくてやってんの
2023/03/02(木) 11:02:48.28ID:oaDYv46z0
https://i.imgur.com/ZxaMsH3.png
https://i.imgur.com/mxl0I51.png
https://i.imgur.com/8RPGczu.png
こういうことができるのに、一からコード書くのは馬鹿らしい
2023/03/02(木) 11:07:04.91ID:hBCvWFKEp
>>975
こんなコード、チャットするより、コード書いた方が速くね?
2023/03/02(木) 11:34:45.52ID:oaDYv46z0
仮定や前提条件があやふやなのにコード書けんだろ
データ仕様だって適当に作ってくれるんだぞ そのまま使えることは少ないが
2023/03/02(木) 11:36:58.27ID:oaDYv46z0
職業プログラマで仕様書もあるんなら
そのまま丸投げして作らせてみるのも手だぞ
使えるかどうかは知らんが
2023/03/02(木) 12:30:31.32ID:vaaLx0vL0
誰も気づかなかった仕様書の矛盾が指摘される
980デフォルトの名無しさん (ワッチョイ 4597-UlDE)
垢版 |
2023/03/03(金) 01:54:05.56ID:JgMrEUad0
コード書いた方が考えられるタイプは、日本語で書いてコードに変換されるのはもどかしいと思う
自分はもやもやっとした感覚から直接コードが書けちゃうタイプなのでChatGPTは使わないけど
ただ大規模開発では通用しないやり方だなとは思う
981デフォルトの名無しさん (ワッチョイ 7646-BmO7)
垢版 |
2023/03/03(金) 02:31:39.49ID:kOgX9HWa0
人生に必要な知恵はすべてChatGPTで学んだ
2023/03/03(金) 05:13:55.42ID:Utd2ywhQ0
数行のコードをまとめて説明してくれば
可読性は大いにはかどる
いわゆる言語による段階的詳細化が可能になる
2023/03/03(金) 05:38:49.34ID:9LvEfLA40
>>980
丸投げは無理だが仕様書はかなり書けると思うわ

大前提としてBotは人間より賢い と思った方がいいぞ
Botと毎日会話して得た結論だ

難点は人間があいまいだと Botが勝手に補完してありそうな仮定でどんどん前に進めてしまうことだ
だからとんでもない方向に行くことがよくある
人間の方が馬鹿なんだわ 残念ながら
2023/03/03(金) 05:43:29.69ID:9LvEfLA40
-------------------------------------
PH: カント―ルの対角線論法を証明せよ
-------------------------------------
# 結果
https://i.imgur.com/TANC8T1.png
https://i.imgur.com/MKDvb64.png


chatGPTでもこの程度のことはできるんだぞ
BINGの方がもっと凄いらしいが
2023/03/03(金) 05:51:37.58ID:9LvEfLA40
>>980
あなたはまだ若い(良い意味で)
説教臭くてすまないが、
日本語で文章に整理して設計スキルを上げることも考えた方がよいと思う
年取っていくとコード思考だけじゃいずれ行き詰まる
不快にしたのなら謝るが悪意はない
2023/03/03(金) 07:40:06.81ID:qNIm5quQ0
何で口調変えて同じ相手に連投してるの気味悪い
2023/03/03(金) 08:52:53.90ID:9LvEfLA40
Botで検証してみた 
あなたのいうとおりだった、悪かったな

---
#1 記事1
>>983
#2 記事2
>>985
---
記事1と記事2に対して次のようなコメント#3があった。

#3「何で口調変えて同じ相手に連投してるの気味悪い」

#3のコメントの妥当性を述べよ

---
##Botの回答
#3のコメントは妥当であると考えられます。同じ相手に連続してコメントを投稿することは、その相手を不快にさせる可能性があります。また、コメントの口調を変えることは、相手を混乱させたり、攻撃的な印象を与えたりする可能性があるため、注意が必要です。コメントを投稿する際には、相手の立場や感情に配慮し、丁寧な言葉遣いを心がけることが望ましいでしょう。
2023/03/03(金) 09:30:25.74ID:xsLfpgnT0
>>984
全然証明になってなくないか
989デフォルトの名無しさん (アウアウエー Sa02-+Vzh)
垢版 |
2023/03/03(金) 09:38:04.82ID:oC7cFOXya
>>983
>Botは人間より賢い

違う
Botは>>983より賢い
これだろ
2023/03/03(金) 10:37:55.69ID:9LvEfLA40
Botともっと会話したほうがいいな
雑な質問すると原則的な回答しか貰えないが
専門性上げてくとどんどん本気で答えてくれるぞ

万能とは言わんし、よく間違いもするが
人間よりはずっと賢い

大学院卒クラスで自信があるなら
自分の専門分野でレベル上げて質問してみればいいよ
2023/03/03(金) 13:34:40.25ID:udtWPwqVr
たまにちょっと誉めたりすると機嫌も良くなる
2023/03/03(金) 16:21:49.37ID:8x51iwRe0
ChatGPTの回答内容はググった検索結果なんだから
あんなもん使うなら最初からキーワード検索したほうが速いだろ
993デフォルトの名無しさん (ワッチョイ 1a8e-iutv)
垢版 |
2023/03/03(金) 16:32:35.87ID:LRst27vA0
>>981
頭悪そう
2023/03/03(金) 17:26:54.02ID:XgQJfBn+M
まぁココに質問するよりはよっぽど使えるよな
2023/03/03(金) 17:29:56.98ID:xsLfpgnT0
長らく定番だったぐぐれがChatGPTれに替わる日も近い
2023/03/03(金) 19:46:27.43ID:9LvEfLA40
「ちゃぷる」か「ちゃぐる」がいいと思うんだが
997デフォルトの名無しさん (アウアウウー Sa39-/C3M)
垢版 |
2023/03/03(金) 20:18:36.48ID:Fe/wPME4a
ちゃる
998デフォルトの名無しさん (アウアウウー Sa39-/C3M)
垢版 |
2023/03/03(金) 20:18:59.81ID:Fe/wPME4a
チャとる
2023/03/03(金) 20:27:01.70ID:ey6SUUDT0
質問良いですか
2023/03/03(金) 22:10:04.78ID:ZD9J8uVh0
どうぞ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 99日 0時間 30分 21秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況