くだすれPython(超初心者用) その44【Ruby禁止】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/07/24(水) 21:02:48.30ID:d1IM+Tl+
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨

このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので
  ↓等のてきとうなソースコード用うpろだに貼ってきてください。
ttp://ideone.com/      デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう

◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と
  実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。

◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/

〇前スレ〇
くだすれPython(超初心者用) その43【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1555397061/
2019/08/22(木) 14:40:36.08ID:OjO/vENV
>>217
いいよ
うんちぶりぶり!!
プログラミングなんてトライアンドエラー繰り返しだと思うしガンガレ
2019/08/22(木) 14:41:47.36ID:qSCycJ6B
>>219
おうよ!
221デフォルトの名無しさん
垢版 |
2019/08/22(木) 14:42:42.91ID:vsttXPXA
ほんとはトライアルアンドエラーやぞ
2019/08/22(木) 14:50:01.50ID:qSCycJ6B
>>221
友達おらへんやろ?
なったろか?
さみしないか?
223デフォルトの名無しさん
垢版 |
2019/08/22(木) 14:51:17.49ID:xQsiKIbM
b=a//2
または
print(f'{b:.0f}')
2019/08/22(木) 14:57:28.14ID:YHG3Udjg
教科書読んでドリル
225デフォルトの名無しさん
垢版 |
2019/08/22(木) 15:09:06.86ID:vsttXPXA
>>222
トライは動詞、エラーは名詞だから
トライアンドエラーは間違い
精進しろよ?w
226デフォルトの名無しさん
垢版 |
2019/08/22(木) 16:38:42.98ID:+sQNWHqe
>>212
python3からは勝手にfloatに変換されるので、intで閉じさせるならa//2とする
227デフォルトの名無しさん
垢版 |
2019/08/22(木) 16:40:18.63ID:+sQNWHqe
tryは名詞の意味もあるぞ
辞書引け
228デフォルトの名無しさん
垢版 |
2019/08/22(木) 17:11:06.84ID:vsttXPXA
>>227
これでいいかい?w
https://ejje.weblio.jp/content/trial+and+error

ついで。
「トライ・アンド・エラー」は間違い! 会議で使ってはいけない和製ビジネス英語
https://www.quicktranslate.com/blog/2017/09/%E3%80%8C%E3%83%88%E3%83%A9%E3%82%A4%E3%83%BB%E3%82%A2%E3%83%B3%E3%83%89%E3%83%BB%E3%82%A8%E3%83%A9%E3%83%BC%E3%80%8D%E3%81%AF%E9%96%93%E9%81%95%E3%81%84%EF%BC%81-%E4%BC%9A%E8%AD%B0%E3%81%A7%E4%BD%BF/
「トライ・アンド・エラー(試行錯誤)」は和製英語で、英語ネイティブは使わないのです。英語では、正しくは 「 trial and error (トライアル・アンド・エラー)」になります。
2019/08/22(木) 17:57:15.28ID:ewSTQs5i
カタカナで書いてる時点で和製英語にきまってるだろ
英語の文法とか何の関係もねーよ
2019/08/22(木) 18:01:49.82ID:bvtbd5/q
スマイル・シンデレラは間違い
スマイリング・シンデレラと呼ばなければならない

で、だからなに? って話だなw
2019/08/22(木) 18:31:51.10ID:k0K3XsJW
>>229
それ
りんごは英語でアップル
くらいの知能レベルの文
2019/08/22(木) 21:07:30.73ID:NZc4hO3L
和製英語禁止とか生活大変だろ
2019/08/22(木) 21:47:06.20ID:tsQp+M7t
例えば「エンバグ」は和製英語だが(その証拠に英英辞典には載っていない)
プログラマで使ったことないやつなんか10%もいないだろ
2019/08/22(木) 22:19:28.34ID:NtN1+LDS
VSCodeのPythonの型推論がクソ進化してる
もう型アノテーションいらないんじゃないかこれ
2019/08/23(金) 01:41:15.41ID:HCAwSO4F
https://www.p2pquake.net/dev/json-api/

