2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

くだすれPython(超初心者用) その37

1 :デフォルトの名無しさん:2018/03/17(土) 16:32:25.91 ID:S1lkLDnv.net
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その36
http://mevius.2ch.net/test/read.cgi/tech/1514805522/

337 :デフォルトの名無しさん:2018/04/15(日) 11:26:32.65 ID:mh4srQnS.net
(´・ω・`)アマゾンで参考書さがしてるけどおすすめの参考書はありますか?
パイソンの本ってむちゃくちゃ多いからまようー

338 :デフォルトの名無しさん:2018/04/15(日) 12:06:53.97 ID:VXOW+WoG.net
この本が、定本。
みんなのPython 第4版、2017

Python は、Ruby よりも難しい。
先に、この本を読め

たのしいRuby 第5版、2016

北大の湊真一が作った、ZDD なら、Ruby gem もある

339 :デフォルトの名無しさん:2018/04/15(日) 12:23:12.55 ID:E1b18XLI.net
>>336
webサイトで充分

340 :デフォルトの名無しさん:2018/04/15(日) 12:33:40.04 ID:Y8r4uZmH.net
パイチンくんの本がいっぱい出すぎで
どれを買っていいかわからないよ
みんなのパイチンくん
スラスラわかるパイチンくん
パイチンくん1年生
いちばんやさしいパイチンくんの教科書
いきなりパイチンくん
やさしいパイチンくん
パイチンくんからはじめる数学入門
独習パイチンくん入門
ホンキで覚えるパイチンくん
パイチンくん機械学習プログラミング

341 :デフォルトの名無しさん:2018/04/15(日) 12:36:21.44 ID:VXOW+WoG.net
「みんなのPython」が定本

そこへ、なでしこの作者・クジラ飛行机が参入した。
そこへ掌田津耶乃・大津真などの、多言語の作者も参入

342 :デフォルトの名無しさん:2018/04/15(日) 12:45:05.14 ID:E1b18XLI.net
rubyの本も急に沢山出た時期があるけど
流行りで出てくる本の九割以上は糞本
スルーでOK

343 :デフォルトの名無しさん:2018/04/15(日) 13:27:09.55 ID:BcrfAPr/.net
まあ流行りで本が沢山出るならまだ良い方だよ。それだけ売れるってことで、それはつまりやってる人が多いということだから。

344 :デフォルトの名無しさん:2018/04/15(日) 13:35:32.50 ID:fpkgMDqC.net
ディレクトリを指定してその中にあるファイルのパスをリストで取得できるモジュールとかないですか?

345 :デフォルトの名無しさん:2018/04/15(日) 13:51:11.42 ID:VXOW+WoG.net
Ruby なら、Dir.glob だけど、

「python list dir glob」で検索!

346 :デフォルトの名無しさん:2018/04/15(日) 13:58:56.84 ID:K+msyNFc.net
rubyが廃れた理由が分かるな。
いやrailsのバッテリーとして余生は安泰かwww

347 :デフォルトの名無しさん:2018/04/15(日) 14:28:51.90 ID:bGi543fi.net
Pythonではタブ記号の代わりにスペースを使う人が多いですが移動が面倒です。
タブ記号だと例えば、インデントが4つあっても4回の右キーを押すだけで移動できますが、
スペースの場合、16回くらい押す必要がありますよね。
どのようにしたらいいでしょうか?
エディタは秀丸を使っています。

348 :デフォルトの名無しさん:2018/04/15(日) 14:30:19.66 ID:Cnmy+aq2.net
>>347
・Sakuraエディタにのりかえる
・インデント機能を使った後、Tab->空白機能を使う

349 :デフォルトの名無しさん:2018/04/15(日) 14:40:56.80 ID:bGi543fi.net
>>348
Sakuraエディタは使ったことないけど、多分秀丸にも同じ機能はあると思うが、
タブにスペースを使うことが問題で
タブがスペースだと結局は16回、もしくは、ショートカットキーで飛ぶことになり面倒でない?

Tab->空白変換 機能は使ってるけど、
サンプルプログラムと手書きを何度もやりとりしてると
タブとスペースの混在で結構良い頻度でエラーになってしまう
統一したいと思ったり・・・

350 :デフォルトの名無しさん:2018/04/15(日) 14:46:01.79 ID:5EOPJhuZ.net
今時秀丸?
VSCodeとか使おうよ

351 :デフォルトの名無しさん:2018/04/15(日) 14:47:30.46 ID:CMfqpLbm.net
>>349
pythonファイルならスペース4つを一回で移動できるエディタたくさんあるよ

352 :デフォルトの名無しさん:2018/04/15(日) 14:57:48.74 ID:fpkgMDqC.net
>>345
globってそういう時に使うのですか
サンクス

353 :デフォルトの名無しさん:2018/04/15(日) 15:27:17.39 ID:Cnmy+aq2.net
>>349
うちは秀丸の設定で1タブ4半角スペース固定にしてる
それで
書いたらはしらせる直前に
全選択して Tab->空白

354 :デフォルトの名無しさん:2018/04/15(日) 15:37:38.38 ID:731FtqJf.net
ソフトタブだっけ?
俺Atomだけどスペース混在がどうのとか気になったことない

355 :デフォルトの名無しさん:2018/04/15(日) 16:10:57.24 ID:Cnmy+aq2.net
今ってたしか
タブとスペースの混在は('A`)ヴァーで
タブは(・A・)イクナイ
スペース4つにしましょうキャンペーン中じゃなかったっけ

