Pythonのお勉強 Part6 ..
[2ch|▼Menu]
160:デフォルトの名無しさん
22/09/30 00:55:04.52 qun5+YRs0.net
昔から不思議なんだけど
何で分数で処理しないのかな?
最後に割り算を一回だけすれば
誤差がでないじゃないの

161:デフォルトの名無しさん
22/09/30 01:46:32.47 0IYvIpx66.net
掛け算でも足し算でも誤差が出るから

162:デフォルトの名無しさん
22/09/30 01:53:32.93 sForoGQI0.net
Pythonは整数側の桁数制限が無いのを利用して高精度にできそう

163:デフォルトの名無しさん (アウアウウー Sa43-hb2l)
[ここ壊れてます] .net
>>160
似たような大きさの数字ならその発想もいいけどね
現実はコスパの悪い任意精度の演算が必要になることが多いのでは

164:デフォルトの名無しさん
22/09/30 03:11:26.40 FkDRVgM50.net
>>160
つ fractions

165:デフォルトの名無しさん
22/09/30 04:56:46.10 HxNT59pn0.net
だから誤差の話するならIEEE754読めよ

166:デフォルトの名無しさん
22/09/30 04:57:30.60 CfDFJOy00.net
>>160
昔GCD付きの分数クラス作ったけど
結局はdoubleになったことがある

167:デフォルトの名無しさん
22/09/30 05:21:28.14 oHn8O8ll0.net
>>160
四則演算だけならいいけど√とかsin( )とかはどうする?
>>161
掛け算、足し算で誤差がでるケースとは?

168:デフォルトの名無しさん
22/09/30 08:01:25.94 Gm4+1fgX0.net
sinとかも内部は四則演算

169:デフォルトの名無しさん
22/09/30 09:17:00.10 oHn8O8ll0.net
>>168
近似演算の話されても困るんだがw

170:デフォルトの名無しさん
22/09/30 09:23:23.51 k91OtGRla.net
三角関数の近似じゃない演算て

171:デフォルトの名無しさん
22/09/30 10:05:45.64 EsKmogiV0.net
python chapelについて質問です。
情報があまりないので、チャペルについてお勧めのサイトがあれば教えてほしいです。

172:デフォルトの名無しさん
22/09/30 10:38:01.55 t/wNXSJY0.net
クヌースのTAOCP読むといいよ
コンピュータでの数値計算の全てが書かれてる

173:デフォルトの名無しさん
22/09/30 13:20:23.85 oHn8O8ll0.net
>>170
sinsin, cos のまま計算するって話だろ
数学不得意か?

174:デフォルトの名無しさん
22/09/30 13:47:23.87 k91OtGRla.net
>>173
そんなもん代数的な操作だろ

175:デフォルトの名無しさん
22/09/30 13:54:50.47 oSg68bQdM.net
>>160
遅いからだよ

176:デフォルトの名無しさん
22/09/30 14:09:07.38 oHn8O8ll0.net
>>174
話は>>160から始まってて途中は代数的な操作で最後に一回だけ演算することで誤差を抑えられるって話な

177:デフォルトの名無しさん
22/09/30 16:11:14.18 7g2iZKZC0.net
三角関数は二項演算じゃないから後も先もないだろ

178:デフォルトの名無しさん
22/09/30 16:39:44.93 du1MSukG0.net
ここまで有効数字の話なし

179:デフォルトの名無しさん
22/09/30 16:40:16.15 Gm4+1fgX0.net
有理数演算に有効数字は関係ない

180:デフォルトの名無しさん
22/09/30 17:02:40.52 7g2iZKZC0.net
実は誰も数値計算誤差について知らないのである

181:デフォルトの名無しさん (ワッチョイ 1e66-yYUR)
[ここ壊れてます] .net
組み込み系で、積算の量を保持していて
1秒毎に測定して何年というスパンで計算を続けると、
もう32bitでは精度が足りなくなる

182:デフォルトの名無しさん
22/09/30 18:26:40.60 J+iH2myB0.net
最後に浮動小数点数にして誤差を減らす方法は、代数的な計算ができる必要がある。
Mathematicaとか、SymPyだな。
ただ代数的な計算は上手いこと式を整理してやらないと簡単にならないことも多い。積分は公式を知らないと出来ない、というのと同じ。
有理数の四則演算だったら単なる有理数演算を逐次的に実行していけば問題ないだろうが。

183:デフォルトの名無しさん
22/09/30 18:28:54.96 J+iH2myB0.net
>>177
んなことないだろ。加法定理やら積和、和積の公式とか習わなかったのか。あの辺使うと極端な場合の誤差減らせるよ。
xが0に非常に近い場合のsin2x/sinxとかね。

184:デフォルトの名無しさん
22/10/01 03:53:03.59 SpYHa2lW0.net
お金の計算とかは
有理数しか出てこないんだから
分数で十分のような気がするんだが

185:デフォルトの名無しさん
22/10/01 05:23:12.47 9xFR6mUQ0.net
丸めたくない意図だと思うが加減算だけで速攻破綻する

186:デフォルトの名無しさん
22/10/01 05:55:22.47 jubCkgWp0.net
単にbit数が足りなくなるという話なので、
必要に応じてbit数を増やしていけばいい
無限に増えることは絶対ない

187:デフォルトの名無しさん
22/10/01 06:02:40.31 WTWdfTM50.net
質問です。
djangoの資格を作りたいとおもってます。
需要はありますか?