JSONっぽいけど、始まりが[で終わりが]になってる
reqests.getで取得したとして
この中のearthquakeの中のhypocenterの中のnameを取り出すにはどう書いたらいいですか?
2019/08/23(金) 05:33:37.30ID:s44pimIO
>>233
エンバグってなに?
2019/08/23(金) 06:42:20.26ID:N9EC0fnt
エンバグなんて使ったことない
2019/08/23(金) 06:59:13.46ID:oK3Cn5/Y
こないだテレビ見てたらカーボーイハットの男が叫んでた。
2019/08/23(金) 07:22:07.28ID:eFyFop4/
>>233
自分の常識が世間一般の常識と思い込むのイクナイ
2019/08/23(金) 07:34:27.45ID:W0iLWMiN
>>233
それ業界英語だからや
普通に英単語でもあるぞ enbug
2019/08/23(金) 07:36:51.29ID:W0iLWMiN
>>235
アクセス過多で業務妨害罪でタイーホ!

URLてきに、apiでとれるようになってるんだろうから
そこ用のapiの勉強しんしゃー
2019/08/23(金) 08:16:50.69ID:Mz9ZP4mp
enbug バグを仕込むこと(故意でなくても)
2019/08/23(金) 08:29:31.08ID:1dI4xuIA
>>236
バグを直したら違うところがバグった
2019/08/23(金) 08:32:19.37ID:Mz9ZP4mp
ていうか英語の接頭辞のニュアンスくらいマなら知っとるやろ
2019/08/23(金) 08:57:07.61ID:W0iLWMiN
>>244
おまえの常識
周囲の非常識
2019/08/23(金) 08:58:29.25ID:Mz9ZP4mp
エンクロージャって聞いて分からんマとかおりゅ?
2019/08/23(金) 09:22:50.85ID:5TcsxCJp
>>240
CollinsにもWebsterにもMacMillanにもODEにも載ってないのに「英単語」と言い張るのは無理がある
もちろんこれらの辞書はすべてdebugはコンピューター業界での用法も当然に収録している
これでも不満ならありとあらゆる英単語を載せているOEDを引けば答えがわかる

ちなみにenbug.orgにも「日本語由来」と(英語で)書いてある
2019/08/23(金) 09:24:16.55ID:5TcsxCJp
正確には「日本語圏でしか使われていない単語」か
要するに和製英語を一部の人間が英語に持ち込んでるだけで英単語ではない
2019/08/23(金) 11:28:23.12ID:LjhFqZ/B
英語の大先生は中央線に飛び込んで死んでね
2019/08/23(金) 11:29:14.67ID:HCAwSO4F
>>235
r = requtsts.get(url)
d = r.text
d = json.loads(d)

これで最新の10件が取れますが[]で括られてます
リストってことになってしまうから例えば
d = d[0]
とやれば1件目が取れます

10件欲しいならforループ使えばいいのは分かるんですが、例えばissueの中のtypeを取り出したい時
for dd in d:
sType = dd['issue']['type']
print(sType)

これだと
KeyError: 'issue'
とエラーが出るのはなぜですか?
2019/08/23(金) 12:24:51.70ID:s+6jWuTi
コードガールこれくしょんの問題8-4をやっているんですが、以下の回答のどこがダメなのか分からず先に進めません…;
かなり初歩的な質問で申し訳ないのですがどなたか教えていただけると助かります。

from random import randint
#1から10のランダムな整数を出力して下さい。
a=randint(1,10)
print(a)
2019/08/23(金) 12:50:55.60ID:GCcQKmFF
print(randint(1,10))
これをループして
2019/08/23(金) 12:51:13.89ID:MQdWPEng
>>251
randrange使うんじゃないの?知らんけどw
2019/08/23(金) 12:56:09.54ID:MRE+SfwO
揚げ足とるとそれだとランダムな整数が代入された変数を出力してるもんなぁ糞だけど
2019/08/23(金) 13:47:49.94ID:jgkDRT2h
>>250
issueが無いデータがあるからでしょ
if 'issue' in dd:
とかでキーが存在するか確認しろ
2019/08/23(金) 14:16:36.43ID:5TcsxCJp
>>251
ちょっとやってみたけど
『文字列「"sky"」を出力してください』で
print("sky")で蹴られるとか明らかになにかおかしいだろこれ
2019/08/23(金) 15:03:24.96ID:s+6jWuTi
251です。他のステージもプレイしてみましたが、以前は正解になった回答↓でも不正解になったので公式側に不具合が起きているのかもしれません;
時間を置いて再度試してみます。コメントありがとうございました。

#文字列「egg」を出力してください。
print("egg")