356 :デフォルトの名無しさん:2018/04/15(日) 16:22:10.02 ID:7xK+P7p1.net
秀丸最強

357 :デフォルトの名無しさん:2018/04/15(日) 16:25:40.21 ID:7xK+P7p1.net
>>344
os.walk()
os.path.walk()
os.listdir()

358 :aiueo:2018/04/15(日) 16:44:03.35 ID:xfCmajNI.net
windows10
Python 3.6.5 C:\pythonにインストール済み
pip install -U selenium でseleniumインストール済み
ChromeDriver 2.37 インストール済み 
C:\chromedriverに入れて、Pathも通しました

aiueo.pyを作って、C:\myscriptフォルダに入れています
中身は、下になります
from selenium import webdriver
driver = webdriver.Chrome()

これを実行すると、
C:\myscript>python aiueo.py
Traceback (most recent call last):
File "aiueo.py", line 1, in <module>
from selenium import webdriver
File "C:\python\lib\site-packages\selenium\webdriver\__init__.py", line 18, in <module>
from .firefox.webdriver import WebDriver as Firefox # noqa
File "C:\python\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 20, in <module>
import http.client as http_client
File "C:\python\lib\http\client.py", line 72, in <module>
import email.message
File "C:\python\lib\email\message.py", line 10, in <module>
import uu
File "C:\myscript\uu.py", line 7, in <module>
options = webdriver.ChromeOptions()
AttributeError: module 'selenium.webdriver' has no attribute 'ChromeOptions'

エラーで実行できません。。助けてください

359 :aiueo:2018/04/15(日) 17:08:28.73 ID:xfCmajNI.net
できたー!!エラー治りました!

同じフォルダに入っていた、uu.pyというファイルを消したところ治りました
なぜ消したら治ったのか原因がよくわかりません
uu.pyをフォルダに入れると、またエラーが発生します

作っちゃいけないファイル名などがあるのでしょうか。。

360 :デフォルトの名無しさん:2018/04/15(日) 17:21:04.60 ID:CIuag2/D.net
>>359
ライブラリと同じファイル名使ってるだけ
https://docs.python.org/3/library/uu.html

361 :aiueo:2018/04/15(日) 17:30:47.57 ID:xfCmajNI.net
>>360
ありがとうございます。もともとuu.pyというファイルがあったのですね
適当にaa.py test.py cc.py kkk.pyとか適当ファイルいろいろ作って試してました・・
勉強になりました、ありがとうございます

362 :デフォルトの名無しさん:2018/04/15(日) 17:45:04.14 ID:CIuag2/D.net
>>361
ライブラリ作ってるならこの辺りも見ておいた方がいい
https://docs.python.org/ja/3/py-modindex.html

363 :aiueo:2018/04/15(日) 17:51:34.26 ID:xfCmajNI.net
>>362
プログラミングやったことない超初心者です。
スクレイピングでやりたいことがあるのでpythonインストールしてみました。