188:デフォルトの名無しさん
22/10/03 07:28:28.28 qHW/WFxU0.net
URLリンク(translate.google.com)
Google翻訳のページで、テキスト入力ボックスから「Tabキー」を1回押すと必ず「音声を聞く」のアイコンに移動するようにしたいのですが、Pythonで可能ですか?
通常は3回で行けるのですが、”原文の言語”や”もしかして”が表示されるとTabキーを押す回数が変わって面倒です。しかもリストが表示されててそのパターンなのか見えない。
Pythonで何とかしようとしてるのがそもそも間違っている気がして、簡単なHPをJavaとか?で作ったり、アドオンを組んだりとか別の手段が必要ですかね?

189:デフォルトの名無しさん
22/10/03 07:35:38.92 y8eCR1Dta.net
うるせえ

190:デフォルトの名無しさん
22/10/03 09:20:27.54 XqhFz79Ma.net
>>188
現在のフォーカスを取得することでTab回数制御できそうだけど
そもそも音声を聞く、のidありゃそこに飛ばせるやろ

191:デフォルトの名無しさん
22/10/03 10:02:57.41 qHW/WFxU0.net
>>190
seleniumを使ってプログラムを実行した時だけなら出来たのですが、普段使いで常にその状態にさせる方法が分からなかったです。
独自の簡単なChrome拡張機能を作る方向が一番良さそうな感じです。そっちで少しやってみます。お騒がせしました。

192:デフォルトの名無しさん
22/10/03 10:19:40.80 2xmZEmoH0.net
>>191
拡張起こさなくてもTampermonkey拡張でスクリプト書くだけ

193:デフォルトの名無しさん
22/10/03 10:33:51.18 vUZPctIIM.net
USWCとか使ってESCキーを押したら画像認識で再生ボタンクリックとかにすると簡単そう
ESCだと位置的に押しやすいし予測候補も消える
pyautoguiみたいなの使えばPythonでもUWSCと同じ事出来たはず
windows限定の話だけど

194:デフォルトの名無しさん
22/10/03 10:49:36.68 WjbJBDxU0.net
拡張する方向でやってもすぐに使えなくなったりするので、
キーやマウスの操作を発生させる方向でやるのが結局ベストだったりする

195:デフォルトの名無しさん
22/10/03 10:54:58.28 qHW/WFxU0.net
>>192-194
最初に調べるキーワードが出てこなくて分からないことが多いので情報助かります
頂いた情報を元に解決する方向でやってみます。ありがとうございました。

196:デフォルトの名無しさん
22/10/03 10:55:37.39 S1BqvHYWd.net
>>169
>>173
複素数や四元数を使うのが割りとマジでお薦め

197:デフォルトの名無しさん
22/10/03 11:05:12.96 zOLlU4yCa.net
オイラーをほめたたえよ

198:デフォルトの名無しさん
22/10/03 18:00:29.25 pcuzjq2H0.net
>>188
Ruby, Selenium でも、JavaScript を使って出来たけど、
ソースコードの何かの単語がブロックされるので、
ここには貼れないので以下へ
URLリンク(jsfiddle.net)

199:デフォルトの名無しさん
22/10/03 18:09:52.15 wCVa7NBkM.net
>>198
どーゆーこと?

200:1
22/10/03 22:09:32.24 yB/cj66NM.net
質問です
以下のプログラム(wikipediaの今日は何の日)をエクセルで起動させたときに最後の年号の()が取れてないとおかしいのですがどこのコードが間違っていますか?
優しい方教えてください
import requests
from bs4 import BeautifulSoup
import csv
import re
url="URLリンク(ja.wikipedia.org")
response=requests.get(url)
soup=BeautifulSoup(response.content,"html.parser")
top_entry=soup.find("div",attrs={"id":"on_this_day"})
entries=top_entry.find_all("li")
today_list=[]
for i,entry in enumerate(entries):
today_text=entry.get_text().replace("(","(").replace(")",")")
match=re.search("\(([1-9].*?)年\)", today_text)
if match:
today_list.append([i+1, entry.get_text(),match.group(1)])
else:
today_list.append([i+1, entry.get_text()])
with open("output.csv", "w", encoding="Shift_JIS") as file:
writer=csv.writer(file, lineterminator="\n")
writer.writerows(today_list)

201:1
22/10/03 22:11:29.02 yB/cj66NM.net
何度も本(スクレイピング・ハッキング・ラぼ)見返したけど間違ってないんです…

202:デフォルトの名無しさん
22/10/03 22:13:35.20 WjbJBDxU0.net
漢字コードとか?

203:デフォルトの名無しさん
22/10/03 22:15:49.89 phcGwi7g0.net
とりあえずこれに聞こうぜ
URLリンク(aiprogrammer.hashlab.jp)

204:デフォルトの名無しさん
22/10/03 22:28:30.42 cMmfYMlm0.net
お願いします
URLリンク(ideone.com)
for i in range(1, 100) で 99 回 next を呼んでいるのに、なぜ 79 で終わってしまうのですか?

