X



Pythonのお勉強 Part69
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ 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
0002デフォルトの名無しさん (ワッチョイ ef33-stRS)
垢版 |
2022/11/24(木) 22:06:48.23ID:A6xfpKBe0
何か最後に?ついてるんやけど
0004デフォルトの名無しさん (アウアウウー Sa3b-kfYZ)
垢版 |
2022/11/25(金) 12:28:38.81ID:PV2ZG9bua
スレ埋めるだけの簡単なお仕事です
0007デフォルトの名無しさん (ワッチョイ b7da-Qvc3)
垢版 |
2022/11/27(日) 22:00:34.60ID:6go5tzEb0
LSTMで全部で1000あるデータの、1001期目の予測値を得るにはどうすれば良いですか
どのサイトを見ても検証期間中の予測値は得られても、それより先の予測を得る手段がいまいち分かりません
0011デフォルトの名無しさん (ワッチョイ bf89-t+XA)
垢版 |
2022/11/28(月) 12:15:33.61ID:2MZJX1kl0
Twitterのエゴサをpythonでできないかなと思って
seleniumでやってみたけど画面上は表示されてるのに
ソースには「JavaScriptを使用できません。」と出る
どうすりゃいいんや…
0013デフォルトの名無しさん (ワッチョイ bf89-t+XA)
垢版 |
2022/11/28(月) 15:59:10.98ID:2MZJX1kl0
実行して立ち上がったブラウザではTwitterが表示されている
つまりJavaScriptは実行されている
にもかかわらずpython内では実行されていないソースコードが表示される
JavaScriptが実行された後のソースコードを取得するにはどうするといいでしょうか?
0015デフォルトの名無しさん (ワッチョイ bf89-t+XA)
垢版 |
2022/11/28(月) 20:47:02.50ID:2MZJX1kl0
>>14
ありがとうございます。

オプションに「options.add_argument('--enable-javascript')」を追加したり
time.sleep(15)も追加しましたが駄目でした。
0016デフォルトの名無しさん (ワッチョイ bf89-t+XA)
垢版 |
2022/11/28(月) 21:06:19.85ID:2MZJX1kl0
JavaScriptが反映されていないのが原因だと思うので
そのあたりをもう少し調べてみます。
0019デフォルトの名無しさん (ワッチョイ d733-Z2Iz)
垢版 |
2022/11/28(月) 22:48:45.25ID:g0wreZ1J0
こういうの見て思うんだけど、スクレイピングの参考書ってAPIへの誘導ってないの?
プログラミングもWebの知識もない人間にスクレイピングだけでやらせようとするのってだいぶ罪深いと思う
それに、Webの勉強するのにスクレイピングやブラウザでアクセスしながらって相当な悪手だろ
普通簡単なWebサイト作りながらとか構築する側の立場で進めた方が効率いいし、それでもボリューム的に片手間で済むようなもんでもないでしょ
0022デフォルトの名無しさん (ワッチョイ 9f2a-+r4L)
垢版 |
2022/11/28(月) 23:02:43.25ID:v7hHcTqw0
>>19
全くもっておっしゃるとおりだと思うけど、静的なサイトだとBeautifulsoupとかで見よう見まねでできちゃったりするから素人さんにもキャッチーなのよね
http通信とは?とかWebサーバーの仕組みとは?から入ると素人は力尽きちゃう
0023デフォルトの名無しさん (ワッチョイ 1797-QUc+)
垢版 |
2022/11/29(火) 01:26:48.72ID:wVUySIDy0
>>19
APIはAPIで辛くない?認証不要APIとかだったらいいけど、大体お作法を調べるのに時間かかる。
スクレイピングは、HTML/CSSやったことあるならわかる感じがする。RPAみたいなものかなと。
いや逆にRPAこそGUIの知識いるしAPI整備してもらってやったらいいじゃんと思うんだけど、API整備の予算が付かないんだろうね…
0025デフォルトの名無しさん (ワッチョイ 9f2a-+r4L)
垢版 |
2022/11/29(火) 07:37:52.82ID:NO7HG1hV0
>>24
今どきのブラウザは巨大アプリの筆頭みたいなもんなので簡単にエミュレートできないのさ
なのでjavascriptで自分を書き換えたりするサイトをスクレイピングするにはブラウザそのものを立ち上げて外部からブラウザに今どう表示してんのと聞くほうがいいわけ、それがSeleniumという仕組み
0027デフォルトの名無しさん (ワッチョイ d72c-/LaG)
垢版 |
2022/11/29(火) 10:28:54.87ID:Zdiz5UrS0
アホがいきなり動的生成サイトにwhile無限アタックをしかけるまである
悪いのは無責任な企業系入門サイトと、ライブラリ豊富なpython
0032デフォルトの名無しさん (ワッチョイ ff63-odCL)
垢版 |
2022/11/29(火) 12:12:24.76ID:fkaofXgI0
>>25
単純化すると
ウェブブラウザみたいに、サイト開いてAPI叩いてデータ(JSONが主流になったね)拾って、
これをパースして個別データとして取り込んで、ってことだよね
これってウェブブラウザの振る舞いを模倣していることにならないのかな?
0033デフォルトの名無しさん (ワッチョイ d74f-emCW)
垢版 |
2022/11/29(火) 12:12:37.05ID:Rlb9t/Eq0
たいてい、スクレイピングの本には、図書館へスクレイピングして、
サーバーを落とした香具師が、業務妨害で逮捕された事件も書いてある。
だから必ず、契約してAPI を使うように書いてある

あくまで練習用に、自分のPC 内のウェブサーバーへアクセスして試すべき。
VSCode の拡張機能・Live Server で、簡単にサーバーを起動できる

そこに対して、curl, wget, Selenium Webdriver などで試す

基本的に、ほとんどのサイトは、5ch みたいに先にHTML を送っておいて、
その中で、Ajax(JavaScript)によって内容をサーバーへ取りに行くので、
Selenium で実際のブラウザを使って、wait しないと内容を取れないはず
003533 (ワッチョイ d74f-emCW)
垢版 |
2022/11/29(火) 12:26:22.23ID:Rlb9t/Eq0
山浦 清透

【作業工程フル公開】エンジニアが30万円案件の制作過程を公開
www.youtube.com/watch?v=tYbVl6N8oxI

これは、PHP だけど、
Udemy の山浦ぐらいの相当プロでも、1:5:42 の所で、
マイナビ求人をスクレイピング攻撃しているだろw

プロでも間違うから、なおさら素人なら、無限ループで攻撃し放題。
業務妨害で逮捕されるだけ

データベースに保存するなら、普通はPHPじゃなくて、Ruby on Rails を使う
0039デフォルトの名無しさん (ワッチョイ ff63-RPwI)
垢版 |
2022/11/29(火) 12:58:16.32ID:OkL5Yz/20
この障害は岡崎だけでなく、全国の図書館でも発生していたそうだ
朝一でサーバー再起動が業務となっていたところもあるそうだ
悪質なのは、この障害、原因を開発元が承知していたことと、
システム更新(もちろん有料)の口実にされていたこと
ハードの買換をさせられた図書館もある
詐欺事件とされてもおかしくはない
0042デフォルトの名無しさん (ワッチョイ d733-Z2Iz)
垢版 |
2022/11/29(火) 13:16:57.04ID:fQLmT73p0
>>32
逆に、人がAPIで提供されるjsonのデータ読めって言われてもきついでしょ
それと同じで人が読みやすいように作られてるWebのUIをソフトウェアにやらせるのは筋違いなんだよ
seleniumにしたって元々はJavaScriptのテストを走らせるために作られていて、誰かが作った仕様のはっきりしないWebサービスのUIを解析するためには作られてないと思うよ
今もそうだかは使ったことないからはっきりとはいえないけど
004333 (ワッチョイ d74f-emCW)
垢版 |
2022/11/29(火) 13:34:20.35ID:Rlb9t/Eq0
元々、Selenium Webdriver, Capybara などは、

Ruby on Rails の開発で、システムテストで実際のブラウザを自動操作して、
画面の動作を確認するためのツール
0044デフォルトの名無しさん (スップ Sd3f-8UFK)
垢版 |
2022/11/29(火) 14:04:13.09ID:AC1KYodjd
Ruby馬鹿がいつもの噓
0045デフォルトの名無しさん (ブーイモ MM8f-oElN)
垢版 |
2022/11/29(火) 14:04:43.85ID:sKS8alA2M
API使いたくないからスクレイピングするんだろ
何言ってんだか
0047デフォルトの名無しさん (ワッチョイ 9f2a-+r4L)
垢版 |
2022/11/29(火) 15:17:30.94ID:NO7HG1hV0
>>32
おっしゃる範囲では模倣してることになるよ
しかしPythonのライブラリでブラウザの全部の機能を模倣するのは難しいので、Javascriptをゴリゴリ使うようなサイトではブラウザを模倣するんじゃなくてブラウザにレンダリングを外注するのよ
0052デフォルトの名無しさん (アウアウウー Sa5b-LL8a)
垢版 |
2022/11/29(火) 19:30:41.60ID:GC2yOS5aa
>>48
集合ってセット型のこと言ってるよね?
どんな職種かにもよるけれど
俺の働いてる環境だとfor文と同じ頻度で使う感じかな
集合ってすごく便利でさ
重複削除するのも排他的な処理にも使えるのでめちゃめちゃコスパいいんだよ
0055デフォルトの名無しさん (ワッチョイ 9f47-NCR5)
垢版 |
2022/11/29(火) 19:46:06.06ID:lUjN289S0
重複を削除したい、というタイミングで集合に入れて戻す
とかならそういう関数だとみなせるので必要が生じたら使う、でいい
ではなくて、最初からずっと集合で持ち続けるような用途があるかどうか
0056デフォルトの名無しさん (ブーイモ MMfb-QUc+)
垢版 |
2022/11/29(火) 20:21:39.71ID:SFyPOz/XM
>>55
普通にある。
アンケートの選択肢の一覧がわかっていないときに選択肢集合を取り出すのに使ったり、
スケジュールを調整するときに、日程集合aと日程集合bの積集合が空かどうかでスケジュールが被っていないかを確認したりなど、
入れるときから集合にしておいた方がいいケースはいくらでもあるよ。
0057デフォルトの名無しさん (ワッチョイ 9f47-NCR5)
垢版 |
2022/11/29(火) 20:38:01.11ID:lUjN289S0
重複してたら集合に追加する時にはじかれる訳だけど、
それに関してはケアしなくていいの?
無視されてしまったスケジュールの人が発生しそうだけど

勝手に重複が削除される仕組みはどう考えても危険で、
うまく使える局面が思いつかない
0059デフォルトの名無しさん (ワッチョイ 9f47-NCR5)
垢版 |
2022/11/29(火) 21:10:31.21ID:dP4707zz0
s1 = ["2022-12-01", "2022-12-02"]
s2 = ["2022-12-02", "2022-12-03"]
print(set(s1) & set(s2))

これでも同じなんだよな
&演算が強力だから使いたいだけで、集合で保持しておくメリットが無い
0068デフォルトの名無しさん (ワッチョイ 1797-QUc+)
垢版 |
2022/11/30(水) 13:21:08.67ID:5wV2hx4y0
>>57
それをケアしたいならin演算子を使えばいいだけであって、setの根本的問題ではない。
そして、in演算子はlistとsetならどう考えてもsetのほうが速い。
もちろん、重複を許さないリストのバリデーションなんかにも使えるよね。
0069デフォルトの名無しさん (ワッチョイ 1797-QUc+)
垢版 |
2022/11/30(水) 13:29:48.45ID:5wV2hx4y0
リストで持っておけばいいじゃん、必要なときにsetに変換して処理するから、という人は、計算量なんかを考えてみるといいよ
計算量無視するなら62のコードでいいじゃんってことになっちゃうしね。
まあ、Python遅いから計算量を減らすようなコードを書くことに説得力がないというのはそうなんだけど、
結局普段からそういう練習していないと高速化したくてC++に一部実装を変更したときに速いコード書けないから。
もちろん、リストで作っておいてsetに変換する方がいいケースもあるよ。
PandasのDataFrame,Seriesのインデックスのところで演算するのなんかも、集合的な演算で行なっているのだし、慣れておいて損はないと思うが。(実態はboolのSeriesだけど)
0081デフォルトの名無しさん (ワッチョイ 775f-4gln)
垢版 |
2022/12/01(木) 17:07:42.57ID:NDzBgIvm0
モチベーションのためにpythonで
awsのサーバーレスいじってる
別に何かを作るつもりはないけど
あー、こうやってユーザーの入力を受け取るのね、
とかデータベースへの書き込みをいじってる
0084デフォルトの名無しさん
垢版 |
2022/12/03(土) 15:38:28.64
pandasで思ったのですが

import pandas as pd
df=pd.DataFrame({"A":range(0,10,1),"B":range(10,20,1),"C":range(20,30,1)})
df["A+B"]=df["A"]+df["B"]
df["A+C"]=df["A"]+df["C"]
print(df)

これってA+BとA+Cで計算量はO(2n)になっちゃいます?よね
だったら

df["A+B"]=0
df["A+C"]=0
for i in range(len(df)):
 df["A+B"].iloc[i]=df["A"].iloc[i]+df["B"].iloc[i]
 df["A+C"].iloc[i]=df["A"].iloc[i]+df["C"].iloc[i]

こうすればO(n)だと思うのです?がこういう風に書かないのは視認性を優先しているからでしょうか?
0086デフォルトの名無しさん (ワッチョイ 4697-KDKu)
垢版 |
2022/12/03(土) 16:38:55.55ID:YuLtkiXA0
>>84
どっちもO(n)だし実際に実行してみると後者の方が遅いと思うよ
0088デフォルトの名無しさん
垢版 |
2022/12/03(土) 17:15:26.84ID:xZYRIIQ3
>>86
なるほどそうなんですね
前者だと、len(df)の回数だけループしてdf[""]に結果が代入される、をdf[""]=の行だけ繰り返すようなイメージで
例えばlen(df)が10万あったとしたら、10万ループ後にまた10万ループ…、みたいなことかと思ってました