ライブラリとファイル名、かち合わないように気を付けます
わざわざありがとうございます!

364 :デフォルトの名無しさん:2018/04/15(日) 18:14:44.88 ID:WdW8h5cl.net
openpyxlを使ってExcelファイルのA2セルの値を取り出そうとしたんだけど
そのセルに書かれている計算式が取り出せました。

計算式ではなく、計算結果を取り出すにはどうしたらよいの?
こう書きました→print(ws['A2'].value)

365 :デフォルトの名無しさん:2018/04/15(日) 18:33:21.95 ID:5wGddKlA.net
>>364
使ったことないけどここら辺の話かな?
http://cloudsquare.jp/hibiki/blog/2018/01/30/openpyxl/

366 :デフォルトの名無しさん:2018/04/15(日) 22:39:51.61 ID:UX4y5Mn1.net
ありがd

367 :デフォルトの名無しさん:2018/04/15(日) 23:29:55.35 ID:9jzNqCls.net
長文になって申し訳ないけど、メソッドに関する質問。

1.Pythonで始めから使えるメソッド(.replace()とか)に呼び名はある?
 ビルトインメソッド?、ビルトイン関数?、メソッド?それとも他の呼び名?

2.help()関数のようにビルトインメソッド(仮)の定義を見ることはできるか?
 print(help(replace))と入力すると
 >>>NameError: name 'replace' is not defined となるため見れない

3.ビルトインメソッド(仮)はなぜ存在しているのか?ビルトイン関数で代替できないのか?
 メソッドがオブジェクト指向版の関数という自分の解釈なら、
 メソッドはライブラリかユーザー定義用だけにしておいて、
 ビルトインオブジェクト(クラス)のメソッドなんて用意するべきではないと思うから。

以上3点です。よろしくお願いします。

368 :デフォルトの名無しさん:2018/04/15(日) 23:32:53.30 ID:xpwShDOv.net
help(str.replace)

369 :デフォルトの名無しさん:2018/04/15(日) 23:42:33.10 ID:9jzNqCls.net
>>368
ほんとだ。ありがとうございます。
メソッドを呼び出す際は、ここでもオブジェクトが必要だったんですね。
そして、print()関数は不要でしたねすみません。

370 :デフォルトの名無しさん:2018/04/15(日) 23:44:00.12 ID:xpwShDOv.net
1.間違い
3.何が言いたいのか意味が判らない

371 :デフォルトの名無しさん:2018/04/16(月) 00:48:43.62 ID:+F/asDGP.net
>>370
1.はクラスメソッド、スタティックメソッドのことを言っているような気がするが、
XXXclass.replace()なクラスメソッド、スタティックメソッドはあったっけな感じだが....

>>367
3.に関してはPythonを作っている奴らにきくのが一番良い
ついでにjava,rubyも同様だからjava,rubyスレでも尋ねたほうが良いかも

372 :遊園地:2018/04/16(月) 07:50:52.76 ID:AgptP9w5.net
>>367
3
クラス継承したら良いと思う。

373 :デフォルトの名無しさん:2018/04/16(月) 12:31:15.81 ID:xRFNapub.net
ビルトイン型のメソッドはその型固有の機能だから
ビルトイン関数とは用途が違うんじゃないの

374 :デフォルトの名無しさん:2018/04/16(月) 13:13:36.14 ID:qlfABgAK.net
Ruby では、継承できて、インスタンスを作れる、class と、
継承もできず、インスタンスも作れない、module の2つがある

classに、moduleをインクルードして、機能を付け加えることを、Mix-in と言う

module内の関数は、多くのクラスで使えるような、汎用的なもの

375 :遊園地:2018/04/16(月) 16:33:02.84 ID:AgptP9w5.net
Recognizing hand-written digits

 画像ファイルを読み込んで結果だけ取得したい。

どの様なコードになりますか?

この場合は、421です。
http://fast-uploader.com/file/7079419507797/

376 :デフォルトの名無しさん:2018/04/16(月) 16:40:52.73 ID:r1/f7Sud.net
captcha禁止