#10から2を引き算して出力してください。
print(10-2)
258デフォルトの名無しさん
垢版 |
2019/08/23(金) 17:53:49.62ID:Zx6EO+xk
>>235
ここって今も更新されてるの?
2019/08/23(金) 22:34:52.86ID:bCjBZ45B
>>255
どうもありがとうございます
存在していないkeyでした

http://ideone.com/0ErCLL

これを実行すると
村上市 (2)
関川村 (1)
鶴岡市 (1)
な感じでプリントされますが、

村上市 (2), 関川村 (1), 鶴岡市 (1)
といったように、一行でプリントするにはどんな方法がありますか?

>>258
更新されているようです
Rubyでのサンプルページも作られていました
https://github.com/p2pquake/epsp-utils/tree/master/json_api_reader
2019/08/23(金) 22:40:04.86ID:bCjBZ45B
>>259
for p in points:
# print(p)
# sys.exit()
s = p['scale']
s = str(s)
s = scaleDic[s]
a = p['addr']
print(a, end=" ")

こうやるとaのvalueが横一列で表示されたので、試しに
print(a, end=" ", s end=" ")
こうやってみたらエラーでダメでした
2019/08/23(金) 23:03:35.92ID:VukiVfH6
format
2019/08/23(金) 23:57:42.43ID:bCjBZ45B
>>261
どうもありがとうございます

formatの使い方ですが、
print('{1} {0}'.format(points[0]['scale'], points[0]['addr']))
print(f'{points[0]["addr"]} {points[0]["scale"]}')

pointsの0番目を指定しているのでどちらも同じく
村上市 20
と表示されます
pointsの中にはいくつか入っているので0番目だけじゃなく全て表示したいのでforループを使いました
だけれどそれだと縦にプリントされてしまいます
.formatの指定の仕方で横にプリントが出来るということですか?
2019/08/24(土) 01:12:22.32ID:feuvYzbT
l = ['{}({})'.format(p['addr'], scaleDic[str(p['scale'])]) for p in points]
print(', '.join(l))
2019/08/24(土) 09:12:37.87ID:+nNIwdjo
print(a+"("+s+")", end=",")じゃだめなんか知らんけど
2019/08/24(土) 09:28:04.44ID:fnGH5ITP
改行無しを多くつかうなら
def princ(x):print(x,end="")
で、end=""を少なくすると良いかも
266デフォルトの名無しさん
垢版 |
2019/08/24(土) 09:51:52.05ID:BpytXyBE
これでお願いします
http://ideone.com/GEHy2w

template = '{0} ({1})'
for p in points: p['scale'] = scaleDic[str(p['scale'])]
output = [template.format(p['addr'], p['scale']) for p in points]
print(*output, sep=', ')
267デフォルトの名無しさん
垢版 |
2019/08/24(土) 10:57:17.18ID:6nD2xE5w
君のは無駄すぎる

print(', '.join(f"{p['addr']} ({scaleDic[p['scale']]})" for p in dd.get('points', [])))
2019/08/24(土) 11:06:04.31ID:xvjQRABf
後から湧いてきてエラそうなのが笑える
269デフォルトの名無しさん
垢版 |
2019/08/24(土) 11:12:04.69ID:6nD2xE5w
あと scale 46 もあるな
270デフォルトの名無しさん
垢版 |
2019/08/24(土) 11:17:47.27ID:6nD2xE5w
>>268
うびぃも後出しじゃんけんでperlをdisってるからな
他人の事は言えんやろ
2019/08/24(土) 11:49:43.27ID:c46ZB698
>>260 print(f'{a}({s})',end=', ')

一番最後にも , がつくのが少しうざいけど。
end= と言うのは print文の最後を改行の代わりに指定文字を出力して終わると言う意味だから、複数指定するのは間違い。
2019/08/24(土) 12:16:48.26ID:c46ZB698
>>259 >>266 scaleDic のキーは、str ではなくて、数字じゃ無いとダメだろ。
これで良い筈。
http://ideone.com/sld6FX
2019/08/24(土) 12:46:52.13ID:feuvYzbT
揚げ足取りばっかりだなw
2019/08/24(土) 12:54:31.62ID:SB9VKIDg
>>263
どうもありがとうございます!
l = [f'{p["addr"]} (震度{scaleDic[str(p["scale"])]})' for p in points]
ll =', '.join(l)
print(ll)
f'に置き換えても動きました!