205:デフォルトの名無しさん
22/10/03 22:28:53.24 fB4Oth8WM.net
>>203
すげぇこんなのあるんだ
でも解決しなかった(´・ω・`)

206:デフォルトの名無しさん
22/10/03 22:36:32.61 Hgv/NPoj0.net
>>204
n=15のときFizzBuzz Fizz Buzzの3つ表示されます

207:デフォルトの名無しさん
22/10/03 22:54:57.92 phcGwi7g0.net
これでいけそうですが、どうでしょうか
1から100までカウントして、15で割れたらFizzBuzzと表示して、5で割れたらBuzzと表示して、3で割れたらFizzして数字を表示する

208:デフォルトの名無しさん
22/10/03 22:58:18.22 phcGwi7g0.net
修正した
1から100までカウントして、15で割れたらFizzBuzzと表示して、5で割れたらBuzzと表示して、3で割れたらFizzして数字を文字列で表示する

209:デフォルトの名無しさん
22/10/03 23:01:03.63 cMmfYMlm0.net
>>206
elif にするべきだったんですね!ありがとうございます!

210:デフォルトの名無しさん
22/10/03 23:48:34.11 DL3YHdAw0.net
ウェブスクレイピングをやってみたくて奮闘しておりますが、CSVへの書き込み時にエラーがでます
どう改善すればよいかわからず困っています。助けてください。
おま環(Python 3.9.12+Windows10+VScode)
【コード】
for a in soup.find_all('a'):
link = a.get('href'), a.text
link.to_csv('link.csv')
【エラー】
link.to_csv('link.csv')
AttributeError: 'tuple' object has no attribute 'to_csv'

211:デフォルトの名無しさん
22/10/04 00:31:15.23 QZmM2iut0.net
>>210
URLリンク(pastebin.com)

212:デフォルトの名無しさん
22/10/04 06:25:16.21 UhX37WNP0.net
>>203
Python
Tuple to dataframe
で聞く

213:デフォルトの名無しさん
22/10/04 06:51:23.40 jZxsvBQn0.net
URLリンク(aiprogrammer.hashlab.jp)
ウェブスクレイピングで、aタグを取得し、そのaタグをcsvファイルに出力するコードを作成してください。
import csv
from bs4 import BeautifulSoup
with open("sample.html") as f:
soup = BeautifulSoup(f, "html.parser")
csv_file = open("output.csv", "w", encoding="utf-8")
writer = csv.writer(csv_file)
for a in soup.find_all("a"):
writer.writerow([a.text, a.get("href")])
csv_file.close()

214:デフォルトの名無しさん
22/10/04 22:24:51.48 fseuENfmM.net
知恵袋にも質問したのですがどなたか教えていただけると嬉しいです

URLリンク(detail.chiebukuro.yahoo.co.jp)

215:デフォルトの名無しさん
22/10/04 22:40:41.78 g6GmefYL0.net
>>211 213
丁寧に教えてくださりありがとうございます。

216:デフォルトの名無しさん
22/10/04 23:17:10.94 CNGS9dK70.net
>知恵袋にも質問したのですが
5ch はマルチポスト禁止です!
5chで質問する場合は、他での質問を取り消してからにしてください

217:デフォルトの名無しさん
22/10/04 23:19:23.00 NeQlYRE40.net
んなこたーない

218:デフォルトの名無しさん
22/10/04 23:24:09.71 4YJ9syiq0.net
さすがにインストールできてないのは答えようがない

219:デフォルトの名無しさん
22/10/04 23:28:30.56 IUIBMeejH.net
>>216
fj ではマルチポスト禁止の理由がありクロスポストという代替があったけれども、ここでのマルチポスト禁止の理由は?

220:デフォルトの名無しさん
22/10/05 00:22:21.08 Tx2gHWm/0.net
せっかくの集合知が分散するからじゃないの?

221:デフォルトの名無しさん
22/10/05 00:31:43.32 rm6FRUcS0.net
マルチ野郎はよそで解決しても報告しない
放置してそこら中にゴミを残す

222:デフォルトの名無しさん
22/10/05 00:40:43.93 93gtHac60.net
ぶっちゃけスレは落ちて過去ログになるし
検索性も低いから集合知の蓄積なんてしないよ
マルチポスト禁止は形骸化した旧きネチケットだと思う

223:デフォルトの名無しさん
22/10/05 00:56:27.52 Tx2gHWm/0.net
>>222
いやぁそうでもないと思うけどねぇ
2ちゃんねるの過去ログをあさって解決方法を見つけたことも数多あるし
解決できない場合でも、ヒントになるようなことが散らばっていて、それをきっかけに探し出せることもある
検索のやり方次第じゃないか?

224:デフォルトの名無しさん
22/10/05 01:03:22.70 93gtHac60.net
>>223
調べごとはよくするけど
2ちゃんで解決したことはないな、というか、検索方法によるだろうが出てきすらしない
大体Qiita、個人ブログ、stackoverflowのどれか

225:デフォルトの名無しさん
22/10/05 01:12:14.00 Tx2gHWm/0.net
>>224
いまはそうした5ちゃんねる以外の方がまともな完結方法があると思うよ
でも以前は、そういうのがほとんど当てにできなかったり、
*nixやマイナー言語、ハードウェア特有のトラブル、アングラ系wなんかだと、
英語資料を当たるきっかけやヒントが欲しかったりしたので、
2ちゃんねるのちょっとした書き込みがありがたかったなぁ
いまでも、"site:5ch.net" をつけてキーワードをググることで、
5ちゃんねるの集合知はちゃんと機能しているよ

226:デフォルトの名無しさん
22/10/05 01:17:40.14 j989iulk0.net
2ちゃんねるに書いてある事を、
そこまで信用したことはないな
あるとすれば、裏が取れたとき位
リンク張ってあっても、あやしげなサイトだったりすることもある

227:デフォルトの名無しさん
22/10/05 01:59:12.01 xc1v9MP10.net
今回みたいに簡単なエラー文も読めねえだけのカスがネット上に散らかることが多く
これが害悪であるのでマルチポスト野郎は基本的にクソである
集合知の分散ではない。無知の飽和が問題

228:デフォルトの名無しさん
22/10/05 05:43:38.64 FOT9/eKgM.net
ゴメン 今回の件は全面的に俺が悪い
すみません

229:デフォルトの名無しさん
22/10/05 05:45:37.15 FOT9/eKgM.net
>>227
エラー文のseleniumは既にインストール済だぞ

230:デフォルトの名無しさん
22/10/05 05:51:53.98 FOT9/eKgM.net
>>218
seleoniumはインストール済だよ
pip install selenium でね

231:デフォルトの名無しさん
22/10/05 06:08:56.11 Vke5X/wtM.net
Pythonが複数バージョンインストールされてるってオチじゃないの
よくあるAnacondaどうこうってやつ

232:デフォルトの名無しさん
22/10/05 06:09:13.82 FOT9/eKgM.net
selenium一度アンインストールして再度インストールしたら出来ました
スレ汚しスマン

233:デフォルトの名無しさん
22/10/05 06:11:17.00 FOT9/eKgM.net
>>231
朝早いですね!
再インストールしたら出来るようになりました
何故か知らないけど……
……というより勝手にブラウザが開いて閉じての動作を見た時は感動しました
すげー勉強する意欲が増した

234:デフォルトの名無しさん
22/10/05 06:57:09.88 wne70pEz0.net
>>219
マルチポストされると同じようなレスを複数回読むハメことあるし回答したら他のスレで既に解決してたとかあるからそりゃうざいわってことだろ
ちなみにクロスポストはたいていのリーダーでどれか一つ読めば他のグループへの投稿も既読になるし回答する際もディフォルトの回答先グループが指定できるから回答が散らばることも防げる

235:デフォルトの名無しさん
22/10/05 18:42:25.05 8ltN7Y6y0.net
原神スレかpythonスレかで迷ったんですけど、ちょっと失礼します。
URLリンク(github.com)
ディスコbotがサ終してたのでありがたくオフ環境に導入すべく頑張ったんです。
setupの手順から一通り終えてpy bot.py後なんですが
raise ValueError("Duplicate keys!")の無間地獄にはまってるんですけど
列行文でエラー指摘されてチェックしても全然関係無さげでわからない時どこ見たらいいですか?。
やっぱり基本を熟知してる人は修正して当たり前な場所とかを理解できてなくてエラー起きてるんですよね。たぶん。。
詳細足りなさすぎるのは理解してるんですけど、ほんと憶測適当アドバイスでいいので教えて下さい。

236:デフォルトの名無しさん
22/10/05 22:24:23.68 MbZCvQpZ0.net
>>220
それが理由だとしたらそもそも質問できる場が複数存在していて統一されていないことが悪いってことになる。

237:デフォルトの名無しさん
22/10/05 23:32:03.75 W5I+dJQy0.net
>>235
Duplicate keys! って、
データベースのUNIQUE インデックスまたは PRIMARY KEY に、
既に存在する同じキーで挿入しようとしたとか?
そのGithub のbot.py 内を「Duplicate」で検索しても、見当たらないけど?
どのファイルのソースコードなの?

238:デフォルトの名無しさん
22/10/06 01:46:24.04 eDAszKmt0.net
>>237
bot.py実行後に、~\Programs\Python\Python38-32\Lib\site-packages\toml
内のpython38-32のdecoder.pyからエラーが出てます。
powershellを使いました。 ほぼ素人ですみません。

239:デフォルトの名無しさん
22/10/06 02:48:03.34 2LM4DEsy0.net
コードじゃなくて食わせるデータがおかしいんでないの

240:デフォルトの名無しさん (ワッチョイ c32c-Kmz1)
[ここ壊れてます] .net
>>238
python入門おめでとう!

241:デフォルトの名無しさん (ワッチョイ 632c-LIzE)
[ここ壊れてます] .net
「python toml decoder duplicate keys」で検索!

TOML ファイルの形式になっていないとか?

ファイルがBOM付きUTF-8 になっているとか?
Python は、BOMなしUTF-8 じゃないの?

URLリンク(git.cardiff.ac.uk)

このファイルの781, 783 行目に、raise ValueError("Duplicate keys!") がある

242:デフォルトの名無しさん
22/10/07 07:11:32.41 0vlnX2v40.net
>>241
UTF-8になってました。
ValueError: Duplicate keys!とTomlDecodeError: Duplicate keys!が出ていますが
デコードが実行された結果キー重複が起こっているのを知らせただけで、原因はやはりbot.pyの中にあるのでしょうか?

243:デフォルトの名無しさん
22/10/07 09:55:21.23 BuUd5Oey0.net
>>242
tomlでエラー出てるなら
bot.pyで
config = toml.load(open("config.toml"))
っていう記述あるけど、config.tomlの中身がおかしいんじゃない?

244:デフォルトの名無しさん
22/10/07 13:38:21.48 6W+GCvSh0.net
Traceback (most recent call last):
File "test.py", line 31, in <module>
func1()
File "test.py", line 28, in func1
func2()
File "test.py", line 30, in func2
raise Exception("hogehogeException")
Exception: hogehogeException
こういうファイル名や行数とか出てないの?

245:デフォルトの名無しさん (ワッチョイ ff14-51cu)
[ここ壊れてます] .net
pyautogui素晴らしい最初に知りたかった

246:デフォルトの名無しさん
22/10/07 20:11:45.22 f7Qxxz6p0.net
ぴゃうとぐい

247:241
22/10/07 23:54:53.64 cLCpsl3k0.net
TOML のValidator で、TOMLファイルの形式が正しいかどうか、チェックすれば?
「toml validator online」で検索!
プログラマーなら、VSCode で、〜/toml/decoder.py をデバッグするとか、
decoder.pyを差し替えて、
raise ValueError("Duplicate keys!") の前後で、ログ出力してみるとか

248:デフォルトの名無しさん
22/10/08 07:10:23.20 kX9hT5zA0.net
PyAutoGuiも便利だけど何でもできるかというとかなり限定的
画面がこういう状態になったらこの条件に合う部分を探して、
この範囲をコピーしてこのアプリに切り替えてコピペ
みたいなことはできない

249:デフォルトの名無しさん
22/10/08 07:26:14.47 Qqe7/SLY0.net
ディスプレイを切ったら動かないのも使いづらい

250:デフォルトの名無しさん
22/10/08 11:25:58.24 TDMvIP2Ta.net
ライブラリ関数の情報を調査する方法についての質問です
sagemathというpython wrapperにあるpolygon3dという関数がどういうキーワード引数を持っているのか調べたいのです
ググるとinspect.signature関数というのが見つかります
コレでpolygon3dを調べてみると
signature = inspect.signature(polygon3d)
print(signature.parameters)
OrderedDict([('points', <Parameter "points">), ('options', <Parameter "**options">)])
と出ます
おそらく位置引数'points'とキーワード引数がいくらかあるという意味だと思うのですがやはりコレが限界なんでしょうか?
どんな名前のキーワード引数を持ってるかの一覧表を出力するような方法はないもんなんでしょうか?

251:デフォルトの名無しさん
22/10/08 12:37:16.55 ymJkU01o0.net
>>250
オープンソースなんだからGitHubに見に行けばいいじゃん

252:デフォルトの名無しさん
22/10/08 14:49:02.11 hw6LN7oLa.net
>>251
そうなんです
実際sagemathは割とドキュメントもしっかりしててググれば一覧とかもあります
でもいちいちめんどくさいじゃないですか
もしかしたら各オプジェクトで利用可能なキーワード引数のリストを得る方法とか容易されてたら便利でいいなぁと
結構ググったのでなさそうではあるんですけど、調べて「あった」場合はともかく「ないなぁ」の場合、やはり最終的には強者に聞いてみないとダメかなと

253:デフォルトの名無しさん (ワッチョイ 4aa5-gAv1)
[ここ壊れてます] .net
ドキュメントをぶっこ抜いてその関数がどんな引数とるかのポップアップをエディタで出せばいい

254:デフォルトの名無しさん (ワッチョイ ca14-0xn2)
[ここ壊れてます] .net
pyautogui
エラー出さずにできましたが最適ではない気がします
下記のやり方より良い方法があれば教えて欲しいです


pyautogui.write() でエクスプローラーのアドレスにパスを打ち込む時
日本語や \ が入力できなかったり、最初の C: が C* に勝手に変わったりしました
・pyperclip を使って値をコピーしてから、pyautogui.hotkeyで貼り付けました


pyautoguiを使って検索したりクリックしたりする時
・画像認識してから次の処理する時は、while pyautogui.locateOnScreen() is None: で time.sleep(1) させて
・検索結果表示とか全選択とか、少し時間がかかりそうな箇所は逐一改行して「time.sleep()」を書きました
これを書くのが結構あってcodeが余計に長くなりました

255:デフォルトの名無しさん
22/10/08 15:27:35.37 bWQzA1rj0.net
pyautogui 便利だけどマウスとモニターが使用不可になるのだけは面倒でした
下のソフトの処理ができるなら別のもので構わないのですが、pyautogui以外でやってる人がいたら教えてください
・Adobe Acrobat
・Evernote ※Legacy版
・ソシャゲ全般(デイリー回収用)

256:デフォルトの名無しさん
22/10/08 15:49:00.05 kX9hT5zA0.net
ahkで簡単なことはやらせてる
python化されたahkがあればいいのにと思っている

257:デフォルトの名無しさん
22/10/08 15:57:12.38 IpF+MZYD0.net
ahkって何?

258:デフォルトの名無しさん
22/10/08 16:00:09.87 xEoQJfh1M.net
sleepが面倒なら画像名を指定するだけで待ち&クリックする関数を作れば良いんでない
バックグラウンドでの使用は、昔VPCを多重起動して使ってたことあるけど今でも出来るんかな
昔、某MMOでプロセスメモリの内容を読み取って動くマクロとか作ったけど
プロセスメモリが読めればエスパーなマクロが作れるよ

259:デフォルトの名無しさん
22/10/08 20:40:05.22 bWQzA1rj0.net
>>258
それでやってみます
ゲームに使えるならプロセスメモリもその内手を出しそうです

260:デフォルトの名無しさん (ワッチョイ 034f-6jYr)
[ここ壊れてます] .net
>>252
VSCode, Ruby では拡張機能で、関数の説明なども見れる

また端末から、そういうコマンドを実行しても見れるけど、
ブラウザで見た方が見やすいので、
一旦コマンドで説明をHTML ファイルにしてから、それをブラウザで見て、
見た後に、HTMLファイルを削除する。
これが自動で行われる

ただし、その関数・モジュールの作者が、
Doc コメントみたいな決められた様式で、コメントを書いている場合のみ

たいてい、Doc コメントの説明などは、
パーフェクトRuby などのパーフェクト・シリーズ本に書いてある

261:デフォルトの名無しさん
22/10/09 04:21:23.14 L81MTKQk0.net
クリップボードにpathlibのPathで指定した、不特定多数のファイルをコピーをしたいのですが方法が分かりません
コピーするファイルは、フォルダー・テキスト・画像・動画・PDF関係なく、PC上で選択してCtrl+Cできるファイル全てが対象です
pyautogui.hotkey(“Ctrl”,”v“) を使って貼り付ける予定です。※Evernote Legacyというメモアプリ上で使いたい
pyperclip、shutil、pillow関連の記事は見つかるのですが、クリップボードに複数・拡張子問わずコピーする方法が見つかりません
どうすればできるのか教えてください

262:デフォルトの名無しさん
22/10/09 04:59:04.96 L81MTKQk0.net
今のところPathにあるファイル名いじって、検索かけてから全選択して、pyautogui.hotkeyでコピーするという遠回りなやり方でしてみました

263:デフォルトの名無しさん
22/10/09 11:51:56.93 xdRBYpSIM.net
FileDrop形式に変換できれば良いんだろうけどパッと検索してみた限り難しそうだね
VSを使ってクリップボードを監視してファイル名が含まれていたらFileDrop形式に変換するアプリを自作するか
コピー用のtempフォルダにファイルを一旦コピーしてから全選択→貼り付けとかでも良さそう

264:デフォルトの名無しさん
22/10/09 16:29:09.15 L81MTKQk0.net
>>263
FileDrop形式という単語を知れただけでも良かったです。ありがとうございます

265:デフォルトの名無しさん
22/10/09 20:19:39.13 nf8IBTFd0.net
chm形式のヘルプが3.7までしか野良に無いんだけど、3.10(stable)のchmどこかに無い?
公式はDLしたいけど404でオンラインでしか参照できなくて困ってる

266:デフォルトの名無しさん
22/10/09 20:45:08.96 Ozrjh9EB0.net
>>265
公式にpython3107.chmあるし、落ちてくるよ

267:デフォルトの名無しさん
22/10/09 20:53:03.75 nf8IBTFd0.net
>>266
すまん、日本語版希望。。。
githubに3.7jpビルドしてる人の使ってる

268:デフォルトの名無しさん
22/10/09 23:28:35.38 t9JKJStV0.net
>>261
漏れは、Ruby で、drag&drop での複数ファイルの移動処理を作ったけど、
これはファイルのみに適用される。
フォルダの再帰的コピーも出来るみたい
require 'fileutils'
dest_dir = "C:/Users/Owner/Documents/tmp/"
# ARGV は、ドロップした複数のファイルパスの配列
ARGV.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
file_name = File.basename( full_path ) # ファイル名のみ
FileUtils::DryRun.move( full_path, dest_dir + file_name)
end
sleep # 出力したコマンドプロンプト画面を閉じないようにする

269:デフォルトの名無しさん
22/10/11 09:09:33.80 L++CLq2X0.net
すみません、jupyter labで下記のように記述して実行したんですが、エラーでサイトが開きません。原因わかる方いらっしゃいませんか?
url = ''URLリンク(telegram.org)''
browser.get(url)
エラー内容
NoSuchWindowException: Message: no such window: target window already closed from unknown error: web view not found
browser.getをdriver.getに変えて試してもみましたがダメでした。
urlについてはサイトに飛べることをurlクリックで確認しました。

270:デフォルトの名無しさん
22/10/11 09:22:50.72 S+x+TbIN0.net
エラーメッセージの内容を切り分けて質問しろよ
エラーの原因はすぐわかるだろ
web view not found
まぁ、こんな状態でスクレイピングとかアホかって感じだけど

271:デフォルトの名無しさん
22/10/11 09:43:03.84 L++CLq2X0.net
>>270
回答どもでーす

272:デフォルトの名無しさん
22/10/12 16:39:03.55 +cq2T5fE0.net
python 3.10.8インストールしようとしたらエラー出る
こういうやつな
URLリンク(pullanswer.com)

273:デフォルトの名無しさん
22/10/12 16:41:57.24 Q9qje2Sc0.net
ご愁傷様

274:デフォルトの名無しさん
22/10/13 13:50:28.26 uklwGmra0.net
>>272だけど今試したら3.10.8インストール出来た
URLリンク(www.python.org) のフォルダの属性設定を間違えてたらしい
よって>>273は昨日の時点ではインストールしてないとすぐに分かるんだね

275:デフォルトの名無しさん
22/10/14 23:30:33.11 0UzEEAJh0.net
>>294
できました!辞書型なら列追加できるんすね

276:デフォルトの名無しさん
22/10/15 01:53:05.91 gy4T8Zz60.net
df_merged = pd.concat([df.iloc[:, 0], df.iloc[:, 2]], axis=1)

277:デフォルトの名無しさん
22/10/15 08:25:41.38 w1fQiwU/0.net
iloc()じゃなくてiloc[]の時点で、何しとるのかよく判らん

278:デフォルトの名無しさん
22/10/15 10:37:21.32 Awb5Gbls0.net
URLリンク(pandas.pydata.org)
ドキュメント嫁

279:デフォルトの名無しさん
22/10/15 14:09:18.62 wUAlKc2l0.net
質問です。
配列内にアルファベットの要素がランダムに複数個入っています。
これらの要素をなるべく隣り合わないように並べ替えるにはどうするといいでしょうか?
例:AAABBC -> ABACAB

280:デフォルトの名無しさん
22/10/15 14:14:45.53 w1fQiwU/0.net
不可能なパターンがあるな

281:デフォルトの名無しさん
22/10/15 14:20:59.88 1JUKlkYAM.net
>>279
なるべくっていう処理はコンピュータには不可能
きっちり仕様として示せる処理でなければならない

282:デフォルトの名無しさん
22/10/15 14:30:34.17 ttRM3D3c0.net
>>279
隣合うのが不可避の場合どうするのか
前に溜めるのか後ろに溜めるのか
2文字ずつ並ぶ→3文字ずつ並ぶのように緩和するのか

283:デフォルトの名無しさん
22/10/15 14:38:02.16 PHpzEK3Ka.net
>>281
最短を目指すとかよくあると思うけど

284:デフォルトの名無しさん
22/10/15 14:45:59.33 wUAlKc2l0.net
>>282
前後に貯めるのではなく、2文字ずつ並ぶ→3文字ずつ並ぶのように緩和できるようにしたいです。
例:AAAAAABBC -> AABAACABA

285:デフォルトの名無しさん
22/10/15 14:49:24.73 w1fQiwU/0.net
AABAACABA はNG箇所が2だけれど、
AAABACABA にすると1箇所で済む
2連続2箇所よりも3連続1箇所の方がスコアが低くなる評価関数の定義が必要

286:デフォルトの名無しさん
22/10/15 14:49:49.52 VXb7W7XW0.net
こういうパズル的なのはプログラミングお題スレで出題する方が早く回答が付きそうだな

287:デフォルトの名無しさん
22/10/15 14:51:37.73 VXb7W7XW0.net
>>285
n連続は1箇所につき2^n点のペナルティを課すとかは?

288:デフォルトの名無しさん
22/10/15 14:55:21.58 1JUKlkYAM.net
>>286
いや、ていうかよく考えたらこの質問Python関係ないじゃんね

289:デフォルトの名無しさん
22/10/15 15:03:04.47 wUAlKc2l0.net
>>288
すいません。
使っているのがpythonだったのでここで質問しました。
やはり難しいようなので、皆さんのコメントを参考に自力で考えてみようと思います。
ありがとうございました。

290:デフォルトの名無しさん
22/10/15 15:15:21.01 ttRM3D3c0.net
>>284
26要素のリストで各文字の個数をカウント
最大のものを見つけ出す
最大/他全部で連続個数が分かる
最大の文字を連続個数並べて他の文字を順番に挟む
挟む時は各文字の文字数をつじつま合うようにリストをカウントダウンして調整
同じ文字は可能な限り離したいとか条件追加するともっと難しくなる

291:デフォルトの名無しさん
22/10/15 15:17:51.26 ubtsaD1N0.net
>>280
ちゃんと確認してないけど、交互に置けない場合が条件になるのかな?
不可能条件
最頻出文字数 > 文字総数/2
かな

292:デフォルトの名無しさん
22/10/15 15:17:59.84 ttRM3D3c0.net
文字の挿入は総数がつじつま合うようにもっと工夫が必要だな
まあ頑張ってくれ

293:デフォルトの名無しさん
22/10/15 15:18:54.05 ubtsaD1N0.net
かぶった上に劣化だった><

294:デフォルトの名無しさん
22/10/15 15:33:35.79 wUAlKc2l0.net
>>290
>>291
ありがとうございます。
試してみます。

295:デフォルトの名無しさん
22/10/15 15:53:38.83 2u2iBEwS0.net
>>283
「なるべく」は結果についての話
最短は手順の話だから違うよね

296:デフォルトの名無しさん
22/10/15 16:21:01.13 w1fQiwU/0.net
ガチでなるべくなヒューリスティックな問題の方が現実には多い

297:デフォルトの名無しさん
22/10/15 16:39:39.77 ywjmScUEa.net
>>295
今回は結果の話しかないよな

298:デフォルトの名無しさん
22/10/15 17:41:55.96 Hv7z/9nw0.net
思いつきだけど
[合計文字数][26]の2次元配列を作る
各文字ごとに均等に配置
空白部分には空白なりNoneなり入れる
2次元配列を縦方向に連結して1次元配列にする
空白を除去する
ってのはどう?
aaabbc
[a,n,a,n,a,n]
[b,n,n,b,n,n]
[c,n,n,n,n,n]
abcaba

299:デフォルトの名無しさん
22/10/15 17:50:25.10 ttRM3D3c0.net
>>298
合計じゃなくて最大個数の文字数でいいな

300:デフォルトの名無しさん
22/10/15 18:29:11.63 a1geBJ2n0.net
for文の途中で条件に当てはまったら、for文の任意の値から処理を再開させる書き方とかありますか?
例えば「for x in range(10):」とあったとして、7の途中で条件に当てはまったら、3から再開してそのまま最後まで処理するみたいな

301:デフォルトの名無しさん
22/10/15 18:32:12.78 VXb7W7XW0.net
while使った方がいい

302:デフォルトの名無しさん
22/10/15 18:48:06.23 w1fQiwU/0.net
処理で条件が変わるような場合は、whileにしてもハマる
いつ終わるか判らないようなループは本質的に不安定

303:デフォルトの名無しさん
22/10/15 18:48:39.13 i+M+Mx9R0.net
再帰でいいのでは?

304:デフォルトの名無しさん
22/10/15 18:52:19.28 2u2iBEwS0.net
>>300
そういうジェネレータ作ってrangeと置き換えればいいんじゃね

305:デフォルトの名無しさん
22/10/15 19:03:32.69 jl8SG5IY0.net
あんま綺麗じゃないけど、こんな感じでいいのか?
競プロの連中ならもっとスマートなの書いてくれるはず
text = "aaabbc"
char = "abcdefghijklmnopqrstuvwxyz"
char_dict = []
for c in char:
____count = 0
____for t in text:
________if c == t:
____________count += 1
____if count > 0:
________char_dict.append({"name":c, "count":count, "left":count})
char_dict = sorted(char_dict, key=lambda e: (e["left"], -e["count"]), reverse=True)
result = ""
pre = ""
for _ in text:
____ci = 0
____while True:
________now = char_dict[ci]["name"]
________if now == pre:
____________ci += 1
________else:
____________result += now
____________pre = now
____________char_dict[ci]["left"] -= 1
____________char_dict = sorted(char_dict, key=lambda e: (e["left"], -e["count"]), reverse=True)
____________break
print(result)

306:デフォルトの名無しさん
22/10/15 19:10:00.74 jl8SG5IY0.net
よく見たら、聞くまでもなくダメなやつだなすまん

307:デフォルトの名無しさん
22/10/15 19:57:10.99 icx3tYx0M.net
>>305
とりあえずcollectionsのCounterだけは覚えようか

308:デフォルトの名無しさん
22/10/15 20:30:20.03 Hv7z/9nw0.net
Numpyで作ってみたで
URLリンク(ideone.com)

309:デフォルトの名無しさん
22/10/15 20:30:36.10 Ji35UDrea.net
きったね

310:デフォルトの名無しさん
22/10/15 20:48:46.65 jl8SG5IY0.net
>>305
ありがとう
このソートって思ったよりも難しいな
ツリー構造は理解できねえわ

311:デフォルトの名無しさん
22/10/15 21:15:49.97 jl8SG5IY0.net
アンカミスってた
>>307
ありがとう

312:デフォルトの名無しさん
22/10/16 01:02:14.69 moLuv1n40.net
>>279
URLリンク(ideone.com)
すごーく分かりづらいけど、2種類に分けて導き出した
区切り文字中心に考えたのに、そこで処理を分けてない体たらく
あと、同じ文字は出来るだけ遠く?は難しかった
〆切ってそうな話題ですまん、Python覚えたくてやってみた

313:デフォルトの名無しさん
22/10/16 20:28:46.68 MD6QHwBW0.net
質問です。
vscordとpycharmと他のパイソン系なのですが
「マルチグラボ」対応してるのを探してます。
お勧めはありますか?

314:デフォルトの名無しさん
22/10/16 20:56:42.88 tl8sUwzf0.net
Windowsで作成した画像を外付けHDDに保存する。
※macとWindows共通で使えるFAT32使用
それをmacPCのpythonのglobで画像のパスを読み込んだ時に
「バスケ」や「ポケモン」などの濁点と半濁点の検索ができません。
※printで中身を見るとあります。
原因や対処方法がありましたら教えて下さい。

315:デフォルトの名無しさん
22/10/16 21:20:40.98 F/Fiy6Pc0.net
unicodedata.normalize()

316:デフォルトの名無しさん
22/10/16 21:28:07.05 cG9YvU2e0.net
あれはあれでunicodeなんだよな
統一できてない

317:デフォルトの名無しさん
22/10/16 21:50:36.51 tl8sUwzf0.net
>>315
ありがとうございます。
うまくできました。

318:デフォルトの名無しさん
22/10/16 22:24:25.86 U1duiFVid.net
>>279
これ貪欲法で解ける??
解けるならAtcoderのCくらいででそう

319:デフォルトの名無しさん
22/10/16 22:53:43.69 1lEHOAQp0.net
Mac は「ハ + 濁点」「ホ + 半濁点」に分割しているのか
1文字にまとめるのが普通

320:デフォルトの名無しさん
22/10/16 23:02:52.94 cG9YvU2e0.net
昔からそうだったとかでもないのに
デファクトスタンダードに合わせるのは嫌というイキりたいOSの性格が現れている

321:デフォルトの名無しさん
22/10/16 23:16:15.14 N+fxT3Y10.net
昔はバやパを平気で使ってたぞ

322:デフォルトの名無しさん
22/10/17 00:13:29.63 uAMFVFmC0.net
半角カナを全角に変換した時に
文字数が変わるのを許容できるかという問題

323:332
22/10/17 01:43:17.91 fAAk7KG50.net
>>279
URLリンク(ideone.com)
内包表記とスライスを使ってみた
・・・Pythonヤバすぎる、便利すぎる

324:デフォルトの名無しさん
22/10/18 01:25:14.77 zc0QoIzs.net
単純なy1,y2の差ではなく、
y1がy2をcrossover(上抜け)したところの値とy2との差を、crossunderするまで取り続ける
y1がy2をcrossunder(下抜け)したところの値とy2との差を、crossoverするまで取り続ける
そのデータを取得したいのですが
何かうまい具合にできないものでしょうか
where使って切り替わりの判別はできたのですが
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
t = np.linspace(0, 10, 1000)
y1 = np.sin(t)
y2 = np.cos(t)
ax.plot(t, y1)
ax.plot(t, y2)
fig.tight_layout()
plt.show()
np.where(y1>y2,1,0)


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

595日前に更新/241 KB
担当:undef