377 :遊園地:2018/04/16(月) 17:43:27.26 ID:AgptP9w5.net
これなら、大丈夫ですか?
http://fast-uploader.com/file/7079423736170/

378 :デフォルトの名無しさん:2018/04/16(月) 17:56:18.32 ID:ZFIHRn8x.net
>>376
ちなみに何で?

379 :遊園地:2018/04/16(月) 18:50:38.80 ID:AgptP9w5.net
>>378
https://animeflv.net/ver/42639/getsuyoubi-no-tawawa-1

OK? Low grade

380 :デフォルトの名無しさん:2018/04/16(月) 19:33:30.30 ID:gUfDVwYo.net
url見てから回避余裕でした。アニ豚死ね

381 :デフォルトの名無しさん:2018/04/16(月) 20:14:00.57 ID:5B9l6nEL.net
chainer_pix2pixを自前で用意した画像でやってみたんですが
updater.pyの70行辺りで
x_in[i,:] = xp.asarray(batch[i][0])
Exception in main training loop: Broadcasting failedというエラーが出ました
なんとかnumpyのコピーのエラーという事が分かったのですが
どう直したらいいのか分かりません・・・お助け下さい・・・
batch[0][0]とx_in[i,:]の中身の画像これです
https://imgur.com/a/PViEJ

pix2pix
ttps://github.com/pfnet-research/chainer-pix2pix

ここの解説見ながらちょっとづつやってみたんですがほぼほぼわかってないです・・・。
ttps://spjai.com/pix2pix-image-generation/

windows 10です

382 :デフォルトの名無しさん:2018/04/16(月) 20:37:00.64 ID:OxnvPd0M.net
エラーはわかるが、お前が何をやってるのか全くわからんから答える気にならん

383 :デフォルトの名無しさん:2018/04/16(月) 21:02:19.87 ID:5B9l6nEL.net
>>382
すいませんでした
参考にしたサイトにある魚の線画を描くと魚っぽい写真になるの逆で
カラーの線画のない画像から黒い線画を書かせるという事がやりたいです。

384 :遊園地:2018/04/16(月) 21:06:58.35 ID:AgptP9w5.net
失礼ww IQ220ぐらい有るんですけど

>>375
が解りません

 教えて下さい
http://fast-uploader.com/file/7079435955779/


ぶひぶひぃ ぶひうぃいぃぃぃぃいいっwwww

 ぶひぃいいいいいいいいいいいいいいいwwwwwwwwwww

385 :デフォルトの名無しさん:2018/04/16(月) 21:26:32.35 ID:M9Gf/bCG.net
プログラミング自体初心者&独学です
aizu online judgeを順に解いていっているのですが以下のコードでRuntime Errorが出てしまいました。
なにが悪いのかまったくわからないので教えてください!
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ITP1_4_B


pi = 3.14159265359
r = int(input())
area = pi*pi*r
length = pi*r*2

print('{:.5f}'.format(area),'{:.5f}'.format(length))

386 :遊園地:2018/04/16(月) 21:31:05.09 ID:AgptP9w5.net
計算式が違う

387 :デフォルトの名無しさん:2018/04/16(月) 21:39:21.07 ID:M9Gf/bCG.net
小学生からやり直します(汗)
以下に修正しても同じエラーになるんですがなぜでしょうか(泣)

pi = 3.14159265359
r = int(input())
area = r*r*pi
length = 2*r*pi

print('{:.6f}'.format(area),'{:.6f}'.format(length))

388 :デフォルトの名無しさん:2018/04/16(月) 21:47:49.19 ID:M9Gf/bCG.net
なんかこれで通りました。
import math
r = float(input())
pi=math.pi
s = ( r ** 2 ) * pi
l = 2 * r * pi
print(s, l)

389 :遊園地:2018/04/16(月) 21:49:02.84 ID:AgptP9w5.net
試したけど、受け取り値がint型だけど、実際のテストケースではフロート型

390 :遊園地:2018/04/16(月) 21:53:12.17 ID:AgptP9w5.net
既に解決してるけど、12.3が123として計算されてるな。

391 :デフォルトの名無しさん:2018/04/16(月) 23:24:15.51 ID:ovdjG7M8.net
>>390
ありがとうございました!