>>264
>>265
どうもありがとうございます!
これらも確認してみます!
2019/08/24(土) 12:54:42.98ID:SB9VKIDg
prefs = {'山梨': 2, '東京': 42, '北海道': 2, '千葉': 12, '神奈川': 31, '茨城': 1, '埼玉': 5, '静岡': 3, '栃木': 1, '沖縄': 1}
これを
valueの多い順に、
東京 (42), 神奈川 (31), 千葉 (12)...
と並べる方法もありますか?

prefsSorted = sorted(prefs.items(), key=lambda x: x[1], reverse=True)
この関数だと、
[('東京', 42), ('神奈川', 31), ('千葉', 12), ('埼玉', 5), ('静岡', 3), ('山梨', 2), ('北海道', 2), ('茨城', 1), ('栃木', 1), ('沖縄', 1)]
value順に並べられるけど、リストでも辞書でもなさそうな形式に変わってしまいました。
不要な文字をstripやreplace等で消そうと試しましたが、タプルだから無理とエラーが出ました。

教えていただいたように
pp = '{} {}'.format(pSk, pSv) for pSk, pSv in prefs.items
ppp = ', '.join(pp)
print(ppp)
これには応用出来ませんでした
2019/08/24(土) 12:56:04.04ID:SB9VKIDg
>>266
>>267
>>271
>>272
ありがとうございます
レス頂いた内容ひとつひとつきちんと試してみます
2019/08/24(土) 13:15:05.15ID:cyI4/KcP
pp = ['{}({})'.format(i[0],i[1]) for i in prefsSorted]
print(', '.join(pp))
2019/08/24(土) 13:29:52.26ID:SB9VKIDg
連投すみません

>>264
>>265
>>271
これ(>>260) に対するendの使い方が分かりました

>>265
短いけれど内容難しいです
2019/08/24(土) 13:30:03.13ID:SB9VKIDg
>>266
formatの対象を別変数に入れたり、printでsepを使う時にアスタリスクが使える事が参考になりました

>>267
これ (>>263) をさらにコンパクトにしたってことなんですね

>>272
なるほど
scaleDicのkeyをstrじゃなくintにすればよかったんですね
2019/08/24(土) 13:43:44.40ID:SB9VKIDg
>>277
どうもありがとうございます!
formatでいけるんですね
じっくり調べてみます
2019/08/24(土) 14:14:17.12ID:SB9VKIDg
書き直しました
http://ideone.com/cVlEOe