実測してみました(合っているかどうかわかりませんが
かなり遅くなりましたね

import pandas as pd
import time
df=pd.DataFrame({"A":range(0,10000,1),"B":range(10000,20000,1),"C":range(20000,30000,1)})
start=time.time()
df["A+B"]=df["A"]+df["B"]
df["A+C"]=df["A"]+df["C"]
end=time.time()
print(end-start)

start=time.time()
df["A+B"]=0
df["A+C"]=0
for i in range(len(df)):
 df["A+B"].iloc[i]=df["A"].iloc[i]+df["B"].iloc[i]
 df["A+C"].iloc[i]=df["A"].iloc[i]+df["C"].iloc[i]
end=time.time()
print(end-start)

#0.0027747154235839844
#5.960754871368408
0089デフォルトの名無しさん (ワッチョイ 4697-KDKu)
垢版 |
2022/12/03(土) 17:44:15.36ID:YuLtkiXA0
>>88
C/C++言語で似たような処理をうまく実装すれば、基本的にはどっちの書き方でもそんなに違わないのだけどね。
結局は行数×2の足し算をしなければいけないのは、どうループを回そうが同じ
(厳密にはCPUのキャッシュに載る書き方をするかどうかとかで性能は違うかもだけど)

Pandasの場合、DataFrameは、実は列ごとのデータであるSeriesをくっつけてるだけで、
列と列を足して新しいSeriesを作るような演算は、Series同士の演算ということで専用のCのコードが走ってロスが少ない。
一方1行ごとにPythonのforループで値を取り出して出すと、Pythonの遅いループのせいで遅くなる。
NumPyでもPandasでも、ブロードキャストせず値を一個一個取り出すような処理はめちゃくちゃ遅くなるからどうしようもない場合以外避けるべき。
0101デフォルトの名無しさん (ワッチョイ 972c-JkWk)
垢版 |
2022/12/04(日) 10:53:22.33ID:AtzUGoNp0
>>97
もうちょっと詳しく聞きたい
0102デフォルトの名無しさん (スプッッ Sd2a-jzPi)
垢版 |
2022/12/04(日) 11:16:52.00ID:1/Hu21BBd
ChatGPTがやばい

たとえばネットで公開されてるプログラムのソースコードを渡したらめちゃくちゃ詳細に教えてくれる
自分はpython初心者だけど、理解できるレベルに噛み砕いて説明してもらえる

ここまですごいと「プログラム勉強する意味とは?」と不安になってくる
本当に「AIにやらせりゃいい」の時代が来る
これから人類は、仕事の価値が安すぎてロボットやAIにやらせないような、隙間の部分を仕事にしていくしかないかも

金銭的な資産がない状態から、技術を通して一定の財産を築いていくことは難しくなっていって
資産がある人間は苦労もせずさらに財産を増やせる、という社会構造だけが残ってしまうのでは
0104デフォルトの名無しさん (ワンミングク MM3e-lQrs)
垢版 |
2022/12/04(日) 13:23:26.47ID:0ZfK2JLIM
>>101
自分はtkinterをクラス化して使ってるんだけど
ウィジェットを管理するクラスと、1つの変数に対応した複数のウィジェット持つフレームクラス(ラベル、インプット、ボタン)の2種類があって
管理クラスにウィジェットのタイプと変数名を渡せば、ウインドウ内に配置して、変数との同期を自動でやってくれるって感じにしてる
管理クラスは辞書で変数名をキーに、フレームオブジェクトを値として持っていて
updateを呼び出すとevalとexecをループで回して同期を行う感じ
色を変えたり、タイトルを変えたりするときは変数名をハンドル代わりにしてアクセスする
変数には共有のモジュール変数を使う必要があるけどね
0107デフォルトの名無しさん (アウアウウー Sa3a-7Zdh)
垢版 |
2022/12/04(日) 14:45:10.78ID:XaoAEs7Da
コンパイルというのが機械語という意味なら
むしろPHPはJITなので1番してる
Rubyは最近YJITというのが入ってデフォルトでオフだが
オンにするとJITが走る
pythonはJITはしてないがVMの中間言語にコンパイルして実行している
perlもJITなしのVM中間言語にコンパイル
0115デフォルトの名無しさん (ワッチョイ 9630-RX5i)
垢版 |
2022/12/04(日) 17:56:55.17ID:AMZRvu8s0
>>104
時間の問題でしょ
アメリカでは自律のタクシーが稼働しているぐらいだし
時間の問題で労働人口は大幅に減る

その前に役所系の手続きをなんとかして欲しいけど
引っ越した時のナンバープレート交換とか
1番並んで、10番並んで、15番並んでと、、延々と指示されたところに行って並んで
書類提出して待つってことを朝からやり続けてプレート付けて帰るまで1日かかったけど
中国人が途中でキレて「お前いくらもらってるんだ?すぐ出来ないのか!」とか怒鳴ってたけど
もうあり得ない
0121デフォルトの名無しさん (ブーイモ MMba-yU1l)
垢版 |
2022/12/08(木) 00:31:24.99ID:QpDPt4dNM
Lisp、Prolog、Haskell
近いようで遠いRubyやJavaScriptも少し潜れば驚くかも
0126デフォルトの名無しさん (ワッチョイ 9630-RX5i)
垢版 |
2022/12/08(木) 09:33:08.99ID:448yHz6S0
>>117
意識はあるけど、初めて書き込むので
話題が変わるまで、様子を見ようと思って、、、

しばらくして、、いきなり違うIDで連投に近い形で2レス入って、、
またしばらく空く感じか、、、

よくあるパターンだったな
0129デフォルトの名無しさん (ワッチョイ 1666-qI7H)
垢版 |
2022/12/08(木) 11:17:00.51ID:1SDiWL4a0
そんな未来は前から見えていたけど、予想よりも早く来た

技術の進歩は加速度的に進むことをいつも忘れていて、
この感じで行けば、でつい推測してしまって、もうできたのかと驚く
AIは特にそう
0130デフォルトの名無しさん (ワンミングク MM3e-lQrs)
垢版 |
2022/12/08(木) 11:25:47.13ID:4UfRv5L5M
ChatGPT実際使ってみたら分かるけど
ニッチな要求にはまるで駄目
所詮は自然言語処理AIでしかないよ
そう考えたときに必要なくなるのはプログラマーではなく"文系"だということが分かる
0133デフォルトの名無しさん (ワッチョイ dfad-9F0H)
垢版 |
2022/12/12(月) 12:10:56.90ID:oLi82JVG0
理系は論文書いて博士号取って
研究者として、
悠々自適の人生だからね。

たまにFラン理系のバカのクスがIT関連の
仕事してるそうだが
恥ずかしいから理系と言わないで欲しいよね。

IT関連の仕事は文系の仕事だから笑笑
0135デフォルトの名無しさん (ワッチョイ bf66-WhVq)
垢版 |
2022/12/12(月) 14:14:55.12ID:eOEB7iLN0
そういう国もあるだろうけど、日本では研究職は目指さない
修士まで取ってメーカーに入る
就職活動とかしなくてもリストから選んで入れる
その後は、学部卒よりは少し高い給料からスタートする普通の会社員
0137デフォルトの名無しさん (ワッチョイ c75f-Sjqm)
垢版 |
2022/12/12(月) 15:21:57.13ID:tgEgCWEL0
プログラミングとかやりたい人は
自分の書いたコードで世界を変えたかったり
ビジネスたちあげてバリバリ稼いだり
したい人達だと思ってたから
かなりショックだわ
0139デフォルトの名無しさん (ブーイモ MMff-jxuj)
垢版 |
2022/12/12(月) 17:43:09.27ID:44htA5bGM
仕事がなくなるのは、理系文系というより、事象を抽象化してモデリングする能力のない人という気がするけどな。
適切な抽象化は現実世界の理解なしには成り立たないから、現実世界にエージェントを持たないChatGPTではなかなか出来ないことだと思う。
もしできるようになったらそれこそシンギュラリティだと思う。
0140デフォルトの名無しさん (ワッチョイ bf66-WhVq)
垢版 |
2022/12/12(月) 18:03:28.13ID:eOEB7iLN0
この作業はマニュアル書けば他の人に依頼できるな
と思えるような仕事はみんなAIでもできる

日本の雇用はわざわざ高度な能力が要求される仕事を減らして、
誰でもできるタスクにブレイクダウンしてしまったので、今後一気に空洞化する
0144デフォルトの名無しさん (ワッチョイ 7f30-u86g)
垢版 |
2022/12/12(月) 23:48:12.51ID:bEKuFd6N0
DeepMindが開発したAIの「AlphaCode」がプログラミングコンテストで「平均」評価を獲得
gigazine.net/news/20221212-competition-level-code-generation-alphacode/
0146デフォルトの名無しさん (アウアウウー Sa6b-ROsr)
垢版 |
2022/12/13(火) 09:49:13.62ID:f4PSgE9xa
一番やばいのは単純コーダーよりもむしろ、自分ではプロダクト作れない自称AIエンジニアやデータサイエンティストの類だと思うけどね
ある意味一番汎用AIの影響を直接受けるわけだし、もともとアウトプットの品質に直接的に責任を持たずにプロダクトサイドに丸投げだから問題なくAIで代替できてしまう
コンサルできない奴は早晩詰むよ
0147デフォルトの名無しさん (ワッチョイ bf66-WhVq)
垢版 |
2022/12/13(火) 10:18:46.30ID:iw6m1jKz0
そうか?
単純に下から順番にAIに置き換わっていくと思うけど

修行が必要な仕事が機械化されていく
修行でそれぞれが同じテクニックやノウハウを体に叩き込むプロセスが不要になる
0149デフォルトの名無しさん (ワッチョイ 672c-NPZy)
垢版 |
2022/12/13(火) 12:18:39.32ID:dwUU8HKp0
l = ['x', 1, 2, 3, 'x', 4, 5, 'x']

ll = [[1, 2, 3], [4, 5], []]
みたいに、区切り文字間でリスト分割ってどうやったらいいですか?
0154デフォルトの名無しさん (JP 0Hdb-NPZy)
垢版 |
2022/12/13(火) 17:32:35.97ID:nQGEQQWFH
>>150
あら~

>>153
すいません書きミス
[[], [***], [***], []]で合ってます

ちな最終的にほしいのは
[[***], [***]]だけです
区切り文字区間かつ有要素リストです
values =[]
temp = []
for i in l:
でゴリゴリは書けます
0155デフォルトの名無しさん (ワッチョイ 7f33-3TNT)
垢版 |
2022/12/13(火) 19:36:48.06ID:ixSZ5WuR0
l = ['x',1,2,3,'x',4,5,'x']
ll = ''.join(map(str, l))
ll = ll.split('x')
ll = list(filter(None, ll))
0156デフォルトの名無しさん (ワッチョイ 7f33-3TNT)
垢版 |
2022/12/13(火) 19:38:28.29ID:ixSZ5WuR0
l = ['x',1,2,3,'x',4,5,'x']
ll = ''.join(map(str, l))
ll = ll.split('x')
ll = [x for x in ll if x]
0157デフォルトの名無しさん (ワッチョイ 2797-jxuj)
垢版 |
2022/12/13(火) 20:01:21.70ID:GoEkhVMn0
itertoolsにありそうだなと思ったらやっぱりあったよ

https://stackoverflow.com/a/15358422
0159デフォルトの名無しさん (ワッチョイ 877d-NPZy)
垢版 |
2022/12/13(火) 21:14:51.23ID:9xNtAiBx0
itertools.groupby
more_itertools.split_at
じいおぼえた
0161デフォルトの名無しさん (ブーイモ MM8f-jxuj)
垢版 |
2022/12/13(火) 22:43:21.73ID:OZR75EB8M
>>160
トリッキーと思うなら愚直な方法でいいんじゃないかな。
バカにしてるわけではなく、どこまでがリーダブルと思うかっていう個人の線引きの問題かなと思うから
でも、標準ライブラリに〇〇型限定ならあるのに、というものは大体itertoolsとかmore_itertoolsとかtoolzにある印象
0162デフォルトの名無しさん (ワッチョイ 877d-NPZy)
垢版 |
2022/12/13(火) 23:21:41.02ID:9xNtAiBx0
区間抽出だからグルーピングで実現すると直感的ではないわね
llist = [list(y) for x, y in itertools.groupby(_list, lambda x: x == 'x')]

llist = list(more_itertools.split_at(_list, lambda x: x == 'x'))
よい
0163デフォルトの名無しさん (ワッチョイ dfad-KKgq)
垢版 |
2022/12/14(水) 01:32:07.45ID:kqHjkPOA0
みんなのPythonの参考プログラムで、作者の趣味を押し付けることの危険性を再認識した
キメぇとかそういうのもあるがそれ以上に

長年好きだった職場の女の子に振り向いてもらえないまま知らん奴と結婚されたのと、ももクロメンバーの結婚が重なるとかさ(´;ω;`)
0164デフォルトの名無しさん (ワッチョイ 672c-NPZy)
垢版 |
2022/12/14(水) 12:17:16.42ID:4cdDqMfv0
コード探せなかったんだけど
numpy.isnan()てどうやってnan判定しとるの?
というか(nan == nan) is False ってコンピウター的にはどういう実装?なん? nan?
0165デフォルトの名無しさん (ワッチョイ 2727-uQaE)
垢版 |
2022/12/14(水) 15:25:15.40ID:ehQRDkpX0
>>164
nanにもいろいろあるからなのかな
ちゃんと読める人がいたら僕も教えてもらいたい

https://ja.m.wikipedia.org/wiki/IEEE_754
> NaNにも符号や仮数があるが、分析以外の目的では使えない。fraction の先頭ビットで 「signaling NaN」と「quiet NaN」を区別する。
> NaNと無限大はexponentフィールドが全て1である。
0166デフォルトの名無しさん
垢版 |
2022/12/14(水) 17:32:49.83ID:TSZjSIoj
ある価格範囲でpriceとsizeが(d=0.25)ずつ変化します
それぞれの数値を計算したいのですが
こんなにコードが長くなってしまいました・・
https://ideone.com/c2v5Zn
・価格priceが上がればサイズsizeがは下がる
・各価格のsizeの合計はsize=10を超えない
と言った感じです
もうちょっとすっきり書けないでしょうか
0167デフォルトの名無しさん
垢版 |
2022/12/14(水) 17:35:23.66ID:TSZjSIoj
訂正
>・価格priceが上がればサイズsizeがは下がる

・価格が上がれば、サイズも上がる
でした
0168デフォルトの名無しさん (ワッチョイ 672c-NPZy)
垢版 |
2022/12/15(木) 11:37:30.33ID:K5mZtPm60
l = [(0, 1), (1, 2),,,]
l1, l2 = [x, y for x, y in l]

みたいなことがやりたいです。どうにかなりませんか
配列がじゅうぶん長いときに
l1 = [x for x, y in l]
l2 = [y for x, y in l]
より高速だとうれしいです
0170デフォルトの名無しさん (JP 0Hbf-NPZy)
垢版 |
2022/12/15(木) 12:00:38.16ID:c5NlDjZDH
そうだった
お恥ずかし~
0171デフォルトの名無しさん (ワッチョイ bf1d-LVN3)
垢版 |
2022/12/15(木) 12:41:36.31ID:gJFaHKKS0
1,東京,abc
2,名古屋,def
3,大阪,ghi
上記csvファイルを読み込んで、レコード毎に変数no,data1,data2に読み込むにはどうすれば良いでしょうか?
0173デフォルトの名無しさん (ワッチョイ df07-5+d1)
垢版 |
2022/12/15(木) 13:08:07.43ID:itdlyzVP0
>>171
import csv

with open("a.csv") as csvfile:
    csvreader = csv.reader(csvfile)
    [no, data1, data2] = zip(*csvreader)
    print(no, data1, data2, sep="\n")

# ('1', '2', '3')
# ('東京', '名古屋', '大阪')
# ('abc', 'def', 'ghi')
0174デフォルトの名無しさん
垢版 |
2022/12/15(木) 13:17:17.28ID:EjBP7v2j
>>171
import pandas as pd
df=pd.DataFrame({
"ctiy":["東京","名古屋","大阪"],
"tag":["abc","def","ghi"]
})
df.to_csv("sample.csv")

import pandas as pd
df=pd.read_csv("sample.csv",index_col=0)
df.reset_index(inplace= True)
df=df.rename(columns={"index":"no","ctiy":"data1","tag":"data2"})
df
0175デフォルトの名無しさん
垢版 |
2022/12/15(木) 13:39:37.94ID:EjBP7v2j
元のcsvが文字通り>>171
,,
1,東京,abc
2,名古屋,def
3,大阪,ghi

なら
import pandas as pd
df=pd.read_csv("sample.csv")
df.columns=["no","data1","data2"]
だけ
0177デフォルトの名無しさん (ワッチョイ 7f33-3TNT)
垢版 |
2022/12/15(木) 13:44:08.19ID:jZ5UYKI00
>>173
no, data1, data2 = [row for row in zip(*csvreader)]
0178デフォルトの名無しさん
垢版 |
2022/12/15(木) 13:54:32.52
ファイルから読み込もうがデータを受信しようが
実際にはそのまま使うことなんてほぼ無いからな
扱いやすいデータ構造に変形して管理した方が良い
0179デフォルトの名無しさん (ワッチョイ df07-5+d1)
垢版 |
2022/12/15(木) 14:05:26.43ID:itdlyzVP0
>>177
ん? ああ、左辺を [] で囲む必要ないんだ
その内包表記は何のため?
0180デフォルトの名無しさん (ブーイモ MM8f-6sMM)
垢版 |
2022/12/15(木) 19:33:47.06ID:WOq9vVvEM
>>177
スマホでなんで確認しないで書き込んでごめんだけど、
内包表記のところは[*zip(csvreader)]でいい気がする(リストに変換できれば終わりかなと)
0181デフォルトの名無しさん (ワッチョイ bf1d-LVN3)
垢版 |
2022/12/15(木) 20:37:08.25ID:gJFaHKKS0
171です。
>>172,173,174,175,176,178
皆様ありがとうございます。大変助かりました。
関連本何冊か読んだけどファイルから変数に代入する方法が分からず悶絶してました。
0186デフォルトの名無しさん (ワッチョイ dfad-+vMe)
垢版 |
2022/12/16(金) 16:03:41.42ID:rm4TpDjP0
30代のPythonクソチョンは
とにかくクズで強姦魔の犯罪者!

半島系帰化人は絶対に職場に入れないように
両親と祖父祖母の戸籍謄本を
提出させましょう!
0188デフォルトの名無しさん (ワッチョイ dfad-+vMe)
垢版 |
2022/12/16(金) 18:08:49.01ID:rm4TpDjP0
クソチョンw


クソチョンw


クソチョンw
0189デフォルトの名無しさん (ブーイモ MM8f-+vMe)
垢版 |
2022/12/16(金) 21:54:19.70ID:yqeA8G4+M
30代のPythonクソチョン男はクズの中のクズ!
日本で強姦を繰り返す悪魔!
0190デフォルトの名無しさん (ワッチョイ 1f5f-or7Z)
垢版 |
2022/12/17(土) 22:05:04.24ID:XMlIIYJL0
「全てはオブジェクトなり」という設計哲学はカッコいいけど、いろいろ問題もでてくるよな
Trueは文字列でなくて、Trueオブジェクトと言われても、はじめはポカンとなる
0203デフォルトの名無しさん (ワッチョイ ea90-ZR1D)
垢版 |
2022/12/18(日) 20:17:24.80ID:3yJ94/sX0
電話番号はSMSで認証するだけだぞ
それを危険視するならクレカで通販するほうが危ない
0205デフォルトの名無しさん (ブーイモ MMe6-F7tP)
垢版 |
2022/12/18(日) 21:11:58.41ID:yS5MSdvxM
30代Pythonクソチョン男は強姦魔の犯罪者!
30代Python男を雇うときには
両親と祖父母の戸籍謄本を提出させましょう!
0206デフォルトの名無しさん (ワッチョイ 1f5f-or7Z)
垢版 |
2022/12/18(日) 21:22:39.16ID:UO+LT/gR0
>>202
xvideosみたいなエッチなサイトで流れる「決してこのゲームをダウンロードしないでください」みたいな広告あるよね。

あれ、aiの声だよ。amazonのpolyかな。
pythonならbotoで操れる。
0209デフォルトの名無しさん (ワッチョイ eaad-F7tP)
垢版 |
2022/12/19(月) 06:53:54.69ID:itMdNDye0
30代Python男はチョンです!
犯罪者です!
雇うときには 父母と祖父母の戸籍謄本を提出させましょう!
0210デフォルトの名無しさん
垢版 |
2022/12/20(火) 06:40:54.58ID:y4iYu1GO
スコープ外の変数更新して別々のスコープで共有する感じが何か抵抗あるのですが
そういうものなのでしょうか・・?

A=10

def add(n):global A;A+=n
def view():global A;print(A)

add(11)
view()
add(3)
view()
0213デフォルトの名無しさん
垢版 |
2022/12/20(火) 11:27:16.56ID:y4iYu1GO
>>212
普通はそういう風に引数増やすかクラス化したりしますよね・・?
でもそれは単に自分にバイアスかかってるだけなのかな、と思いまして。
もしくはglobalに何か使いどころでもあるのかなと。
コールバック関数だとlambda: callback(A)みたいな書き方を避けるため?みたいな
0217デフォルトの名無しさん (ブーイモ MMbf-LnhB)
垢版 |
2022/12/20(火) 12:19:36.88ID:3gHXSqyCM
スコープ外じゃない
global必要ない

A=10
def add(n): A+=n
def view(): print(A)
0218デフォルトの名無しさん (ワッチョイ 6a01-6ae9)
垢版 |
2022/12/20(火) 12:21:39.69ID:k+1oqZ2P0
>>213
log みたいに本筋に関係無いけどそこらじゅうで必要なものは global にした方が見通しがよくなる
あと設定ファイルから読み込んだ設定値等のように基本的に読み取りのみで変更しない物とかなら許容範囲
それ以外に global 使うことはあまりないな、俺は
0223デフォルトの名無しさん (ブーイモ MMd6-F7tP)
垢版 |
2022/12/20(火) 13:55:06.97ID:2l59gNAZM
30代Pythonクソチョン男は強姦魔の犯罪者!
気をつけましょう!
あなたの近くにいます!
0224デフォルトの名無しさん (ワッチョイ f32c-XlG+)
垢版 |
2022/12/20(火) 14:16:44.71ID:3CIih5oL0
>>222
合ってるよ
しかしglobalやnonlocalは(設計)負け犬の烙印
0227デフォルトの名無しさん (ワッチョイ 4b97-jBQ6)
垢版 |
2022/12/20(火) 15:49:32.75ID:TXqlHGSa0
システムに一つしかないものを取り扱うハンドラみたいなのはglobalにするのが設計的にもおかしくない気がするけど
一概に負けとか言えないと思うけどなー
0229デフォルトの名無しさん (ワッチョイ f32c-XlG+)
垢版 |
2022/12/20(火) 16:16:10.63ID:3CIih5oL0
globalの唯一まともな使い道はキルフラグみたいに定義は関数外に書く必要がある、その関数専用の変数 みたいなやつ
ああ外部コントロールあるんだな とglobal, nonlocal宣言部で読める
それ以外ではスコープ外の変数は明示的に引数に渡すべきであって云々。逆にシグナル引数で渡すのは気持ち悪いし
0230デフォルトの名無しさん (ワッチョイ becf-DiWi)
垢版 |
2022/12/20(火) 16:22:03.00ID:oBUmZgg40
グローバルは、C,B,BCPL,ALGOL以来の伝統的な概念で
変数に限らず外部モジュールをリンクするのにも必要だ
それらを踏まえたで、やたらと使うのはやめとこう、くらいの話か?
0231デフォルトの名無しさん (ワッチョイ 8a47-Jn8R)
垢版 |
2022/12/20(火) 16:26:08.70ID:Vq1NdAbT0
組み込み系は今でもC言語で、膨大なglobal変数の塊で動いている
当然干渉は発生しまくってそれは人間業ではコントロールできないので、
解析ツールでやばそうな箇所をリストアップして人間がじっくり調べる方法で今も作っている
0232デフォルトの名無しさん (ワッチョイ 9761-XlG+)
垢版 |
2022/12/20(火) 17:01:28.69ID:ni2L+av30
>>230
初心者がglobalやnonlocal手を出すときはまず構造が間違っとるって話でしょ
eval, execも同じ。 慣れてるやつが意図的に使うなら好きにしたらいいじゃんョ
0235デフォルトの名無しさん (ワッチョイ 6a01-6ae9)
垢版 |
2022/12/20(火) 18:53:45.23ID:k+1oqZ2P0
>>230
グローバルはその話で合ってる
問題はPythonは読出しだとグローバルで書き込みだとローカルになると言う一瞬?ってなる仕様だと言う事
まあよくよく考えたらそれなりにリーズナブルな仕様だとは思う
0238デフォルトの名無しさん (アウアウウー Sa9f-10I4)
垢版 |
2022/12/20(火) 19:32:53.36ID:KsWI+ERLa
キーワードとしてのglobalと、使い方としてグローバルの話が混ざってるなぁ
モジュールに変数設定して実質的にグローバル変数として使えるので、普通に使っていてキーワードとしてのglobalの使用は不要と言っても言い過ぎではないだろう

組み込みがグローバルだらけになるのは、ハードウェアが変数の値を勝手に書き換えることがあり、それを前提とした処理を書くため
結果的に組み込みプログラマーはグローバルが不要なところでもグローバルで書くのが慣習となってしまった
これは直すべき悪習だが、ハードウェア開発とソフトウェア開発はスキルセットが違うので、両方をカバーできる人はほとんどいないのが現実
0239デフォルトの名無しさん (ワッチョイ 4b97-jBQ6)
垢版 |
2022/12/20(火) 20:25:35.35ID:TXqlHGSa0
>>238
そうなんだよなあ。組み込み屋と純粋ソフト屋は職能違うからね。
純粋ソフト屋が時間をかけて綺麗なコードを書く努力をしている間に、組み込み屋は別のことやってるからね。データシート通りに書き込んでるのに動かないけど、結局データシートが間違ってる、みたいな検証とか、波形見て波形が正しく出てない、みたいな検証とか。
純粋ソフト屋が組み込みのプログラムが汚いって馬鹿にするのはなんか違うと思うんだよね。
0240デフォルトの名無しさん (ワッチョイ 8a47-Jn8R)
垢版 |
2022/12/20(火) 20:38:06.37ID:is7jIq/00
組み込みのプロセッサは遅いんだよ
ROMもRAMも少なくて、きちきちに詰めてる
そんな条件で競争に勝つには、新しい手法なんか使ってられない

要はCPUパワーがあれば人間が楽できるという話なので、楽せずに安く作る
0242デフォルトの名無しさん (ワッチョイ eaad-F7tP)
垢版 |
2022/12/20(火) 21:33:33.15ID:z0lLMPAj0
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0243デフォルトの名無しさん (ワッチョイ f32c-ZR1D)
垢版 |
2022/12/20(火) 22:21:22.22ID:3CIih5oL0
chatGPTにfactory methodわかんねーからどういう感じなのか教えてくれやって聞いた
ロボ「こういう感じやで猿野郎」
ぼく「ほげ」

class Product:
__def operation(self):
____pass

class ConcreteProduct(Product):
__def operation(self):
____print("eat your banana !")

class Creator:
__def factory_method(self):
____return Product()

class ConcreteCreator(Creator):
__def factory_method(self):
____return ConcreteProduct()

def main():
__concrete_creator = ConcreteCreator()
__product = concrete_creator.factory_method()
__product.operation()

if __name__ == "__main__":
__main()
0248デフォルトの名無しさん (ワッチョイ eb65-ytDT)
垢版 |
2022/12/21(水) 13:10:09.14ID:uJxDCyvm0
自分でケツ拭くなら別にいいよ
その点、機械学習屋やデータサイエンティストはだいたい責任取らずに逃げるからタチが悪い
組み込み屋はいかにクソでも最低限のプロ意識と責任感はある奴が多い
0249デフォルトの名無しさん (ワッチョイ dbf0-TXpN)
垢版 |
2022/12/21(水) 13:17:21.01ID:M5sZwq5J0
機械学習屋のコードが1番きついわ
他の分野はまだ歴史があるからそれなりにコードは綺麗に書くという文化が浸透しているけど
機械学習の分野についてはバッチジョブだし
面倒なコードはフレームワーク側が持ってるから
ユーザーがグチャグチャのコードを書きがち
0253デフォルトの名無しさん (ワッチョイ 4b97-jBQ6)
垢版 |
2022/12/21(水) 23:00:50.73ID:dTgA3nGq0
>>245
ハードのテストが一番大事だもんね、仕様通りになってるかはソフト書かないとわかんないし
>>247
機械学習屋はともかくデータサイエンティストはサイエンティストだからプロダクションレベルを要求しても仕方ないと思うな
Jupyterでrestart and run all cellで動くだけマシといえよう
職能が違うのよ。普通のプロダクションコードのソフトメインで組み込みとデータサイエンスちょっとやったことある自分はそう思う。
どこに時間かけてるかが違う。憎み合うのは非生産的なのでやめましょう、相互理解しましょうって思っちゃう。
0255デフォルトの名無しさん (テテンテンテン MMe6-PhJw)
垢版 |
2022/12/22(木) 08:44:45.20ID:YRfbWBEUM
Pythonに出会って、自分がC言語に挫折した理由がやっとわかった
俺らがPythonで空気のように使っているリスト・タプル・辞書
これらがCにはないので、処理ロジックを書く前にまず
これらに相当するデータ構造を配列・ポインタを駆使して実現しなくてはならない
多くのC入門者はここで挫折してしまう
C言語に20年挑んでハローワールドから一歩も進めなかった男の悔恨
0259デフォルトの名無しさん (ワッチョイ 8a47-Jn8R)
垢版 |
2022/12/22(木) 09:44:49.77ID:LbQSD5ER0
みんなが同じようなことをやるなら誰が代表してやればいい

言語に仕様として持たせたり、関数をライブラリにしたり、モジュールを作ったり、
サンプルプログラムを流用したり
AIに書いて貰ったり ←今ここ
0263デフォルトの名無しさん (ワッチョイ 3ebb-fz0m)
垢版 |
2022/12/22(木) 10:49:10.26ID:hTl9WjWG0
>>260
挫折した理由は下が出来なかったからだぞ?

> これらに相当するデータ構造を配列・ポインタを駆使して実現しなくてはならない

これが実現できなきゃ先にどうやって進むんだ?
0266デフォルトの名無しさん (ワッチョイ 8a47-Jn8R)
垢版 |
2022/12/22(木) 11:06:25.86ID:LbQSD5ER0
結局は言語ではなくて、データ構造とアルゴリズムの理解なんだよな
昔はみんなが知ってるべき知識だったけど、どんどん知らなくても使えるようになってきた
0270デフォルトの名無しさん (ブーイモ MMe6-F7tP)
垢版 |
2022/12/22(木) 11:24:11.50ID:mRMrFGRVM
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0277デフォルトの名無しさん (ワッチョイ 7e30-ZR1D)
垢版 |
2022/12/22(木) 18:06:39.79ID:mFK9O5hM0
>>261
学生の時、CとJava覚えて
Cで基本情報処理取ったけど
Python知ってから、家でPythonしか使ってないけど
一般的なプログラマーじゃないから会社でそういう言語を使うことはないけども
資料の自動化云々、家のラズパイ、仮想通貨関係とか
Pythonしか使ってない
0280デフォルトの名無しさん (ワッチョイ 970c-ZvOm)
垢版 |
2022/12/22(木) 19:03:24.41ID:dbqZG8bb0
簡単に書けるレベルのものしかやったことないけど、プログラマとしての欲求が満たせて自分は満足している
簡単なものしか書けないレベルっていうのが本質的なんだろう
0282デフォルトの名無しさん (ワッチョイ be63-e5AJ)
垢版 |
2022/12/22(木) 19:09:04.98ID:smn+2blz0
普通は簡単に書けるレベルをやるので十分なんだよ
自分がやってることをできるだけ手間掛けないで済むようにすることから始める

簡単に書けないことは、それで飯を食おうと思ったときにやれば良い
0286デフォルトの名無しさん (ワッチョイ 7e30-ZR1D)
垢版 |
2022/12/22(木) 19:36:06.08ID:mFK9O5hM0
この流れで「どっこいどっこい」じゃなくて「どっこい」で来るのか、、、

なるほどね
0288デフォルトの名無しさん (テテンテンテン MMe6-PhJw)
垢版 |
2022/12/22(木) 20:08:02.26ID:YRfbWBEUM
まあまあ喧嘩せんでくれ
自分はCに致命的に向いてないんだろう

例えば、20年Cに挑んでどうしても理解できなかったのがポインタのポインタ
**argvがわからないのでコマンドライン引数を使うアプリが作れず挫折
実はPythonにも*と**があって絶望しかかったのだけど、これはPythonを使う上で必須ではないようでセーフ
0297デフォルトの名無しさん (ワッチョイ 7e30-ZR1D)
垢版 |
2022/12/22(木) 22:02:44.58ID:mFK9O5hM0
>>294
つまらないレスをする人って
それがわからないからつまらないレスをする訳だが
その人がレスを続けたところで当然内容はつまらない
せっかくそこそこ面白いのを出したんだから
面白い状態で終わらせとけばいいのにと思って
「やっぱりつまらないよねー」で終わっちゃったよね
0298デフォルトの名無しさん (ワッチョイ 3b32-m4BD)
垢版 |
2022/12/22(木) 22:05:02.75ID:c+J4V8f90
#include <stdio.h>をおまじないって説明すると馬鹿にされるけどさ
Cの入門書なんかで#include <stdio.h>を「今はとりあえず、おまじないと思っておいてください」みたいな説明してるとマニアックな人から糞本扱いされるけど、じゃどんな説明するのが正解なんだろうか。

hello worldを書いてる初心者に、プロトタイプとかマクロとかから説明するのだろうか。

なぜプロトタイプみたいのが必要かって言うと、printf()は分割コンパイルでライブラリというものに入っていて……とか初心者が納得のいくまで説明をしなきゃならないのか。

「stdio.hというファイルにprintf()を使うための情報が入っているのでそれを取り込む命令です。詳しいことはおいおいわかりす」って簡単に説明するなら「今はおまじないとおもっていてください」と大差ないし。

バシッと納得のいく説明の例を教えてほしい。
0306デフォルトの名無しさん
垢版 |
2022/12/25(日) 21:04:49.84ID:UDG4tDm5
バリデーション管理しやすくかつクラスを普通の関数のように扱いたいのですがどうしたら良いでしょか・・
用途はありませんが試しに足し算するだけのクラスを実装してみました

from typing import Optional
from pydantic import BaseModel

class _Sum(BaseModel):
a: int
b: int
def sum(self):
return self.a+self.b

#sum()を使うまでに段階を踏んでしまう
Sum=_Sum(a=3,b=3)
print(Sum.sum())
#sum(2,3)のように使いたい

#やりたいことは↓こんな感じで、自分で作ってみました
https://ideone.com/mQQPoc
後々に”偶数しかダメ”とかsum09自体を拡張したりとかしたいです
0308デフォルトの名無しさん (スッップ Sdaf-T2CE)
垢版 |
2022/12/25(日) 23:13:02.03ID:ICQtDf1md
「普通の関数だと拡張性が弱まる」の意味がわからん
普通の関数のようにクラスのインスタンス化と特定のメソッドの呼び出しを実行できたとして、
そのインスタンスに後でアクセスする方法はないのだから関数ではなくクラスであることに何の意味もない
引数をバリデーションしたいだけなら、普通に引数に渡された値が条件を満たしていなければエラーを投げる関数を作って関数の先頭で普通に呼べばよい
アノテーションとタイプ数変わらないだろ
0309デフォルトの名無しさん (スッップ Sdaf-T2CE)
垢版 |
2022/12/25(日) 23:24:11.94ID:ICQtDf1md
あと、単に関数の処理としてクラスに実装された機能を利用したいということであれば、関数の中でそのクラスのインスタンスを作って目当てのメソッドを呼べばいいだけだ
トリッキーな仕掛けなど何一つとして必要ない
0311デフォルトの名無しさん
垢版 |
2022/12/25(日) 23:41:27.55ID:UDG4tDm5
>>308
ちなみに>エラーを投げる関数を作って
的なのを実装するとどういう感じになりますか?
少し前に自分でやったのはかなり簡略しますがこんな感じになりました
def must_be_int(n):
 if type(n) is not int:
  raise TypeError(f"type error:'{n}' is not int")
 return n
def sum(a:int,b:int) -> int:

 return must_be_int(a)+must_be_int(b)
print( sum(2,3) )
print( sum(2,"3") )

ただこれだとsum関数のロジック
0312デフォルトの名無しさん
垢版 |
2022/12/25(日) 23:43:25.19ID:UDG4tDm5
途中でした
ただこれだとsum関数のロジック内にチェックする関数が混在してくるので分けたいなと思い
must_be_int(a)
must_be_int(b)
return a+b
にしたりと、なんかしっくりこなくて・・
0313デフォルトの名無しさん
垢版 |
2022/12/25(日) 23:48:37.78ID:UDG4tDm5
ようは、
def sum(a:int,b:int) --> int:
このアノテーションだけでint以外の入ってきたらエラー吐いてくれればいいのに・・
みたいな
0314デフォルトの名無しさん (ブーイモ MMf3-pLDh)
垢版 |
2022/12/26(月) 00:38:14.71ID:ZJD8d3IcM
それはtype checkerの仕事やろ
0315デフォルトの名無しさん (ブーイモ MM5b-pLDh)
垢版 |
2022/12/26(月) 00:54:00.05ID:3Zc3mIaMM
>>308
> そのインスタンスに後でアクセスする方法はないのだから

これどういう意味なの?
インスタンスに後でアクセスする方法あると思うのだけど
0316デフォルトの名無しさん (アウアウウー Sa1f-SvsN)
垢版 |
2022/12/26(月) 13:49:23.62ID:6bMfB0bxa
>>306
https://ideone.com/LoiejS
class sum(object):
def __call__(self, a, b):
self.a, self.b = a, b
return self.a + self.b

print(sum()(2, 3))
0317デフォルトの名無しさん (ワッチョイ 5310-4Ar3)
垢版 |
2022/12/26(月) 15:23:10.53ID:Z9xA6Bih0
>>306
普通に関数で実装してバリデーション用のデコレータ作れば?

def must_be_int(func):
__def _validate(*args):
____assert all(isinstance(x, int) for x in args), "all arguments must be integer"
____return func(*args)

__return _validate

def must_be_even(func):
__def _validate(*args):
__assert all(x % 2 == 0 for x in args), "all arguments must be even number"
____return func(*args)

__return _validate

@must_be_even
@must_be_int
def _sum(a, b):
__return a+b

print(_sum(2, 2))
print(_sum(1, 3)) # error
print(_sum(1.5, 2.5)) # error
0318デフォルトの名無しさん
垢版 |
2022/12/26(月) 19:13:28.11ID:271e9Qy4
>>316,317
ありがとうございます
実は__call__つかった方も関数の方(>306のコメントアウトに書いてあるように(ただ、args[1:]の部分が合わないのでバリデーションの部分は意図的に省いて書いてます))も
どちらもやっていたのですが諦めていました
ひとつは、(おま環なのかエディタの設定なのか)今度はアノテーションの方がなぜかデコレーターの方が優先されちゃって表示されて諦めたのと
もうひとつは、今回のような試しにやってみた足し算のみの用途なしな機能だけではない場合、
関数の方だと後々に拡張したいってなったときに難しそうだなと思い諦めました
0319デフォルトの名無しさん (ブーイモ MMf3-kIRX)
垢版 |
2022/12/26(月) 22:18:46.52ID:IvZMxVOoM
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0320デフォルトの名無しさん (ワッチョイ 3333-aH43)
垢版 |
2022/12/28(水) 11:04:27.64ID:JTGZh46Y0
止まってる車に60キロで走ってきた車がぶつかったら、中の人が受ける衝撃ってどっちの車も同じなんだっけ?
0321デフォルトの名無しさん (ワッチョイ 3333-aH43)
垢版 |
2022/12/28(水) 11:04:43.39ID:JTGZh46Y0
あ、スレ違いですね。忘れてください
0322デフォルトの名無しさん (ワッチョイ 7b97-H+55)
垢版 |
2022/12/28(水) 12:07:11.51ID:L0e9GMVm0
>>320
同じではない
軽自動車とトレーラーなんか考えてみたらわかるけど、作用反作用の法則で同じ力が軽自動車とトレーラーにかかるけど、軽自動車は潰された後完全にトレーラーに張り付く形で進み、トレーラーはわずかにしか減速しない
よって中の人の衝撃は全然違う
塑性変形で弾性衝突じゃないからそうなると思うかもしれないが、完全弾性衝突の場合だと軽い方が思いっきり跳ね返るだけね。よく跳ねるボールの中にいる人と、地下室の中にいる(地球という大きいボールのなかにいる)人を考えてもいいかも
要は同じ運動量が交換されるが、同じ運動量でも質量が違えば加速度は違うということだね
0324デフォルトの名無しさん (ブーイモ MMb3-pLDh)
垢版 |
2022/12/29(木) 15:42:32.28ID:NCBV9Sb6M
>>323
動画のクオリティ高くてビビったw
0325デフォルトの名無しさん (ワッチョイ 3f36-l5v6)
垢版 |
2022/12/29(木) 19:35:56.88ID:RiMtnxAm0
pythonのバージョン管理ってアナコンダがいいの?
俺ドッカーしか知らんかったからずっとドッカーのこと調べてたんだが
0326デフォルトの名無しさん (ワッチョイ 3f36-l5v6)
垢版 |
2022/12/29(木) 19:36:47.55ID:RiMtnxAm0
あとpythonの開発環境って3.8が多いみたいなんだけど理由あるの?
0327デフォルトの名無しさん (ワッチョイ 3333-aH43)
垢版 |
2022/12/29(木) 19:59:01.94ID:Y8X+93cs0
>>325
公式で配布してるインストーラ
0328デフォルトの名無しさん (ワッチョイ 3333-aH43)
垢版 |
2022/12/29(木) 22:26:07.07ID:Y8X+93cs0
実行環境の話?
0329デフォルトの名無しさん (オッペケ Sr93-QbPh)
垢版 |
2022/12/29(木) 22:41:36.15ID:JTFuHtDdr
>>325
ケースバイケースかなぁ
機械学習やるならanacondaはオススメだよ
クラウド連携はanacondaは偶にトラブルになる
環境隔離したいならdockerは良いけど別にdockerでなくてもよい
最近はpipenvやpoetryでディレクトリごとに環境を分離してもいいかな
いろいろ増えすぎて初心者にはコレっていうのが難しい
そんなときは公式のPythonに戻る
0330デフォルトの名無しさん (オッペケ Sr93-QbPh)
垢版 |
2022/12/29(木) 22:52:19.17ID:JTFuHtDdr
>>326
そういえば何か作るときは3.8を使うことが多いなぁ
特に理由はないけど、3.9以降の使いたい機能は様子見

あとRedhat系列だと3.9以降をインストールするのが面倒くさいのもある
3.8ならSCL使えばさっくりインストールされる
Anaconda使えばいいけどあれはあれでバイナリごとインストールすることになるからなんだかなぁ
0332デフォルトの名無しさん (ワッチョイ 61f0-K5v2)
垢版 |
2022/12/29(木) 23:03:16.65ID:3S86hTSK0
pythonは言語仕様は簡単だけど実行環境の管理が完全に終わってるよね
linuxの知識ないとサーバーサイドでまず使いこなせない
下手したら環境ぶっ壊して「何もしてないのに壊れた」状態が生まれる
0334デフォルトの名無しさん (ワッチョイ 8d01-s0Sd)
垢版 |
2022/12/30(金) 00:23:52.63ID:i/Imw4oH0
何もしなかったから壊れたということを知るべき。
0335デフォルトの名無しさん (ワッチョイ 3f36-l5v6)
垢版 |
2022/12/30(金) 05:59:51.50ID:uddbjkCB0
>>327-330
大変勉強になりました
お三方にいただいたアドバイスをもとに
これから検討いたします!
0336デフォルトの名無しさん (ワッチョイ 5319-GrCd)
垢版 |
2022/12/30(金) 08:21:58.84ID:DzZqzBlm0
PythonってVisual Studio のCodeの方じゃなくてCoreの方にも入ってるよね
いつもVB.NetやC#で使ってるからそっち使ってるわ。
0337デフォルトの名無しさん (ササクッテロリ Spef-0zvw)
垢版 |
2022/12/30(金) 11:56:52.21ID:KypYNh+sp
デコレータって関数受けて関数返せばデコレータと言っていいの?
それとも機能の追加が出来れば関数返さなくてもいいの?
デコレータの例が全部ラップしてるから関数返すものをデコレータっていうのかと思ったけど、Pythonの構文的には機能の追加が要件ぽくてよくわからん
0339デフォルトの名無しさん (ササクッテロリ Spef-0zvw)
垢版 |
2022/12/30(金) 12:32:28.57ID:EYlolZ9wp
>>338
def deco (fn):
print("Good")
fn()
print("Good")

↑の関数は高階関数と言えるし、デコレータとも言える?
0341デフォルトの名無しさん (ササクッテロリ 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

だとそれぞれどういうメリットデメリットが想定できる?
この程度だったら何も変わらない?
0343デフォルトの名無しさん (ササクッテロリ Spef-0zvw)
垢版 |
2022/12/30(金) 14:30:10.80ID:CAw5d3+3p
>>342
前者もデコレータとして使えるよ?
@decoで使うってことだよね?
0344デフォルトの名無しさん (ササクッテロリ Spef-0zvw)
垢版 |
2022/12/30(金) 21:59:47.08ID:i0HtXYTfp
>>343
自己解決しました
0345デフォルトの名無しさん (ブーイモ MMf3-pLDh)
垢版 |
2022/12/30(金) 22:26:59.27ID:XgQsZPRMM
自己解決とは一体・・・ww
0346デフォルトの名無しさん (ササクッテロリ Spbb-3X/C)
垢版 |
2022/12/31(土) 00:05:03.98ID:Y1CGuIqUp
>>345
自分のわかっていないところがわかりました
0349デフォルトの名無しさん
垢版 |
2022/12/31(土) 14:58:09.42ID:iYLc9PIz
main.pyのソースを見たときに
import ○○ #upm package(パッケージ名)
の行のコメントアウト外すと消えるかも>>348
0351デフォルトの名無しさん (ワッチョイ 9a01-+uJR)
垢版 |
2023/01/01(日) 19:36:11.17ID:ps54Dm7d0
スレチだけど...
> KPIを達成しても売り上げが伸びない場合、社員ではなく経営の責任ということになります。
> 『会社がやれと言った内容がそもそも間違っていたんだね』ということで
まあインタビュー記事だからいくつか盛ってるとは思うけどこれがそれなりでも浸透してるなら確かに強いと思うわ
0352デフォルトの名無しさん (ブーイモ MMb6-DakT)
垢版 |
2023/01/01(日) 21:38:32.18ID:OSWb6iEUM
>>350
ぶっちゃけ一番安上がりだからじゃね?
0356デフォルトの名無しさん (アウアウエー Sa52-9yt5)
垢版 |
2023/01/02(月) 12:12:57.71ID:XEDAh58aa
Windows環境で、「アプリと機能」の一覧に表示されるソフトウェア名一覧をPythonから取得するにはどうしたら良いですか??

https://tadaup.jp/loda/0102120639918904.png
0359デフォルトの名無しさん (ワッチョイ 6301-peqZ)
垢版 |
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)
0360デフォルトの名無しさん (スッププ Sdba-9yt5)
垢版 |
2023/01/02(月) 19:23:19.67ID:gNyrLSWLd
>>359
すごい!ありがとうございます!
0373デフォルトの名無しさん (ワッチョイ b690-dt7s)
垢版 |
2023/01/02(月) 22:47:14.11ID:+OShonpv0
ModuleNotFoundError: No module named 'xml.etree'; 'xml' is not a package

ElementTreeでXMLを作成すると上のエラーがどうしても出てしまいます。
ElementTree以外にXMLがいじれるのって何がいいですか?
BeautifulSoupですか?
0380デフォルトの名無しさん (ワッチョイ 76b7-eEnI)
垢版 |
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に貼り付けて、
カンマを特殊文字で改行に置き換えた方がはやいかな?
0381デフォルトの名無しさん (ブーイモ MMba-DakT)
垢版 |
2023/01/03(火) 16:00:07.29ID:xk3Wdt8AM
>>380
“\n”.join(files)
0383デフォルトの名無しさん (ワッチョイ 0754-TwI4)
垢版 |
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)
みたいに使ってるけど、これでもしっくり来ない
0385デフォルトの名無しさん (ワッチョイ 76b7-eEnI)
垢版 |
2023/01/03(火) 16:25:05.94ID:E/lRcWz50
>>381
ありがとう。
一見すると、単に","が"n"に変わっただけのように見えるけど、
Excelに貼り付けたときの挙動がまったく異なるんだね。

しかし検索してもアフィみたいなサイトしかなくて大変だな
入門書探してみるノシ
0388デフォルトの名無しさん (ワッチョイ 5b2c-Hg2a)
垢版 |
2023/01/03(火) 22:20:57.30ID:dIZcTCs/0
定期的に
tuple[str, tuple[int200個]] #key: valueです
を1万件取得して
既存の辞書に追加、更新していきます
このときkeyがなければkey, valueを登録するのはいいとして

keyが既存のときのvalueの更新はどうするのが常道ですか? 高速なのがいいです。または不要な書き換えがないほうがいいです
valueに差異があれば書き換え がいいのか、問答無用で全部更新しちゃうべきなのか…
0389デフォルトの名無しさん (ワッチョイ f668-U0ia)
垢版 |
2023/01/03(火) 22:55:20.83ID:97qfA6UK0
理解も進むしベンチとるのがいいよ
すでに新しいタプルを構築してるなら問答無用でいいと思うけどね
キーの確認や差異がないかしらべるコストもゼロじゃないし
0391デフォルトの名無しさん (ブーイモ MM7f-UGA+)
垢版 |
2023/01/04(水) 01:07:35.19ID:O+gUhHpWM
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0393デフォルトの名無しさん (ワッチョイ f397-HbQu)
垢版 |
2023/01/04(水) 10:43:47.27ID:xfkX5cN10
dictを継承したmydict作って、setitemをオーバーライドすればいいんじゃない?なんかその辺のパッケージにありそうだけど
0395デフォルトの名無しさん (ワッチョイ cebb-FKhm)
垢版 |
2023/01/04(水) 11:54:12.95ID:3yoX2IMb0
perlから来たからdefaultdictを知らないってことか
0396デフォルトの名無しさん (ブーイモ MM13-DakT)
垢版 |
2023/01/04(水) 11:57:20.58ID:PRI0tLaEM
defaultdictとか関係なくないか?
単にfoo[key] = valueってしてけばいいだけの話じゃないの?
0397デフォルトの名無しさん (ワッチョイ 0754-TwI4)
垢版 |
2023/01/04(水) 12:17:46.09ID:fFs0aGwQ0
文章に単語が何回登場したかカウントする
みたいなことをしたい時に、
if word in count:
 count[word] += 1
else:
 count[word] = 1
みたいに毎回判定が入る

perlなら問答無用に
$count[$word] += 1;
で済んでしまう
0399デフォルトの名無しさん (ワッチョイ cebb-FKhm)
垢版 |
2023/01/04(水) 12:27:21.02ID:3yoX2IMb0
そうもいかないケースを挙げてみ?
0401デフォルトの名無しさん (ブーイモ MM26-DakT)
垢版 |
2023/01/04(水) 14:05:48.69ID:hsLqwQpIM
>>397
質問とは関係ない話だったのか

defaultdictをわざわざ使わなきゃいけないのは面倒だとは思うがパフォーマンスに影響するところだから違うものとして分ける考え方も理解できる
0402デフォルトの名無しさん (ワッチョイ 0e30-9yt5)
垢版 |
2023/01/04(水) 16:11:58.90ID:Y9cKLIFN0
>>397
いいんじゃないの
上に書いてる奴は見れば一瞬で理解できる
0404デフォルトの名無しさん (アウアウウー Sac7-Dewi)
垢版 |
2023/01/04(水) 16:33:02.89ID:s5vEki4Ca
そりゃ言語が違うんだから当たり前だろ
そんなにperlが好きなら一生perl浸かってろ
0415デフォルトの名無しさん (ワッチョイ 0754-TwI4)
垢版 |
2023/01/04(水) 19:09:25.07ID:fFs0aGwQ0
perlはそのへんを、お前は人工知能か何かなのかという精度で判定してくれてた
普通に考えると確定しないようなケースでも何故か正解する
失敗すると発見不可能なバグになるから封印したんだろうな
0417デフォルトの名無しさん (ワッチョイ 5bcf-/EFQ)
垢版 |
2023/01/04(水) 21:31:42.96ID:oLi3mo910
そりゃperlと同じようなコンテキストの考え方を導入しなきゃ無理だな。
少なくとも、数値の加算と文字列の連結に同じ'+'演算子を使ってるpythonは
そのへん全部ひっくり返さないとならない。
0431デフォルトの名無しさん (ワッチョイ 0754-TwI4)
垢版 |
2023/01/05(木) 08:54:31.46ID:XvyJyDBe0
暗黙より明示のルールに反してるから可能だとしてもやらないだろう

変数を参照するだけか書き換えもするかで名前空間が変わるのは結構暗黙的だと思うけど、
それは利便性が優先した
初期化を省略するのはそんなに利便性が無い
0438デフォルトの名無しさん (ワッチョイ 9733-QAWg)
垢版 |
2023/01/05(木) 17:05:39.43ID:DbVL8BP10
自動変換は悪さにしか使われないという印象だからいらないかな
perlみたいに言語がよしなにやってくれるならそれで良いけど
ユーザー定義の暗黙の型変換は間違いなく地獄
0445デフォルトの名無しさん (ワッチョイ 0754-TwI4)
垢版 |
2023/01/05(木) 18:41:22.77ID:XvyJyDBe0
マジで、変数名はコピペしかしない習慣にした方がいいよ
あるいは自動入力
アニメに出てくるハッカーじゃないんだから、キーボード叩きまくるスタイルは良くない
0453デフォルトの名無しさん (アウアウウー Sac7-yDM8)
垢版 |
2023/01/06(金) 16:48:17.73ID:YIB2cDqha
>>440
Nim 便利ょ
0456デフォルトの名無しさん (アウアウウー Sac7-Dewi)
垢版 |
2023/01/06(金) 17:36:13.11ID:YIB2cDqha
別言語だけど python と相性良い方
0459デフォルトの名無しさん (ワッチョイ 1a03-uhAF)
垢版 |
2023/01/06(金) 20:18:53.27ID:Hxt0hqaC0
どこがやねーんっ
0460デフォルトの名無しさん (スップ 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のバッファリングのオンオフを切り替えられないから不可
0463デフォルトの名無しさん (ワッチョイ dbb7-++l/)
垢版 |
2023/01/07(土) 00:49:55.38ID:lVhOhIz00
M1 Macでfor文を勉強中なんだけど、

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

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

「・・・」

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

あとでWindowsでも試してみる
0467デフォルトの名無しさん (ワッチョイ 1176-1Rsz)
垢版 |
2023/01/07(土) 03:23:48.08ID:odL5Q3k30
>>462
ああそうか 単にフィルタ部だけ受け取ってexecしてしまえば楽だったか
ありがとう
0468デフォルトの名無しさん (テテンテンテン MM4b-uuhX)
垢版 |
2023/01/07(土) 04:05:10.65ID:79bETjVCM
特定のフォルダを5分おきに監視して、新たに作成されたファイル名を
SQLiteテーブルに登録していく…的なことをやりたい
単なるループで作るとCPU食って固まってしまうので非同期処理をする
必要があると思うんだけど、テンプレみたいなコードどっかにないですかね
asyncとかドキュメント見ても難しくて理解できないので…
0470デフォルトの名無しさん (ワッチョイ ab33-veFr)
垢版 |
2023/01/07(土) 07:43:49.02ID:amZltHqL0
なんでるーぷだとcpu食って固まるの?
0472デフォルトの名無しさん (アウアウウー Sa85-vxq+)
垢版 |
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
0476デフォルトの名無しさん (ワッチョイ 5b5c-FOYR)
垢版 |
2023/01/07(土) 10:00:12.84ID:rucp1FJJ0
inotify
0480デフォルトの名無しさん (ワッチョイ b954-Or7w)
垢版 |
2023/01/07(土) 12:02:42.84ID:11syE16N0
単純にメモリ内で巨大な配列の計算をしたいとかで、
人間が判るほど時間のかかる処理をする時に、
ループの中に微小なsleepを入れておくと、そのタイミングでOSがタスク切り替えできるので、
他のアプリに影響せずに処理できる

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

Linuxならinotify
WindowsならReadDirectoryChangesW(FileSystemWatcherがラップしてるWin32API)
macOSならFSEvent
0489デフォルトの名無しさん (ワッチョイ 112c-aLII)
垢版 |
2023/01/08(日) 00:08:32.18ID:GLDV6Cyi0
常駐フォルダ監視、なにかあったらどうにかする
処理はもう脳死でwatchdog一択というくらい定番
0494デフォルトの名無しさん (アウアウウー Sa85-vxq+)
垢版 |
2023/01/08(日) 04:46:18.93ID:mDwtjJAva
5分sleep すると、プロセスを殺せない・生き続けるから、
その分だけ、メモリなどのリソースが使えなくなるので損

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

それかRuby on Rails, npm/yarn などのagile 開発でよく使う、webpack-dev-server みたいに、
フォルダをwatch して、ファイルが変更されたら、rebuild するとか
0497デフォルトの名無しさん
垢版 |
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()
0498デフォルトの名無しさん (スッププ Sdb3-5DWt)
垢版 |
2023/01/08(日) 14:13:05.44ID:ZWf/GgJ8d
VBで言うループ内のDoEvents()だよ
OSのメッセージへの応答が止まり続けると応答なしになる
だからメッセージに応答させるためにsleepを入れる
CPUの優先度を上げ下げしようがメッセージへの応答は各アプリケーションに依存する
だからループの時間が長くなればどのみちメッセージの処理ができず応答なしになる
0499デフォルトの名無しさん (ワッチョイ 613c-wVfF)
垢版 |
2023/01/08(日) 14:16:48.76ID:LG3PUlqC0
>>496
何が言いたいのか知らんけど、CPU張り付きによるキーボード等の割り込みが阻害されるためだろう
古いとか言われて短い無限ループにsleep入れないプログラマいたら驚くかな
一人でプログラミングしてるならまだしも、第三者が使う可能性がある状況でその実装は恐い
0508デフォルトの名無しさん (ワッチョイ 099f-jGTX)
垢版 |
2023/01/08(日) 15:56:00.30ID:hARfQwsA0
今時の他コア高性能CPUであれば100%張り付きで懸念するべきのはバッテリー残量と発熱くらいで、
一瞬でも100%未満になるコアが1つあればOSのタスクスイッチングには影響はほとんどないよ
GetMessage,PeekMessage,DispatchMessageをブロックしないことだけ気をつければ、あとは思う存分CPUをぶん回してもいいよ
100.00%まできっちり回せ
0513デフォルトの名無しさん (スッププ Sdb3-5DWt)
垢版 |
2023/01/08(日) 16:05:59.38ID:kQpMGlzxd
>>510
タコなソフトにならない解決策の話なのに優先度なんて頓珍漢なこと言い続けてる自覚ねーのな
DoEvents()も書けない、コピペすらできないみたいだし、
何のためのsleepか説明されても理解できそうにないな
0517デフォルトの名無しさん (ワッチョイ 1176-1Rsz)
垢版 |
2023/01/08(日) 16:49:42.13ID:+2bxRzY60
>>497
インスタンスメソッドの中でインスタンスメソッドを定義したとして、使う側はどうしたいんだよ

h.hoge() を読んだら h.new_method() を使えるようになる仕様でいいのか?
0518デフォルトの名無しさん (ワッチョイ 9379-G8G4)
垢版 |
2023/01/08(日) 17:48:05.51ID:Ghk4Hd5x0
DoEvents、自アプリのメッセージを1つ実行する
sleep、CPUリソースを一時的に返却する(自アプリのメッセージは処理できない)

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

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

>>516
> 多分何も判ってなくて、総叩き状態を楽しんでる
分かってないのはお前な
ちゃんと プリエンプティブマルチタスク でググれって書いてあるだろ?
ググっても理解出来なかったのか?w
0526デフォルトの名無しさん (ワッチョイ 9301-Kria)
垢版 |
2023/01/08(日) 19:53:03.23ID:QuJ5Wt8K0
>>524
だから プリエンプティブマルチタスク でググればいいだろ
まああんたはわかってるだろうけど簡単に言えばタスクの切り替えはタイマーでやってるからsleepなんか入れなくてもタスクは切り替わる

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

>>525
タコ乙w
0528デフォルトの名無しさん
垢版 |
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
こうなって、しっくりきたものの使い方合ってるのかがわからない
0535デフォルトの名無しさん (スップ Sdb3-1Rsz)
垢版 |
2023/01/09(月) 09:18:26.66ID:hshZ5aP/d
>>528
直接attrにアクセスするような書き方するなら__getattribute__を改造するのが手っ取り早そう
https://wandbox.org/permlink/8kyCCbavwFRBlV3R

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

聞いたのは、
「pythonでdictを継承したクラスの例を書いて」のみなんだが、
わざわざ聞くからには属性参照もしたいってことだろ?
と言わんばかりにその部分も補完したコード出してきてちょっとびびった・・
0551デフォルトの名無しさん (オッペケ Sr4d-4Wvq)
垢版 |
2023/01/09(月) 17:35:48.91ID:m0H/MGw3r
>>550
プログラミングよりそのスキル身につける方が早い時代は来るかも
0557デフォルトの名無しさん (ワッチョイ 9301-Kria)
垢版 |
2023/01/09(月) 20:38:05.70ID:YumOwVoa0
>>536
> 何度も言うがsleepを入れるのは時代とか関係なくそれはアーキテクチャと利用ケースによるものだ
だからなんのためにsleep入れてるんだよ
今でもWin3.1とか組込でノンプリエンティティブOS使ってるから時代に関係ないとでも言うのか?

> 組み込み分野では無限ループでトリガ待ちするのに無限ループで止めるのなんて20年以上前からやってる
話しそらそうと必死すぎw
0562デフォルトの名無しさん (ワッチョイ 0910-joCs)
垢版 |
2023/01/09(月) 21:39:13.38ID:fJBcDyWo0
確かにUIスレッドとワーカーを分ければUIが固まることは無い
実際のところ同一優先度でもタイムスライスしてくれるのでUIはなんとか動くし、優先度下げればさらによく動く

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

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

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

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

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

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

CPU 100%の話は
> 単純にメモリ内で巨大な配列の計算をしたいとかで、
> 人間が判るほど時間のかかる処理をする時に、
> ループの中に微小なsleepを入れておくと、そのタイミングでOSがタスク切り替えできるので、
> 他のアプリに影響せずに処理できる
とか昔のノウハウでドヤった老害がいただけの話
0574デフォルトの名無しさん (ブーイモ MM4b-mEot)
垢版 |
2023/01/10(火) 00:56:07.09ID:7fmBGHmvM
pythonでスレッドの優先度を指定できる?
0575デフォルトの名無しさん (ブーイモ MM4b-mEot)
垢版 |
2023/01/10(火) 00:57:08.39ID:7fmBGHmvM
threadingモジュールにはthere are no prioritiesって書かれてるんだが
0577デフォルトの名無しさん (アウアウウー Sa85-AyIk)
垢版 |
2023/01/10(火) 01:30:42.71ID:tyEc5PEMa
DoEvent しないと何も動かない。
基本的に、プログレスバーで処理の進捗状況も表示できない。
処理にCPU を使われるから、描画できない

スクレイピングでも、10秒ぐらいsleep しないと、ajax のページの内容が取れない。
他のプロセスに、CPUを与えないと通信できない
0579デフォルトの名無しさん (ブーイモ MM35-JgFh)
垢版 |
2023/01/10(火) 04:26:53.04ID:bCHQzZKpM
>>485
> 30代Pythonクソチョン男は強姦魔の犯罪者!
> あなたの近くにいます!
> 父母と祖父母の戸籍謄本を提出させましょう!

ホントそれ
0587デフォルトの名無しさん (ワッチョイ dba6-huHA)
垢版 |
2023/01/10(火) 13:37:01.45ID:vQglWnVB0
これまで自作プログラムの設定情報は、iniファイルに出力していたのですが、
これからはレジストリで管理したいと思っています。
iniファイルだと増えすぎてしまうので、、、

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

Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/
0591デフォルトの名無しさん (ブーイモ MM35-mEot)
垢版 |
2023/01/10(火) 21:08:28.15ID:mG8UnKKfM
レジストリよりiniのほうが遥かにいいんじゃね?と思うのは俺だけだろうか
0598デフォルトの名無しさん (スップ Sdb3-1Rsz)
垢版 |
2023/01/11(水) 12:09:27.84ID:gbRv1Z7ld
shellがわかってないやつかな?

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

VisualStudio環境は知らん
0605デフォルトの名無しさん (ワッチョイ 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だ。
が、ライブラリの導入先は予め承知していないと、そりゃ色んな意味で拙いだろ...
0609デフォルトの名無しさん (ワッチョイ ab33-DWwd)
垢版 |
2023/01/11(水) 19:14:51.41ID:koilfHaW0
venvがおすすめです
0610デフォルトの名無しさん (ワッチョイ 2b10-FOYR)
垢版 |
2023/01/11(水) 20:24:47.06ID:iHuPH8qf0
>>605
まとめの部分だけ読んだけど大体あってそう
Python 関連の調べものする時は日本語サイトは除外したほうがいい気はする (変なサイト多くない?)

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

ホントそれw
0621デフォルトの名無しさん (アウアウエー Sa23-n3t1)
垢版 |
2023/01/12(木) 20:21:00.92ID:VvkZ8RFRa
IDEって何がはやってるんだろう
VScode?spider?
0622デフォルトの名無しさん (ワッチョイ b954-Or7w)
垢版 |
2023/01/12(木) 23:18:40.94ID:Q9b1EyVr0
win10で使ってて、win10としては有効なパスなのに、
pythonから操作しようとすると長すぎてエラーになることがある
もしかすると、pythonではなくsubprocessで呼んでるコマンドかもしれないけど
何かの設定で長さなんか気にしなくできないのかな
0625デフォルトの名無しさん (アウアウウー Sa85-eGEx)
垢版 |
2023/01/13(金) 00:09:02.63ID:jY/X4hP5a
検索上位に出てくるnkmkというサイトが本当に邪魔
意図的にページ内リンクを貼らずに閲覧者にスクロールさせたり、文字列検索させようとさせたりするから使いにくくて仕方がない
0628デフォルトの名無しさん (アウアウウー Sa85-AyIk)
垢版 |
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 )
0629デフォルトの名無しさん (アウアウウー Sa85-DH5p)
垢版 |
2023/01/13(金) 09:50:43.36ID:NX/X2xhta
>>627 はプレフィクスの話をしているのに
>>628 が知ったか過ぎて糞ワロス
0632デフォルトの名無しさん (ワッチョイ 613c-wVfF)
垢版 |
2023/01/13(金) 12:42:41.48ID:GxyunKrd0
>>628
もう少し勉強した方がいいぞ
raw文字列を使えばエスケープシーケンスを使う必要はない
更にいうとpythonでもスラッシュを区切り文字に使える
あと\\?\プレフィックスはWindowsのルールであってpython起因ではない
こんな短い文章で3つも間違っているのは凄いな
0644デフォルトの名無しさん (ブーイモ MMab-Kn2b)
垢版 |
2023/01/13(金) 21:22:00.33ID:4z9M3olLM
勉強用にはWSL2の方がいいかもしれないけど、実際実用的なプログラムを作ろうとしたらpywin32とか必要なこともあるからねえ
conda使わないと環境が壊れるなんてことはないよ。普通にpoetryとか使えばいいだけの話だし、OSが依存してるPythonがないから、むしろぶっ壊れたってPythonインストールしなおすだけでしょ
LinuxとかでOS依存のPythonが壊れたら多分結構めんどくさいことになるけど。
0650デフォルトの名無しさん (ワッチョイ c633-w88e)
垢版 |
2023/01/14(土) 00:23:08.36ID:vxBJh77Y0
公式のPythonと併用せずに、anacondaだけ使うならそれでいいんだよ
デプロイ先やプロジェクト毎に異なる実行環境構築するようなものの為には作られてない
0651デフォルトの名無しさん (ワッチョイ c633-w88e)
垢版 |
2023/01/14(土) 00:29:29.98ID:vxBJh77Y0
機械学習できる環境を手っ取り早く構築したいっていうならanaconda進めるのはわかるけど
FlaskでWebアプリ作りたいって人がたまにanaconda使ってたりするのはやばいと思う
0653デフォルトの名無しさん (ワッチョイ 1d97-I4nj)
垢版 |
2023/01/14(土) 00:42:42.97ID:LmGwAWDD0
>>652
pytorchやtensorflowのチュートリアルでいいと思う
喜べ、理論を学ぶよりがむしゃらになんでもかんでも試す人の方が勝つ世界だ(自分は理論を押さえたいタイプなので負ける)
0655デフォルトの名無しさん (アウアウエー Sab2-eHNm)
垢版 |
2023/01/14(土) 05:26:40.68ID:0nayz3bja
>>651
か、仮想環境をたくさん作ってるんだょ
0656デフォルトの名無しさん (ワッチョイ cdf0-HuNF)
垢版 |
2023/01/14(土) 05:50:04.90ID:wkpIHJLy0
まあ実際python環境の構築はいまだに初心者泣かせだ
上にもあったがpipの依存なんかは初心者がハマると抜け出せない
linuxはさらに地獄でpython2とpython3が混雑するのは確定で
さらにanacondaやvenvや各種yumリポジトリ、ソースからのインストール、docker環境などもはやその辺の開発者が扱えるレベルを超えちゃった
0659デフォルトの名無しさん (ワッチョイ c633-w88e)
垢版 |
2023/01/14(土) 11:29:24.96ID:vxBJh77Y0
3.3てとっくの昔にサポート切れてるだろ
0661デフォルトの名無しさん
垢版 |
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:のとこが野暮ったく、そもそも全体的にもっと良い記述があるような
0662デフォルトの名無しさん (ワッチョイ 4aad-E1m+)
垢版 |
2023/01/15(日) 11:24:21.13ID:RjKVOkq+0
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0665デフォルトの名無しさん
垢版 |
2023/01/15(日) 21:01:09.94ID:EkruTxxD
>>664
なるほど
replaceがあったのか
_daysみたいな表記にも特にこだわる必要なくなったのでそっちのがスッキリしていいな
ありがとう
0671デフォルトの名無しさん (ワッチョイ a501-O1Xn)
垢版 |
2023/01/18(水) 00:14:37.02ID:hk0QW4ON0
python環境自体をパッケージングして配布する方法ってあります?
ソースコードだけだと各自のローカルのライブラリのバージョン次第で動かないとかありそうなので、dockerみたいに環境丸ごとやり取りしたいんですが。
0672デフォルトの名無しさん (ワッチョイ a501-7DGa)
垢版 |
2023/01/18(水) 01:07:09.81ID:ZQLfTfm70
>>670
「あなたが本当にやりたいのはA案ではありませんか?
もしあなたが提案するB案を採用すると以下のような
ごく特殊なケースだけをしょりすることになります。
それでよろしいですか?」
0673デフォルトの名無しさん (ワッチョイ c633-w88e)
垢版 |
2023/01/18(水) 01:16:21.29ID:O4NvFfr90
>>671
デプロイ先で実行環境を構築したいとかそういう話?
0674デフォルトの名無しさん (ワッチョイ c633-w88e)
垢版 |
2023/01/18(水) 01:24:34.07ID:O4NvFfr90
>>671
最初にPythonをインストールしてくださいってできないの?
0676デフォルトの名無しさん (ワッチョイ 4110-7DGa)
垢版 |
2023/01/18(水) 07:46:04.02ID:j8aICGQQ0
依存パッケージのバージョンの話なら requirements.txt 用意することになるんだろうけど、
ユーザーの環境にインストールさせるのがうざいよなぁ。
スクリプト本体とバンドルして配布できればいいのに。
0679671 (アウアウアー Sace-O1Xn)
垢版 |
2023/01/18(水) 12:32:41.36ID:hYVfYEsja
すみません説明不足だったかも。pythonの開発環境自体を、ライブラリを含めて配布したいのです。
調べたらWinpythonがそれっぽい?
0681デフォルトの名無しさん (ワッチョイ c633-w88e)
垢版 |
2023/01/18(水) 13:18:57.48ID:O4NvFfr90
>>679
どういう開発環境かもわからんし、pipが使えない理由もわからんけど
実行環境と開発環境をごっちゃにしてるのはわかる
よくわからんからとりあえずやってみたらいいんじゃね
0682デフォルトの名無しさん (ワッチョイ 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

先日、このアクセス初めて見たんだけど
こういう使い方できますってどこに書いてるん?
というかこれ何? 何をしてるの?
0684デフォルトの名無しさん (ワッチョイ cdf0-HuNF)
垢版 |
2023/01/18(水) 15:13:41.38ID:+ZuSWnJO0
>>679
ソースからインストールするのが良いと思う
特定のディレクトリにインストールして
pipモジュールも全部そこに入れる
PYTHONPATH環境変数さえ切り替えればディレクトリ丸ごとzip化して展開するだけで動く
0685デフォルトの名無しさん (ワッチョイ 954f-3xOh)
垢版 |
2023/01/18(水) 15:36:42.94ID:s0ETZiMG0
>>683
ああ0か1でインデックスアクセスしとるだけか…
0688デフォルトの名無しさん (ワッチョイ 8646-powr)
垢版 |
2023/01/18(水) 17:55:01.69ID:6kj4tnJC0
>>686
以下が全て同じ事ならおかしくないのでは。
l[x < y] = 10
l[True] = 10
l[1] = 10
0699デフォルトの名無しさん (アウアウエー Sab2-eHNm)
垢版 |
2023/01/18(水) 20:20:20.43ID:Hw+b6smNa
リストのインデックスやろ
0701デフォルトの名無しさん (ワッチョイ 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()]
は見たことある
0702デフォルトの名無しさん (ワッチョイ 9576-8egj)
垢版 |
2023/01/19(木) 08:00:24.00ID:cvaqY+KJ0
l[i+1]-l[i]
みたいなことは普通にやるでしょ

l[True]が許されてるのは知らんかったが
0718デフォルトの名無しさん (アウアウアー Sace-0njp)
垢版 |
2023/01/19(木) 18:56:11.00ID:TNs8/XJ0a
リスト内で複数行にまたがる正規表現って可能なもんですかね?

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

りんご.*れた みたいな感じのパターンを使って最初にマッチする行位置が取りたいっす。
0725デフォルトの名無しさん (ワッチョイ 9576-8egj)
垢版 |
2023/01/19(木) 21:34:15.13ID:cvaqY+KJ0
リストに分割されてない"\n"区切りの1本の文字列なら、
reのDOTALL使っていい感じにできそう?
0730デフォルトの名無しさん (ワッチョイ 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 が返りそうな気がする。
0739デフォルトの名無しさん (ワッチョイ a397-xFde)
垢版 |
2023/01/21(土) 18:29:49.08ID:vxlp1VLj0
分析用のコードとか簡単なアルゴリズム検証用のプロトでは書かないけど、
それなりに運用される前提のコードなら書くかなあ。
0753デフォルトの名無しさん (ワッチョイ 4310-Jpma)
垢版 |
2023/01/22(日) 14:08:53.41ID:mu8Nl5mu0
言われていないなら言われていないでいいよ。
別に書かなくても誰も困ってないんだろ。

コードで行っている処理を日本語などの言語で表現できないような状態はバグの温床だな。
0755デフォルトの名無しさん
垢版 |
2023/01/22(日) 14:46:00.56ID:lD3V8UVm
こういうことをしたいんだがもっと上手く書けないもんかな・・
https://ideone.com/QYEWI4
等分割ではなくて等比的に分割していく、みたいな

微妙にsum結果が合ってないのも気になる
0757デフォルトの名無しさん (ブーイモ MM1f-/qsW)
垢版 |
2023/01/22(日) 15:36:21.63ID:++gHrjAvM
おあつらえ向きに何がやりたいかわからんコメントが必要なコードが出てきたぞ
0759デフォルトの名無しさん (ワッチョイ 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))
0760デフォルトの名無しさん (ワッチョイ ff02-Jpma)
垢版 |
2023/01/22(日) 17:26:38.16ID:KzI8pxO80
この行は何をしたいのか
なぜこの選択肢を取ったのか
この選択肢を試してみたがこういう方法でうまくいかない

とかをコメントで残しておいてくれると
後々助かる
0762デフォルトの名無しさん (ワッチョイ f354-gNeF)
垢版 |
2023/01/22(日) 19:17:12.88ID:Dp7umTA90
関数名や変数名から想像した通りに動作をするならコメントは要らない
予想を裏切る行動をする箇所だけコメントが必要

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

それ、ドキュメント書きを怠けたい人の方便だからね。
誰に聞いたか知らないが、真に受けるのはやめよう。
そもそも、そうのたまう人が説明不要なコードを書いた試し無いでしょ。
0765デフォルトの名無しさん (スッププ Sd1f-msdQ)
垢版 |
2023/01/22(日) 21:56:14.88ID:nZDUyUTud
>>760の言ってる内容はコードとして残せないから残す意味がある
処理の内容を書く奴は処理とコメントに矛盾が生じたときに困るし、
コードとコメントの双方を直すことになる奴だから残すべきじゃない
0768デフォルトの名無しさん (ワッチョイ 8310-HsLm)
垢版 |
2023/01/22(日) 22:00:55.76ID:tbxzfOk70
>>763
自分のコードでもレビューでもそう意識して実践してるけどダメ?
>>762のようなケースもあるからこそ
ノイズになるしょうもないコメントは書きたくないから
なるべくコードだけで分かるように心がけてる
0771デフォルトの名無しさん (ワッチョイ ff01-WPS/)
垢版 |
2023/01/22(日) 22:23:35.47ID:o/PhajQ/0
>>765
コードコメントをAPIドキュメントとして使うよう場合は
仕様としての処理の内容をコメントに書く

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

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

そういうダーティな部分は最下層に追いやって、上の方はクリーンに書くので、
そんな難解なものを書けるチャンスはまずやって来ない
0780デフォルトの名無しさん (ブーイモ MMa7-xFde)
垢版 |
2023/01/23(月) 09:13:35.90ID:JALIr7W8M
>>779
numpyとかダーティになりがちだし、自分はnumpyのコードも書くからなあ。そう言うコメントを書く機会ある。
0782デフォルトの名無しさん (アウアウウー Saa7-KLwc)
垢版 |
2023/01/23(月) 15:20:45.47ID:wy0Tx5tFa
普段からコメント書いたり読んだりしてないといきなりは難しい
0785デフォルトの名無しさん (ブーイモ MMff-3swV)
垢版 |
2023/01/24(火) 01:38:47.57ID:k7nS/dQwM
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0786デフォルトの名無しさん (ワッチョイ 6f7a-um8e)
垢版 |
2023/01/24(火) 23:55:50.38ID:NOigsG6z0
ウェブサイトのデータ抽出してからエクセルにデータ貼り付けて、
そこからさらに重複していないデータ(データ一覧に一つしか存在しないという意味、リストにすでに含まれてたら…ってのはng)だけ取り出したいんだけど、
この重複してないデータの取り出し方法がわかりません
どんな方法ありますか?
0787デフォルトの名無しさん (ワッチョイ 8310-HsLm)
垢版 |
2023/01/25(水) 00:04:00.77ID:Eu1oQ2MW0
>>786
Python不得意ならExcelでやればいいんでは?
テキストファイル化してコマンドラインからuniq(PowerShellならGet-Unique)でもええし
Pythonならset(集合)にデータをタプルで入れていけば勝手に一意にはなる
0788デフォルトの名無しさん
垢版 |
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)
0790デフォルトの名無しさん (ワッチョイ cf46-l+ta)
垢版 |
2023/01/25(水) 02:54:09.95ID:na5kNBW00
>>786
仕様の「リスト」が何を指すか解らない。その一文を無視して、

連想配列(Pythonだとdic?)で、
var["データの1要素"]++
みたいなことをし、
var["データの1要素"] != 1 を捨てるかな。
0792デフォルトの名無しさん (アウアウウー Saa7-DmZS)
垢版 |
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}
0798デフォルトの名無しさん (ワッチョイ 6301-ffW7)
垢版 |
2023/01/25(水) 22:08:02.33ID:BPa0NAyM0
>>795
上にもあるけど単にリストのユニーク要素を取り出すならsetに一旦変換するのが楽だと思うけど
l = ['a', 'a', 'a', 'a', 'b', 'c', 'c']
print(list(set(l)))
ただ>>786のやりたいことがイマイチ分からないのでみんなエスパーするしかない
エクセルが間に挟んだのはどういう処理(過去保存データとのマージとか途中経過置きたいのか)とかリストって一次元のリストなのかとかがよく分からない
0800デフォルトの名無しさん (ワッチョイ 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
としたいと言っているのでなかろうか。どうだろう。
0804デフォルトの名無しさん (ブーイモ MMff-3swV)
垢版 |
2023/01/26(木) 16:56:31.08ID:T1n7nFq3M
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0806デフォルトの名無しさん
垢版 |
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

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

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

双方のボタンで前後入れ替えて表示したいのですが、良い案はありませんでしょうか。
0823デフォルトの名無しさん
垢版 |
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
# 消防士向きのポケモン ['カメックス', 'ゴルダック', 'ニョロモ', 'ニョロゾ', 'ニョロボン', 略
# 発電向きのポケモン ['コイル', 'レアコイル', 'マルマイン', 'サンダー', 'デンリュウ', 'ライコウ', 略
0824デフォルトの名無しさん
垢版 |
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()

このように、各ウインドウを最前面に表示することで、ボタンを押したときに前後入れ替えて表示することができます。
0825デフォルトの名無しさん (ワッチョイ 4ea4-5T4A)
垢版 |
2023/01/31(火) 15:22:58.11ID:M1DmxzTw0
>>822
出来ました、ありがとうございます!
全画面表示しかしていないので、もしかして表示/非表示にする必要は無いかもですね。
0826デフォルトの名無しさん (ワッチョイ 3635-5T4A)
垢版 |
2023/01/31(火) 15:30:49.11ID:F8VbnJh50
>>823
多分あってます、ありがとうございます!
0827デフォルトの名無しさん
垢版 |
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
#['コイル', 'レアコイル', 'マルマイン', 'サンダース', 'サンダー', 'デンリュウ', 'ライコウ', 略
0829デフォルトの名無しさん
垢版 |
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
この辺ぽいけど見たけどよくわからなかった
0831デフォルトの名無しさん (ワッチョイ 4ef2-5T4A)
垢版 |
2023/01/31(火) 22:49:45.03ID:ElV7WbZZ0
>>819の者です。
多分あってるといったけど問題文にあってませんでした。
下のurlの問題について
https://dpaste.com/E2T6AX67C
しらべた末に自分なりにif inをつかったけどダメでした
正解をおしえてほしいです
0833デフォルトの名無しさん (ワッチョイ 4ef2-5T4A)
垢版 |
2023/02/01(水) 01:50:28.37ID:p7QqUxzi0
>>832
ありがとうございます
今度こそ大丈夫そうです
0835デフォルトの名無しさん (アウアウウー Sa47-DSsr)
垢版 |
2023/02/01(水) 13:32:08.04ID:BH4poKX+a
with は、Ruby のコンテキスト(文脈)マネージャーみたいな奴か?

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

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

自分でエラー処理を書かなくてもよい
0838デフォルトの名無しさん (ワッチョイ 3b5f-+rQD)
垢版 |
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
こんな感じ
0839デフォルトの名無しさん
垢版 |
2023/02/02(木) 13:56:48.73ID:KmBGO/iG
ミックスインなるデザインパターンを見たけど
これほんとにメンテナンス楽になるんだろうか。。
端的には、
それ単体では実行できない部分に細分化したクラスを継承する
だけど
細分化した先のメソッドで「このプロパティなんだったっけ?」ってなるような
0842デフォルトの名無しさん
垢版 |
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の概念が合っているかどうかわからないけどこんな感じだろうか・・
0846デフォルトの名無しさん (ワッチョイ 8754-VB2L)
垢版 |
2023/02/03(金) 08:56:19.76ID:4ZQXLYki0
人類の敵
役人マインド
0847デフォルトの名無しさん (ワッチョイ 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が最新です。
何卒よろしくお願いします。
0855デフォルトの名無しさん (ブーイモ MM4f-68U3)
垢版 |
2023/02/07(火) 22:44:36.78ID:JLSdttvwM
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0860デフォルトの名無しさん (ワッチョイ 3f02-9FIK)
垢版 |
2023/02/09(木) 19:27:56.84ID:2nq9WSR10
ダウト
0862デフォルトの名無しさん (ワッチョイ 0f6e-F1up)
垢版 |
2023/02/10(金) 06:47:24.38ID:9NE3m3zk0
両方を本気で使っててvscode使い続けるやつがいるとは思えない
でもpyCharmの学習コストが高いっていうのはありそうだし、
知名度の差もあるからシェア的にはvscodeになりそう
0865デフォルトの名無しさん (ワッチョイ 0f46-+GrI)
垢版 |
2023/02/10(金) 16:37:07.28ID:VUhTkGAX0
AIはかげろう
0866デフォルトの名無しさん (ワッチョイ 3f7c-G5fH)
垢版 |
2023/02/10(金) 20:52:15.58ID:vj3ehjkG0
いうてもPyCharmてJavaScriptのフロントエンドもまあまあ扱えるでしょ
それでサーバーサイドPython+フロントエンドを開発できる
C#とかGoとかはやったことないからわからんけど
0869デフォルトの名無しさん (ワッチョイ 7f46-+GrI)
垢版 |
2023/02/10(金) 22:31:01.34ID:oWcE0R3w0
揉まなきゃpAI損
0873デフォルトの名無しさん (アウアウウー Sa4f-vQqS)
垢版 |
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

仕組みに重点を置いた本で、この本が最も簡単
0874デフォルトの名無しさん (アウアウウー Sa4f-STvZ)
垢版 |
2023/02/11(土) 15:46:05.91ID:sAfMiQQTa
Sa4fゴミだな
0879デフォルトの名無しさん
垢版 |
2023/02/12(日) 10:50:54.77ID:vYQ8HlVu
>Googleトレンドのデータに基づいてマスク氏の人気のピークが過ぎたと説明したエンジニアをその場で解雇したという。
>衝動的に従業員を解雇するため、チームごと消滅するサービスを別のチームが引き継いで
>「考古学者のようにコードを掘り下げ」状況を把握するところから始めなければならないと従業員の1人は語った。

やっぱどこもそうなんだな
0881デフォルトの名無しさん (ワッチョイ de30-bsiP)
垢版 |
2023/02/12(日) 12:32:44.31ID:TEyM1SUY0
生産設備なんかで使われるラダーや図面なんかは
設備を立ち上げた設計者以外とは別に
社内の生産技術、改造工事をする社内外注とか
いろんな人が見て、改造することが前提になっているので
誰が見てもすぐわかるようにわかりやすい形で標準化されている
製造業で世界のトップにのし上がった国だけに突き詰められている
0884873 (アウアウウー Sa4f-vQqS)
垢版 |
2023/02/12(日) 13:07:35.57ID:2oU17ty6a
電気自動車の中古を買う香具師がいない。
誰が、3年落ちの中古を買う?
無理

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

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

ああ、そういう設計思想なのね、と納得すれば理解できる感じのモジュールと違って、
腑に落ちない仕様が後から後から出てくる
0887デフォルトの名無しさん (ワッチョイ eb01-8ynX)
垢版 |
2023/02/12(日) 15:22:19.00ID:SibvJmIn0
>>885
grafanaとか使う方がいい
0888デフォルトの名無しさん (ワッチョイ fb97-VNfR)
垢版 |
2023/02/12(日) 20:26:28.32ID:u4Fhn/CP0
>>883
けどさ、電気電子板のPLCスレッドとか見るとわかるけど、絶対に間違っちゃいけない世界だから単純なことでも大変だと思うよ。
規模にもよるだろうけど、間違えたら人死にが出たり大損害を引き起こしたりするわけで。
アプリケーション屋と組込屋が分かれているのと一緒で、PLCのプログラム組んで問題なく動かすのはかなりのノウハウの塊だと思う。
自分は職業プログラマでweb、スマホアプリ、簡単なゲーム、簡単な組込みぐらいはやって比較的幅広くやってる方だと思うけど、
工場ドメインの様々な勉強が必要そうだから、PLCは出来る気がしないもの。
0890デフォルトの名無しさん (ワッチョイ 1eaa-bF0w)
垢版 |
2023/02/12(日) 20:42:26.52ID:Uw3AYzIK0
>>888
知り合いが大型航空機やってるけど
テスト時にプログラマーも乗せられるらしい
強迫性障害向きの仕事って言ってた
0891デフォルトの名無しさん (ワッチョイ de33-t1ev)
垢版 |
2023/02/12(日) 21:34:38.08ID:PLqOcqYy0
>>890
そんなわけないよね
0895デフォルトの名無しさん (ワッチョイ de33-t1ev)
垢版 |
2023/02/12(日) 22:30:05.80ID:PLqOcqYy0
問題が起こった時、普段はお客さんにごめんなさいするか、お客さんがプレスリリースでごめんなさいするかの範囲だったのに
問題が起こってるのを朝食食べながら見てたニュースで知った時は、速攻会社向かったわ
0896デフォルトの名無しさん (ワッチョイ ef6e-t1ev)
垢版 |
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の評価タイミングが
それぞれ別だと説明された時はめまいがしたよ
0906デフォルトの名無しさん (ワッチョイ fb97-VNfR)
垢版 |
2023/02/13(月) 04:51:00.05ID:hJs7vHnO0
>>890
あるだろうね。その場でバグを治すのは無理だけど、モジュール同士の不整合で起きた問題を察知する能力は、作ってる側だから高いだろうし。
このモジュールのブレーカー切ってくださいと適切に指示できる可能性は高いと思う。
0907デフォルトの名無しさん (ワッチョイ 0aad-OWHM)
垢版 |
2023/02/13(月) 05:25:35.75ID:/SHSFd6E0
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0913デフォルトの名無しさん (アウアウウー Sa4f-STvZ)
垢版 |
2023/02/13(月) 15:26:22.65ID:B5eUc1dfa
そのためのedgeなんだが
そもそも実行って言ってる時点でアレGe
0916ウィズコロナの名無しさん (ワッチョイ 3b10-D0vN)
垢版 |
2023/02/13(月) 19:58:27.85ID:LnNS0iyY0
ありがとうございます。
Python Interfaceで検索してみたらいろいろ出てきました。
ただ、PythonでInterface必須なクリーンアーキテクチャーやSOLID原則で検索してもこれというものが出てきません。
Pythonでは、無理なんでしょうか?
0921デフォルトの名無しさん (ワッチョイ 1e46-kPwk)
垢版 |
2023/02/14(火) 03:38:56.63ID:hQspEMKA0
>>919
そんなのあるんだ。
JavaScriptがJavaと違うように、PyScriptもPythonと違い、Pythonの感覚で書くとバグったりするのかね。
0924デフォルトの名無しさん (ワッチョイ 8a7f-wyQN)
垢版 |
2023/02/14(火) 22:55:42.96ID:xNbPR4cy0
Anacondaの仮想環境なんですが、
ApacheのhttpサーバーからAnacondaで作った仮想環境を呼び出すにはどうしたらいいんでしょうか?
0925デフォルトの名無しさん (ワッチョイ de33-t1ev)
垢版 |
2023/02/15(水) 00:43:19.53ID:m6ERJ1kZ0
>>924
mod_wsgi
0927デフォルトの名無しさん (ブーイモ MM3b-OWHM)
垢版 |
2023/02/17(金) 14:54:45.34ID:KaUoAYGGM
30代Pythonクソチョン男は強姦魔の犯罪者!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
0932デフォルトの名無しさん (ワッチョイ cbaa-t9pH)
垢版 |
2023/02/18(土) 14:34:50.38ID:fKLgEVwO0
呼び出しが重いから代入して使いたい
ガード節を置きたい ときは
分けて書いた方がいい。読みやすい

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

以下処理系
0934デフォルトの名無しさん (ワッチョイ 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.'

というエラーが出てしまいます
あえてデータフレームのインデックスやカラムのラベルを重複させている場合、どのような方法が考えられるでしょうか?
0938デフォルトの名無しさん (ワッチョイ cd54-BTrK)
垢版 |
2023/02/19(日) 09:44:11.66ID:3slf7lQG0
pandasのindexってかなりガンだよな
要らないことも多いし、無くても大抵どうにかできる
ぴったりはまると短く書けるけど、はまらない場合が邪魔すぎる

他との絡みでpandasでないといけない場合以外は、polarsの方がいいと思う
0939デフォルトの名無しさん (ワッチョイ 1501-BTrK)
垢版 |
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のプログラムコードを示せ。
また、これらのデータ列と回帰式を、グラフに示せ。
-----------------------------------------------------------------------------
0940デフォルトの名無しさん (ワッチョイ 1501-BTrK)
垢版 |
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}")
0941デフォルトの名無しさん (ワッチョイ 1501-BTrK)
垢版 |
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()
0946デフォルトの名無しさん (ワッチョイ cd7f-rAts)
垢版 |
2023/02/22(水) 20:15:58.88ID:hTf83RXL0
解答例とほぼ同じコードなのに時間内に何回やっても処理が終わらなくて
手元でも異様に時間かかるのなんでかわからなくて数時間悩んだけど
使わん関数定義削除しただけで爆速で終わったわ

なんで使用しない関数で遅くなるのかわからん
残しておかないと使いまわせないじゃないか
0950デフォルトの名無しさん (ワッチョイ 4b33-/+FQ)
垢版 |
2023/02/22(水) 21:19:36.29ID:iyWP0Wxq0
chatgptは日本語以外の情報が少ない事柄についてはだいぶよわい
https://pastebin.com/00CfEssp
0958デフォルトの名無しさん (ワッチョイ ee02-vYYH)
垢版 |
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の値が更新できますが
これは仕様なのでしょうか
0960デフォルトの名無しさん (ワッチョイ 4597-UlDE)
垢版 |
2023/02/26(日) 08:07:28.89ID:Lhu00T1Z0
>>958
x.append(100)はPython的には変更になってない、と言うのが正しいかな(変更の定義にもよるが)
ミュータブルオブジェクトの状態が変わるだけなのはOK、変数に代入されているオブジェクトのidが変わるわけじゃないから。ってことになるかな。
タプルだと当然のことながらそれは出来ない。
0961デフォルトの名無しさん (ワッチョイ 7610-okFi)
垢版 |
2023/02/26(日) 12:46:38.67ID:ivVZ3cSu0
>>958
subAの時はglobal aが無ければsubA内のローカル変数としてaが確保され、10が代入される
subBの時はローカル変数xは存在しないため自動的に外側のスコープxと解釈され、グローバル変数のxに対しappendが行われる
0962デフォルトの名無しさん (ワッチョイ 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ってなんやねんみたいになりませんか
0963デフォルトの名無しさん (アウアウエー Sa02-mjxs)
垢版 |
2023/02/27(月) 17:19:24.05ID:3MgFEhuya
そもそも例だからzなんだろうけど
zなんて名前をglobalで造って参照とか間違ってる
参照だけなら付ける必要はないが
あとxもyも初期化せずに使うのも嫌
暗黙に期待するな
0968デフォルトの名無しさん (アウウィフ FF39-mjxs)
垢版 |
2023/02/28(火) 12:15:16.49ID:xNmaYcy8F
再接続でIPだけ変更して連投がバレたときの言い訳の仕方は?
0971デフォルトの名無しさん (アウアウウー Sa39-TB2p)
垢版 |
2023/03/01(水) 06:02:07.65ID:sZY5tZ90a
ChatGPTのおかげでコーディングがはかどる
0974デフォルトの名無しさん (スププ Sdfa-mjxs)
垢版 |
2023/03/02(木) 10:29:17.43ID:yJHlyUH+d
971
どう観ても一手間も二手間も遥かに無駄に掛かるのに
何が嬉しくてやってんの
0980デフォルトの名無しさん (ワッチョイ 4597-UlDE)
垢版 |
2023/03/03(金) 01:54:05.56ID:JgMrEUad0
コード書いた方が考えられるタイプは、日本語で書いてコードに変換されるのはもどかしいと思う
自分はもやもやっとした感覚から直接コードが書けちゃうタイプなのでChatGPTは使わないけど
ただ大規模開発では通用しないやり方だなとは思う
0981デフォルトの名無しさん (ワッチョイ 7646-BmO7)
垢版 |
2023/03/03(金) 02:31:39.49ID:kOgX9HWa0
人生に必要な知恵はすべてChatGPTで学んだ
0983デフォルトの名無しさん (ワッチョイ 0d01-W5vA)
垢版 |
2023/03/03(金) 05:38:49.34ID:9LvEfLA40
>>980
丸投げは無理だが仕様書はかなり書けると思うわ

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

難点は人間があいまいだと Botが勝手に補完してありそうな仮定でどんどん前に進めてしまうことだ
だからとんでもない方向に行くことがよくある
人間の方が馬鹿なんだわ 残念ながら
0985デフォルトの名無しさん (ワッチョイ 0d01-W5vA)
垢版 |
2023/03/03(金) 05:51:37.58ID:9LvEfLA40
>>980
あなたはまだ若い(良い意味で)
説教臭くてすまないが、
日本語で文章に整理して設計スキルを上げることも考えた方がよいと思う
年取っていくとコード思考だけじゃいずれ行き詰まる
不快にしたのなら謝るが悪意はない
0987デフォルトの名無しさん (ワッチョイ 0d01-W5vA)
垢版 |
2023/03/03(金) 08:52:53.90ID:9LvEfLA40
Botで検証してみた 
あなたのいうとおりだった、悪かったな

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

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

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

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

違う
Botは>>983より賢い
これだろ
0990デフォルトの名無しさん (ワッチョイ 0d01-W5vA)
垢版 |
2023/03/03(金) 10:37:55.69ID:9LvEfLA40
Botともっと会話したほうがいいな
雑な質問すると原則的な回答しか貰えないが
専門性上げてくとどんどん本気で答えてくれるぞ

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

大学院卒クラスで自信があるなら
自分の専門分野でレベル上げて質問してみればいいよ
0993デフォルトの名無しさん (ワッチョイ 1a8e-iutv)
垢版 |
2023/03/03(金) 16:32:35.87ID:LRst27vA0
>>981
頭悪そう
0997デフォルトの名無しさん (アウアウウー Sa39-/C3M)
垢版 |
2023/03/03(金) 20:18:36.48ID:Fe/wPME4a
ちゃる
0998デフォルトの名無しさん (アウアウウー Sa39-/C3M)
垢版 |
2023/03/03(金) 20:18:59.81ID:Fe/wPME4a
チャとる
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を超えています。これ以上書き込みはできません。

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