392 :381:2018/04/17(火) 00:13:29.86 ID:3Zz6leMl.net
>>382
すいませんどこまで何をやったか、という事ですよね???
解説サイトにあったものをfacade_dataset.pyに丸っと上書き保存して
色のみの画像500枚をfacade/labelフォルダー
線のみの画像を500枚をfacade/baseフォルダーにいれて
同じように評価用画像もtest_dにdetabaseからとれるようにちょっと変えて
python train_facade.py -g 0 -o image --snapshot_interval 100実行したところエラーがでたって感じです
(学習用と教師用の画像は500枚用意はしたんですが
動くかどうかも怪しいのでいまは三枚づつしかフォルダーに入れてません)

393 :デフォルトの名無しさん:2018/04/17(火) 01:55:18.50 ID:PvksN2Vg.net
>>392
なんかすごいことをやっているな。俺には出来るレベルの物ではないな。
ただ、>>381のコードはそっくりそのままgithubよりもって来た物なのか?
それとも何がしらの変更を加えている?
>>381は、コードはgithubのままだけどそれだとエラー出るからエラー出ないように修正したいてことかな
ひょっとしたら、中身の画像によっては要コード修正なのかもしれないのかもしれないが

394 :デフォルトの名無しさん:2018/04/17(火) 04:43:58.56 ID:QMWYQNUe.net
>>385
print(f'{area:.5f} {length:.5f}')

395 :デフォルトの名無しさん:2018/04/17(火) 05:33:09.17 ID:Z6U7XFnZ.net
>>381
ブロードキャスト出来ない状態だから、テンソル(numpyアレイ)の次元が合ってないんだろう
元ソースと自分のプログラムで両辺のshapeをプリントかデバッガで見て比較すれば間違えた箇所に気付くと思う

それでもダメなら、もっと簡単なmnistサンプルとかでnumpyの処理を勉強し直した方がいいかも

396 :遊園地:2018/04/17(火) 11:03:58.69 ID:nd6YqIWE.net
darknetで検出した結果だけをキャプチャーするのって、どうするの?
ダメなら、テラテイルで聞くわww

397 :381:2018/04/17(火) 22:12:58.91 ID:3Zz6leMl.net
>>393
いくつか変更というか、
どちらかが途中で変更されたみたいで
そのままだとエラー出る感じです

>>395
ありがとうございます
numpyほぼほぼわかってなかったので
numpy勉強して小さい画像サンプルで
元のと同じ条件でやってみたものと
自分のやってるものと比較してみます。
何をやっていいのかもわからなかったんで
書いてもらった単語調べるだけでヒントザクザクで助かります
ほんとありがとうございます

398 :デフォルトの名無しさん:2018/04/18(水) 01:23:19.17 ID:2l4GI+/x.net
chainerはデータのパックが面倒くさいからあまり好きじゃない
numpy→タプルデータセット→イテレータ→アップデータ→トレーナー

tensorflowはshape未定義のプレースホルダーのままテンソル演算をさせる所が分かりにくい
最終的にC++やC#のアプリに組み込みたい時はこれしかないけど

kerasはnumpyを縦ベクトル化してfit関数に渡すだけだから初心者向けで一番楽だと思う
日本語の解説本が少ないけどwebの記事はそれなりにあるはず

399 :デフォルトの名無しさん:2018/04/18(水) 08:31:52.18 ID:aHPh72wK.net
インポートエラー、format_excみたいなやつが永遠と出るんだがなぜでしょうか...
3日前から急に発症して、前回まで動いてたpyファイル全て実行できない...

python入れ直したり、anacondaで入れ直したりしたけど改善されないです

400 :デフォルトの名無しさん:2018/04/18(水) 09:05:12.90 ID:IyxAGhJK.net
何かが、自動update されたのかも

例えば、moduleA が、moduleB 2.2 に依存しているとする。
ここで、Bが2.3 に、updateされたため、Aが使えなくなったとか

それか、環境変数PATH を上書きしたとか

401 :遊園地:2018/04/18(水) 09:54:49.07 ID:EkJY2Tio.net
anaconda入れ直すしか無いなw