pの中のscaleが空っぽの場合エラーになってしまうので、25〜26行目ようにifを使いました
一応これで動いてるっぽいんですが、やり方あってますか?
2019/08/24(土) 14:54:59.05ID:SB9VKIDg
教えていただいたおかげで、Rubyでのサンプル(https://github.com/p2pquake/epsp-utils/tree/master/json_api_reader)の実行結果のようにPythonでも表示できるようにしてみました。

引数有り無しで何分前までの情報を表示するか選べるようにしました。
ただ、時間指定するか件数指定するかで迷っています。
サンプルは100行ほどで治まっているけれど、自分のは1.5倍もあるのできっと無駄だらけ(特にmain関数内のインデント)なんだろうと思いました。

http://ideone.com/jf4yY4
https://i.imgur.com/694EBuR.jpg
283デフォルトの名無しさん
垢版 |
2019/08/24(土) 15:01:22.44ID:u2q8uNB0
>>281
p['scale']
の代わりに
p.get('scale', 0)
としてscaleDict[0]のところに'不定'など入れるべき
2019/08/24(土) 16:05:24.01ID:c46ZB698
>>281 24行目
scale = dic.get(k, “不明”)
2019/08/24(土) 21:07:21.79ID:SB9VKIDg
>>283
>>284
どうもありがとうございます
辞書を.getで使う事は知っていたけれど,で区切って代入したいものを書けば見つからない場合にそれが代入されるんですね
25〜26行目も不用になりました
勉強になりました
2019/08/24(土) 21:08:53.62ID:SB9VKIDg
>見つからない場合に

じゃなくて代入するべきkeyが無い場合
ですね
2019/08/24(土) 22:27:37.43ID:ZFPgn961
>>9
かなり遅れましたがあざーす!!!!!!
2019/08/24(土) 23:47:57.43ID:dA7WdXyV
Ruby には、式展開がある

文字列内の#{ } 内に、変数・リテラルなどの式を書くと、
式を評価してから、文字列に変換する

文字列に変換する際、Object#to_s が呼ばれる

a = 1

p "答え : #{ a + 2 }"
#=> "答え : 3"

こうやって簡単に、可読性が高いプログラミングができるから、Rubyは初心者向け。
Python では、こんなに簡単に書けないから、ものすごい時間を浪費するw
289デフォルトの名無しさん
垢版 |
2019/08/25(日) 00:22:10.20ID:YrUvuEmX
これは恥ずかしい
2019/08/25(日) 00:24:20.23ID:9mosJQ5t
>>288
Rubyくん
Python3.6からf-stringが導入されたからできるよ
精進したまえ
2019/08/25(日) 00:45:52.85ID:xUfkLqmE
a = 1
print(f'答え: {a + 2}')
答え : 3
2019/08/25(日) 00:50:05.77ID:xUfkLqmE
>>291
自分はこのやり方しか知らない
3.6以前や2の時代はどう書いてたんですか?
293デフォルトの名無しさん
垢版 |
2019/08/25(日) 00:52:43.33ID:AaCFD+Ee
xを2*10の行列にしたいんだけど、なんでこれだと20次元のベクトルになっちゃうの?
正解はどうすればよかんべ・・・・
import numpy as np

x = np.array([[]])
for i in range( 10 ):
x = np.append( x, [i, i*i] )
print(x)
2019/08/25(日) 00:55:00.62ID:zdoVOlQu
>>292
print'答え:'+str(a+2)
とか。
295デフォルトの名無しさん
垢版 |
2019/08/25(日) 01:59:09.84ID:mg6wG7oZ
>>293
np.appendの行を
x = np.stack((x, [i, i*i]))
にする

あるいは
x = np.arange(1, 10)
x = np.stack((x, x*x)).T
2019/08/25(日) 10:40:17.72ID:9mosJQ5t
>>293
サイズが予め分かっているならnp.emptyかnp.zerosで先にそのサイズで作成する
x = np.empty(shape=(10,2))
としてから
x[i] = [i, i*i]

サイズが予め決まっていない場合は、先にリストで処理して最後にnp.arrayにする
x = []
for i in range( 10 ):
x = x.append([i, i*i])

で入れたあと
x = np.array(x)
2019/08/25(日) 12:25:51.97ID:QmQLbs5R
自分が使ってる参考書の尼レビューに「小学生向け」とか書かれるとあまりいい気がしないね
別に子ども用の記載ないのに(´・ω・`)
2019/08/25(日) 13:08:55.31ID:x+sDslFz
>>297
逆に考えるんだ
最近の小学生は大人顔負けで凄いぞ
2019/08/25(日) 13:26:35.76ID:QmQLbs5R
>>298
愚痴こぼしてすまん。
初心者のくせに変なプライドが出てしまったようだ
小学生に追いつけるようにがんばる(´・ω・`)
300デフォルトの名無しさん
垢版 |
2019/08/25(日) 13:35:45.25ID:7aRWz3XD
たすけてください><
j = msgpack.unpackb(b'{"a": 1, "b": 0}', use_list=True, raw=False)
msgpack.exceptions.ExtraData: unpack(b) received extra data.
j = msgpack.loads(b'{"a": 1, "b": 0}', use_list=True, raw=False)
msgpack.exceptions.ExtraData: unpack(b) received extra data.
j = msgpack.fromjson(b'{"a": 1, "b": 0}', use_list=True, raw=False)
AttributeError: module 'msgpack' has no attribute 'fromjson'
2019/08/25(日) 15:59:49.84ID:p1Bsh7TM
クラスstudentがあったとして
そのstudentの集合からなるクラスstudentsを作って
各科目ごとの全studentの点数を出すメソッドをstudentsに作りたいんだけど可能です?
2019/08/25(日) 17:50:32.59ID:x+sDslFz
>>301
もちろん可能だけども、学校の課題でなければpandasでデータフレーム使うかな
2019/08/25(日) 18:09:34.72ID:x+sDslFz
>>300
質問の意図が分かりにくいのでキチンと説明しないと回答得られないよ

やりたい事は辞書型の{"a":1, "b":0}をシリアライズして、戻すということでいいのかな

辞書型→シリアライズされたデータ
j = msgpack.packb({"a":1, "b":0})

シリアライズされたデータ→辞書型
d = msgpack.unpackb(j)

もしやりたい事が辞書型からjson文字列を得る事なら、import jsonした上で

辞書型→json文字列
j = json.dumps({"a":1, "b":0})

json文字列→辞書型
d = json.loads('{"a":1, "b":0}')
2019/08/25(日) 19:15:24.57ID:x+sDslFz
>>301
一応書いてみた
https://ideone.com/zxfqpc

なおpandasを使うと
https://ideone.com/uyrmdE
2019/08/25(日) 21:14:15.88ID:huYbmweG
>>304
ありがとうございます!
そんな感じにappend出来るのですね。
2019/08/26(月) 13:09:21.76ID:FeBLI/8u
uwscのCHKIMGXのように裏画面であいまい画像検索できるようなライブラリがあれば教えていただけませんか?
2019/08/26(月) 13:37:33.83ID:D4IbCpMk
裏画面ってなに?
2019/08/26(月) 13:41:07.73ID:FeBLI/8u
すいません正式な用語がわからなくて…
デスクトップ上で、他のソフトウェアがかぶさっていて前面に表示されていない状態です
309デフォルトの名無しさん
垢版 |
2019/08/26(月) 15:42:44.48ID:T0vtMl8v
>>300
What you are looking for is something like FromJson (string)?
string JSON to object/MessagePack-Binary is not supported.

You can convert JSON to object once, and serialize it as MessagePack and save it again.
2019/08/26(月) 18:34:09.43ID:ezzRX+ou
あいまい画像検索ってなんだよまず
調べてもuwsc関連しかヒットしねぇぞ
2019/08/26(月) 18:38:33.49ID:ezzRX+ou
多分テンプレートマッチングの亜種だと仮定するとopencvで出来るだろどうせ
2019/08/26(月) 20:24:16.00ID:kxe7GuLs
俺の少ない知識ではWindows10の隠れた画面のキャプチャは出来なかったと思うので、一旦画面を前に持ってくる必要がある
パッケージはwin32guiでSetWindowPosん使ってHWND_TOPMOSTメッセージを投げ込めば良い

隠れた部分がDirectXやUWPなら多分隠れたままでもキャプチャできるんだろうが、そうなると今度はPythonからどこまで操作できるかという別の問題にぶつかる
2019/08/26(月) 20:33:02.20ID:jRCgz8sh
隠れててもwindowハンドルからdc取得すりゃできるよ
デスクトップのハンドルだとウィンドウ全部合成後の拾ってくるから無理だけど
2019/08/26(月) 20:38:27.65ID:kxe7GuLs
>>313
昔はそれでできた
今はできなかったと思う

試しにFindWindowでhandle取得してCreateDCFromHandleでデバイスコンテキスト取得してみたがウインドウサイズそのままに真っ黒になった
Windows Insider版だから自分の環境がおかしい可能性はある
2019/08/26(月) 20:45:07.64ID:jRCgz8sh
今もできるよ
俺作ったやつは後ろの普通に取れてる
アプリによっては無理なのあるけど
2019/08/26(月) 21:09:38.48ID:4zDPkHol
>>306
裏画面に存在するのは被検索対象なのかテンプレートなのか
被検索対象とテンプレートのソースは何なのか(ブラウザ等の外部アプリの画面なのか、画像ファイルなのか等)

最低限これくらい書いたらどう
uwscが一般に知られてる前提で書きすぎ
2019/08/26(月) 21:20:54.88ID:kxe7GuLs
>>315
あぁ、分かった
色々試して出来るもの、出来ないものがあった
出来ないのは電卓とかUWPっぽい

UWPはスクリーンショット取れる別の関数がC#にはあったがPythonはなさげ

質問者のアプリがUWPでないことを祈ろう
318306
垢版 |
2019/08/26(月) 21:32:01.93ID:FeBLI/8u
おっしゃる通りでしたすいません。

あいまい画像検索は、対象とする画面内に用意した画像と似たものが存在するかチェックするもので、検索した感じテンプレートマッチングと呼ばれるもののようです。

裏画面に存在するのは被検索対象で、テンプレートは自分で用意した画像です。
被検索対象はNoxというAndroidエミュレータで、テンプレート画像に近い画像が何度出てきたか記録して統計を取りたいです。

とりあえずopencvを調べてみますね。
2019/08/26(月) 23:44:15.71ID:z3tBqxBg
OpenCVでChkImgみたいなパターンマッチングは出来てるよ
電卓とかBlueStacksのInactiveCaptureはEnumChildWindows使えばいけるけどNoxならFindWindowとか適当でいい
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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