402 :デフォルトの名無しさん:2018/04/18(水) 13:23:44.85 ID:KAGSbSSN.net
Anacondaでトラブってるの見る度に気持ち良くなるわ
バカすぎ

403 :デフォルトの名無しさん:2018/04/18(水) 16:20:24.68 ID:WEKhN2py.net
数字や数字を変えながら、ちょっとスクリプトを作る場合、
def(サブルーチン?関数?) の場所について、物理的に下側にないとエラーが出てしまう
プログラムの書き換える度に、下までカーソルを動かさないといけないし
地味に不便なんだけど、何とかならない?

404 :遊園地:2018/04/18(水) 16:39:07.37 ID:EkJY2Tio.net
深層部にif __name__ == '__main__':を持ってくるか。

clss XX():
def YY()
処理

なら、clss XXのdef YYを
def YY()
処理
として、classから外す。


タスクバーが邪魔なら、非表示か移動
スクロールが無いなら、スクロールが有るエディターに変更する。

出力結果なら、外部ファイルに保存して確認する。


クリックしたら、クリックした文字の横に移動できる。


状況が解らない。
 スクショ上げてくれたら、何か言えるかもな。

405 :デフォルトの名無しさん:2018/04/18(水) 18:50:18.12 ID:RFL5vDmV.net
>>399
×永遠と
○延々と

406 :デフォルトの名無しさん:2018/04/18(水) 23:23:28.17 ID:YRBnqMM/.net
初めまして。
よろしければ回答お願いします!
大学でpython3を使いブロックスというゲームのプレイヤーAIを作ろうとしているのですが、効率の良い攻め方を実現する方法が分かりません。
盤面の状況次第で臨機応変に対処できるようにしたいです。
何か良いアイデアはないでしょうか。
因みにpythonを扱うのはこの授業が初めてです。

以下ブロックスの詳細です!
http://saikoro-table.com/2016/12/05/blokus/

407 :遊園地:2018/04/18(水) 23:32:03.53 ID:EkJY2Tio.net
??

 ??? ?? ???


モンテ使って、機械学習で数百万回読み込ませば良い。

408 :デフォルトの名無しさん:2018/04/18(水) 23:43:26.51 ID:V0vvqvFn.net
alpha zeroのパクりならgithubにいくつか転がってるぞ

409 :デフォルトの名無しさん:2018/04/18(水) 23:45:52.84 ID:YRBnqMM/.net
>>407

すみません。自分含め班員もど素人しかいないので多分難しいです…

410 :デフォルトの名無しさん:2018/04/18(水) 23:50:57.82 ID:V0vvqvFn.net
難しくても丸パクりすればOK
理解は後からついてくる

411 :デフォルトの名無しさん:2018/04/18(水) 23:57:41.25 ID:V0vvqvFn.net
ちなみに素のモンテカルロ木探索だけだとあんまり強さが出ないかべらぼうな時間がかかる可能性があるので注意

412 :デフォルトの名無しさん:2018/04/18(水) 23:58:42.71 ID:YRBnqMM/.net
>>406

追記です。ボードの情報は board[X][Y]で与えられます。また、置ける場所をリスト?で返してくれる関数も与えられています。
ただこれをただ使ってるだけだと弱くて弱くて…笑
ということで、相手のピースとピースのつなぎ目を狙わせたいのですが、(そうすると強い)
いい方法解答お願いします。

413 :デフォルトの名無しさん:2018/04/19(木) 00:03:06.90 ID:K4+BGrIF.net
>>404
===test.py====
def learn(learn_mr,predict_mr):
maxrange = 15000
#・・・・・・・・・・・・
def iroiro:
maxrange = 15000
#・・・・・・・・・・・・
def iroiro2:
maxrange = 2
#・・・・・・・・・・・・
# def が大量に続く

###
input_file = 's1_x33x.txt' 例えばこの辺りを時々更新したい
f = open(input_file, 'r', encoding='utf-8')
Allf = f.read()
f.close()
Allf = Allf.replace("y","0 1 0 0 0") 例えばこの辺りを時々更新したい
row_step = 200
for row in range( row_step , 208900 ): 例えばこの辺りを時々更新したい
l_mr = mr[ row-row_step : row ]
p_mr = mr[ row : row+1 ]
dummy = learn(l_mr,p_mr)
dummy2 = iroiro(Allf)
print ("予備テスト完了")  例えばこの辺りを時々更新したい
###

エディタは秀丸で###と###の間を時々更新するばあい、言語によっては###間を先頭に書いて
下にサブルーチンをだらだら書いて必要に応じて呼び出す使い方ができるけどPythonだとどうすればいいかと思って
ショートカットキーで移動したり方法はあるけど、ファイルを開いてちょっと編集して閉じるみたいな使い方をすると意外とストレスで

414 :デフォルトの名無しさん:2018/04/19(木) 00:20:52.00 ID:4n9OXawP.net
>>403
関数の中にさらにインデントしたdefで関数を書けるから、ちょっとしたマクロっぽいことをしたい時は使う場所の近くに内部関数定義してる
あとは初心者には難しめだけどラムダ式とか

415 :デフォルトの名無しさん:2018/04/19(木) 00:54:21.32 ID:zrUS025p.net
>>413
このスレで有名になったperlさん?

416 :遊園地:2018/04/19(木) 02:43:06.18 ID:+uu+DOll.net
>>413
単純にリストにしたら?

[ [ファイル名], [置き換え] ]


classで纏めれるdefは纏める。
それから、継承して行く形かな。

https://ideone.com/4X41rB

print部分を適当な配列に渡す。ぐらいかな。


最後のfor文は、アイデアが出ない。

417 :デフォルトの名無しさん:2018/04/19(木) 03:37:44.72 ID:T1rC3373.net
>>413
forループの中でしか使わない関数なら、forループ内で内部関数としてdefをすることも可能
関数が大きい場合は、調整が必要な部分だけ内部関数に書いて、その関数内でもう一度外側の関数を呼ぶ二段方式もある

def outfunc(x):
外側の関数

for i in range(10):
def infunc(y):
調整が必要な部分
outfunc()
infunc() # 内部関数呼び出し

変更箇所が少ない関数を下に置きたいだけなら、メインシーケンスを def main(): などで囲んで関数化してから、
一番最後にインデント無しの main() か、if __name__ == '__main__': と インデント付き main() を一緒に書く

def main():
メインの処理
func()

def func(x):
外部関数の処理

if __name__ == '__main__':
main() # この時点で名前解決出来ていればエラーにならない

418 :デフォルトの名無しさん:2018/04/19(木) 03:39:32.00 ID:4mrmpy84.net
ブロックスについては、将棋・囲碁みたいに、評価基準を考える必要がある

1. 敵ピースの角に置く
2. 1マスのピースは、勝負所まで取っておく

まず、こういう高評価される手を列挙して、点数を付ける

AI の研究は、何年も掛かる

419 :デフォルトの名無しさん:2018/04/19(木) 03:50:24.69 ID:4mrmpy84.net
>>413
別のファイルに分けて、import すれば?

変数をコマンドライン引数で渡すとか、
設定ファイルに書いて読み込むとか

エディタは普通、VSCode を使う。
ソースコードのある範囲だけを、右クリックメニューから実行できる

普通、動的言語は関数定義を上に書かないと、関数を呼び出せない。
例外は、JavaScript で、関数の巻き上げ

420 :デフォルトの名無しさん:2018/04/19(木) 04:18:53.20 ID:T1rC3373.net
>>406
つなぎ目ならx,yからx+1,y+1までの4箇所の判定で対角2つ埋まってて2つ空いてる所を探せば良さそう
置ける場所リストの周辺の盤面を検索して、対角パターンを優先して、さらに出来るだけ大きいブロックを選べばいいと思う

全部の角の判定が正確に出来なくても、部分的にでも判定出来ればそこそこ強くなると思う

421 :デフォルトの名無しさん:2018/04/19(木) 04:24:10.12 ID:T1rC3373.net
>>420
訂正
対角2つが敵、1つが自分、1つが空白だった

422 :デフォルトの名無しさん:2018/04/19(木) 08:55:16.93 ID:5y+3njqT.net
>>418

ご回答ありがとです!因みに、あと二週間くらいで完成させなければならないのですが
点数つけるのは時間的にはどうなのでしょうか?

423 :デフォルトの名無しさん:2018/04/19(木) 09:02:53.03 ID:5y+3njqT.net
>>420

回答ありがとです!これは自分もしたいなって考えてたのですが、どう書けばいいか分からなくてですね…

疑問点を列挙すると
@判定の仕方
A判定後の評価
B現在使ってる置ける場所を教えてくれる関数が返してくるリスト?をその評価でソートできるのか。

って感じで前途多難です( i _ i )

424 :デフォルトの名無しさん:2018/04/19(木) 09:37:46.23 ID:4mrmpy84.net
評価基準を決めるには、何年も掛かる。
点数を決めて、敵AI と何千局も対戦して、微調整を続ける

将棋・囲碁もそう

425 :遊園地:2018/04/19(木) 09:54:14.94 ID:+uu+DOll.net
大前提がブロックスを完成済み。として、話が進んでるが、
ブッロク自体を作れてるのか気になる。

426 :デフォルトの名無しさん:2018/04/19(木) 10:09:51.11 ID:3+zW45NU.net
ガキの宿題手伝う必要ないでしょ

427 :遊園地:2018/04/19(木) 10:15:02.85 ID:+uu+DOll.net
期限が2週間も有り、大学費だしてるなら、

直接

  講師[先生]に聞いた方が良いよ。


むしろ、聞け。

 なんの為に学費だしてるんの?

428 :デフォルトの名無しさん:2018/04/19(木) 10:34:58.58 ID:5y+3njqT.net
>>424

そうなんですね!それは厳しい…( i _ i )

>>425

ブロックはアルファベットaから21字が割り振られて最初から与えられていて
置ける場所を
(X座標、Y座標、ブロックの形、回転)
のリストで返してくれる関数?を使ってます。

429 :デフォルトの名無しさん:2018/04/19(木) 10:37:55.70 ID:5y+3njqT.net
>>426

手伝ってくれたら嬉しいです

>>427

先生が答えてくれない先生でですね…
聞いても調べてくださいとしか言われないので
こちらにお邪魔させていただきました…

430 :デフォルトの名無しさん:2018/04/19(木) 10:56:08.16 ID:j5tv0M09.net
Pythonむずい!
なんでこんなむずいの?

431 :デフォルトの名無しさん:2018/04/19(木) 12:13:54.17 ID:cIc2YD7o.net
pythonてかやろうとしてることが難しいんじゃないの?
言語としては簡単な方でしょ、同じことを別の言語でやってみたら分かる

432 :デフォルトの名無しさん:2018/04/19(木) 12:17:59.12 ID:4mrmpy84.net
そりゃあ、ブロックスなんて答えが無いだろ

将棋・囲碁みたいに、対戦コミュニティがあるか?

まず、コミュニティへ行って、AI 同士で、何千局も対戦して、
微調整を続けないと、無理だろ

433 :デフォルトの名無しさん:2018/04/19(木) 12:19:39.36 ID:2nanKMvG.net
>>429
今時そんな殿様商売あるのかあやかりてぇ
いいなー先生様は

434 :デフォルトの名無しさん:2018/04/19(木) 12:23:58.79 ID:4mrmpy84.net
強いAI を作るのは無理だから、

とにかく、次に置けるマスだけを、リストに入れて、
その中からマスを適当に選んで、適当に選んだピースを置け

それで良い

435 :デフォルトの名無しさん:2018/04/19(木) 13:12:52.70 ID:f7DkAV9f.net
AIは可能な選択肢のうち、0点以上の最高得点手を打つ。同点時はランダム。初期値は0
AI同士に勝負させて、打った手は全部保存しておく。最終的に勝ったほうは手のそれぞれにプラス点、負け側はマイナス点
ってやろうぜw
それを二週間延々繰り返させたら強くなるんじゃなーい?

436 :デフォルトの名無しさん:2018/04/19(木) 15:02:28.67 ID:c48O4SX1.net
どんなゲームだか知らんけど
とある局面のとある手に対して、
その後は両者ランダムに打って終わらせる試行を100回くらい繰り返して
勝った回数をその手のスコアとすれば良い

総レス数 992
262 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200