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

■ このスレッドは過去ログ倉庫に格納されています
2019/10/16(水) 10:17:12.96ID:dCHq3Ix4
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨

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

★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので
  ↓等のてきとうなソースコード用うpろだに貼ってきてください。
  スクショをImgur等にう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(超初心者用) その44【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1563969768/
652デフォルトの名無しさん
垢版 |
2019/12/12(木) 23:54:29.36ID:ZS52b4mm
from selenium import webdriver
browser = webdriver.Chrome('chromedriver.exe')
browser.get('https://qiita.com/advent-calendar/2016/crawler')

calendar = browser.find_elements_by_css_selector('div.col-sm-12')

for col_sm in calendar:
col_sms = col_sm.find_elements_by_css_selector('th.adventCalendarCalendar_dayName')
print(col_sms.text)

エラーが
---> 9 print(col_sms.text)
AttributeError: 'list' object has no attribute 'text'
と表示されます。textで出力できないのはなぜなんでしょうか?
色々調べているのですが出力方法がわかりません。
初歩的なことですみませんが教えていただけないでしょうか。
2019/12/12(木) 23:58:02.89ID:n05Ewb3K
>>651
setが辞書のキーだけを集めたコレクション
2019/12/13(金) 00:15:27.02ID:+9OE4qBy
>>652
ブラウザのコンソールからJS叩くかIPythonとかでデバッグするかして
そのCSSセレクタで意図した要素が取得できてるのか確かめるといい

ビジュアルに確認できるのでブラウザのほうが最初はわかりやすいと思う
655デフォルトの名無しさん
垢版 |
2019/12/13(金) 01:37:03.59ID:cqNP6rMk
>>654
ブラウザコンソール開いてみました。ブラウザコンソールについて調べてみたのですが
よくわかりませんでした。ここに何かのコードを入力するのでしょうか。
JSとはなんでしょうか?
Jupyter Notebookを使っていまして取得したいcol_smsには
<selenium.webdriver.remote.webelement.WebElement (session="667d743c5f872d23247665eb139f3bac", element="f43fbb00-654d-472f-b0f0-1b43973384b4")>
というようなものがいくつか入っているのですが、textを使っても出力されない状況です。
質問ばかりですみません。
2019/12/13(金) 02:19:41.88ID:VJl1Rt3v
普通に長さが1の配列が戻ってきてんじゃね
イテレーター使って.text使うかcol_sms[0].textでいいんじゃね

col_sm.find_elements_by_css_selector()の戻り値ggれば解決しそうな話
俺は面倒くさいのでggりませんけども…!
2019/12/13(金) 03:41:11.64ID:+9OE4qBy
>>655
JSはJavaScript
スクレイピングするならHTML/CSSと
JavaScript/DOM APIの基礎知識は必須

browser.find_elements_by_css_selector('div.col-sm-12') はJSで
document.querySelectorAll(‘div.col-sm-12’) とするのと同じ

find_element_by_css_selectorは最初に見つかった要素を返す
find_elements_by_css_selectorは要素のリストを返す
んでリストには’text’というAttributeはありませんよってエラーが出てるよね
658デフォルトの名無しさん
垢版 |
2019/12/13(金) 06:07:45.61ID:N3jObneI
Cython について
Cython の pyx ファイルの中に、
@cython.infer_types(True) とあるんだけど、
この@は何の働きをしているの?記法なの?
詳しい人教えて
2019/12/13(金) 10:39:13.33ID:A6tZ4ufL
>>652-657
Ruby, Selenium Webdriver なら、
find_element は最初の1つだけで、find_elements はすべてを取得する(配列)

css_selector では、div.col-sm-12 などの、
Bootstrap などのCSS フレームワークなどの、デザインを指定するクラスは、あまり意味がない

#main とか、div.container.adventCalendarCalendar とか、table.table とか、
HTML の構造的に、意味があるようなセレクターを指定する。
そうすれば、スマホ・PC などのデザインによって変わらない

css_selector = "#main > div.container.adventCalendarCalendar table.table > thead th.adventCalendarCalendar_dayName"

element = driver.find_element( :css, css_selector )
elements = driver.find_elements( :css, css_selector )

puts element.text, elements[ 0 ].text, elements.length

出力
Sun
Sun
7 (配列の要素数)
660デフォルトの名無しさん
垢版 |
2019/12/13(金) 11:17:38.66ID:V90d9jYd
小学生っぽい子供が混ざってるようだが
質問するときは相手に伝わるようにちゃんと考えた方が良い
技術力よりコミュニケーション力や日本語力を気にしろ
2019/12/13(金) 11:40:28.24ID:Mexu05AP
>>653
ちょっと難しかったです。
とりあえず辞書は、キーだけで値がなくても構わないと思うことにします
2019/12/13(金) 12:14:38.95ID:A6tZ4ufL
Ruby では、ハッシュのキーに値を設定しなければ、値がnil になる。
一方、存在しないキーの値を取得すると、nil になる

これでは両者の区別がつかなくなるので、デフォルト値を設定する。
そうすると、キーに値を設定しなければ、値がデフォルト値になる

バグを避けるためには、必ずキーに値を設定するか、デフォルト値を設定しておく
663デフォルトの名無しさん
垢版 |
2019/12/13(金) 12:38:34.35ID:ZbkO1X73
>>661
set(集合)とdict(辞書)は内部的にはそこそこ近いことをやってる
ハッシュテーブルを作って、keyのハッシュからvalueを見るのがdict。key(setにkeyって概念はないけど、便宜上)のハッシュを見て、key自体が 衝突 and 同じ内容が含まれてるか を見て、key自体を要素として扱うのがset。
setは本当に数学における集合と同じような動作をする(bitwise操作などができる)って認識しとけばおっけー
664デフォルトの名無しさん
垢版 |
2019/12/13(金) 12:41:27.69ID:ZbkO1X73
Rubyの話をしてる人が居るのは本当に謎だけど、Pythonでも
dict.get(key, default)
とすればdefaultを設定した上で値を取得できる。
あるいは、collections.defaultdictを使うのもあり
2019/12/13(金) 12:46:19.59ID:Mexu05AP
>>662-663
ありがとうございます
2019/12/13(金) 12:49:22.97ID:Mexu05AP
>>664
デフォルトを設定した辞書もあるのですね
ありがとうございます
2019/12/13(金) 13:41:19.76ID:+9OE4qBy
>>661
「キーだけで値が無い辞書」をどういう風に使いたいの?
2019/12/13(金) 15:24:58.53ID:yspevzV6
>>664
スレタイにRuby禁止って付けられるくらいに、スレ違いのRubyの話をしたがる頭のおかしい構ってちゃんが一人居ついているだけだからスルーしとけばいいよ
2019/12/13(金) 15:26:20.43ID:hzMr3/rM
>>667
とある請求書作成アプリのセルからテキストをコピーして辞書に格納してから、別アプリにペーストしたいのです
ケースによって空欄のセルもあるので、そのままで良かったのだろうかと考えてました
でもNoneを入れる事にしました
2019/12/13(金) 16:20:03.71ID:+9OE4qBy
>>669
なるほど
「キーに対応する値が無い」ケースをどう表現すべきかという話だったね

文字列の空欄を示す場合は一般的には空文字を使っておいたほうが
後でテキスト処理をする時にNoneのハンドリングが必要ないし
キー自体が存在してなくてNoneになるケースとの区別が付きやすくてベターだと思う
671デフォルトの名無しさん
垢版 |
2019/12/13(金) 18:47:08.49ID:cqNP6rMk
>>656-657-659
ご回答ありがとうございます。皆さまから教えていただいたことをできる限り試してみます。
2019/12/13(金) 18:53:53.21ID:Mu2dn80c
>>652
そのページそもそもdiv.col-sm-12の子孫にth.adventCalendarCalendar_dayNameが無い件
673デフォルトの名無しさん
垢版 |
2019/12/14(土) 00:53:34.54ID:28JG+Fsi
>>672
子孫など何か関係がないといけないのですね。入力をすればなんでも取得できると思っていました。
教えていただきありがとうございます。簡単なサイトを作れるぐらいのHTMLやCSSの基本をまずは覚えた方がいいんでしょうか...
2019/12/14(土) 09:57:24.53ID:YkKG/mMh
>>670
アドバイスありがとうございます

実は辞書を作る前工程で
Win32のクリップボード経由で、文字列を取得してくるプロセスがあったのですが

そこで自分が書いた関数だと、Winアプリが文字列が空だと、エラーになることに気がつきました

悩ましかったのですが、エラーになったらtry 〜exceptで
変数にNoneを入れることでしのぎました

text = “” だとデバッグで読むときよく分からなかったですし

ここは、何がベターなのかもう少し考えてみます
このスレのコメントは大変ためになります
2019/12/14(土) 10:57:58.37ID:oHNLq8G6
馬鹿には無理
676659
垢版 |
2019/12/14(土) 10:59:10.77ID:8NRAnTxB
>>673
web アプリの初心者は基本、サーバー側はRuby で、
クライアント側は、HTML, CSS/SASS, Bootstrap, JavaScript, jQuery などを使う

jQuery のCSS Selector のルールを学べばよい。
emmet も、似たようなもの

# はid で、. はクラスとか、
x > y なら子要素(子孫を含まない)で、x y なら子孫要素とか

それと、他人のHTML の解析は、基本無理。
クラスをどういう意味で使っているのか、分からないから

構造的な意味で使っているのか、単なるデザイン上のものなのか、
または、Bootstrap などのCSS フレームワークのルールなのかも知れないし、
他人の考えなど、分からない

col-sm-12 みたいに、small なら、12列分の幅を使うとか、
こういうデザイン上のものを、CSS Selectorに入れると、
ページのデザインが変わると、セレクトされなくなったりしてしまう

一方、構造的な意味は、変わりにくい
2019/12/14(土) 11:23:55.42ID:dDx9/YlQ
yokokara
678デフォルトの名無しさん
垢版 |
2019/12/14(土) 11:34:02.24ID:TlZt0bii
後ろから前から
679デフォルトの名無しさん
垢版 |
2019/12/14(土) 11:52:10.65ID:e26gFA86
アホな質問で申し訳ないが
class の、書き方について質問あります

Python がはじめてのプログラミング言語で
やっと手続き的な記述ではやりたいことが
できるようになってきた

オブジェクト指向理解してないのもあるかもだけど
ライブラリとか、フレームワークのclass をオーバーライドしてかく時に

self が乱立しまくってて、
効率わるいようなきがするのだけども
書き方があってるのか知りたい

現場エラー吐いてないから、いいかもしれないけど
マナーというか、お作法としてどうなんやろ?と

別途class つくったり関数作ったりするの?
2019/12/14(土) 14:32:25.78ID:tCtWHq2v
>>679
それは誰もが感じる疑問

Pythonではインスタンスメソッドとして扱いたいメソッドの第一引数にselfを渡して
明示的にselfを指定する以外にインスタンスメンバーを参照する方法はないので
オブジェクト指向的に書く場合はselfが乱立しまくるのが通常

”Explicit is better than implicit.”という苦しい言い訳をする人も多いけど
そんな高尚なものじゃなく単に言語の制約なのでPython使う限りは諦めて受け入れるしかない
2019/12/14(土) 16:23:05.11ID:8NRAnTxB
Ruby のクラスでは、引数にself を持ちまわらなくても、selfが使えるだろ。
それは、実装が大変

ユーザーの利便性を上げるために、実装で頑張った
682デフォルトの名無しさん
垢版 |
2019/12/14(土) 16:52:04.55ID:TlZt0bii
selfが嫌なら第一引数を@にすれば良いんだよ
@.hoge でアクセス出来るし便利だぞ
2019/12/14(土) 16:58:40.39ID:tCtWHq2v
>>681
実装は大変じゃないよ

そんな大変ならPython以外にも
1つくらいselfを要求するOO言語があってもいいよね
684デフォルトの名無しさん
垢版 |
2019/12/14(土) 17:15:21.14ID:TlZt0bii
最近はRustとかNimみたいに
第一引数.関数名(第二引数以降はカッコ内)
の様な文法が流行ってる
2019/12/14(土) 17:45:57.04ID:tCtWHq2v
>>684
もうそういう苦しい言い訳やめたほうがいいよ
RustやNimやGoはコンテキストが全く違うんだから

>>679
FAQも読むといいよ
https://docs.python.org/ja/3/faq/design.html#why-self
日本語訳おかしいから英語読めるなら原文のほうがおすすめ
2019/12/14(土) 18:17:59.35ID:zJmCdf+U
Pythonは変数のスコープもちょっと微妙なとこあるし、self必須とかはスコープに由来してるかわかんないけど、その辺は受け入れるしかないよね

その辺受け入れたとしても便利だからPython選んでるわけで

もちろん後方互換性を保ったまま改善できる言語変更があったら嬉しいけど

○○が変だからPythonは使えない、という人には他の言語もあるしね。
2019/12/14(土) 21:51:22.03ID:BIA5WTIR
テトリスってむずいすか(´・ω・`)
2019/12/14(土) 22:02:54.83ID:1E2rCKG0
>>687
ゲームを作りながら楽しく学べるPythonプログラミング
で題材になるぐらいには簡単(入門向け)
2019/12/14(土) 23:29:48.51ID:Ztjs0n6X
>>687
たぶんブロックの回転で行列がどうこう言ってた人かな?
テトリスは特段難しくはないんだけど、これまでのレスを見てるともっと基礎レベルから頑張った方が良さそう。
2019/12/15(日) 07:07:55.11ID:DnIG8IxI
今がんばってます(´・ω・`)ゲームつくりたいんで(´;
2019/12/15(日) 12:01:47.20ID:tER7UmuJ
この界隈だとがんばっちゃダメ
テトリスのコードを10くらい眺めて理解すればいい
692デフォルトの名無しさん
垢版 |
2019/12/15(日) 12:11:02.09ID:+1jKhtSK
>>676
詳しく教えていただきありがとうございます。
jQuery のCSS Selectorのルールなど見てみようと思います。
2019/12/15(日) 12:21:43.19ID:YeoWUmPH
>>691
どこで仕入れればいいの
2019/12/15(日) 15:30:08.19ID:GQ26ybwL
SQLite3で巨大なDBにデータを追加してcommitした時
動作としてはdbファイル全体が改めてディスクに書き込まれるのでしょうか
それとも変更した部分のみがディスクに書き込まれるのでしょうか

SDカード上にdbファイルを置いているため書き込み耐久が心配になり質問しました
2019/12/15(日) 15:53:14.71ID:goe0JUwd
>>694
普通は全書き込みだと思うんだが

そんなに消えて困るものならば
SDカードだったら
常時上書きのドラレコ突っ込みOKみたいな特上品使わないと
やばくね?
2019/12/15(日) 16:09:30.52ID:fGq+HT2S
ページ単位で管理されていて更新されたデータのあるページだけ書き込まれる。
2019/12/15(日) 19:58:47.04ID:tER7UmuJ
>>693
chromeかFireFoxのブラウザで「python tetris」と検索して出てきたものを上位から読む
2019/12/15(日) 23:09:27.37ID:fpSJINfx
>>694-696
ファイルシステムによる

Linux のext では、例えば、40KB のファイルは、4KB のページサイズでは、10ページある。
その5ページ目に、8KBのデータを追加したとすると、

追加された2ページ分は、11・12ページに書かれて、
1〜5, 11, 12, 6〜10 の順番に、リンクが張られる

この場合は、既存のページは、再配置されない。
次のページを示す、リンクのみが書き変わる。
つまり、5→11、11→12、12→6 を指す

でも、12ページ分48KBを超えると、管理方法が変わるから、
データの再配置が起きるかも知れない
2019/12/15(日) 23:47:23.79ID:YEGq3iyi
すいません。どなたか教えてください。

jupyter notebook にてpyperclip をインポートしようとしたところできなかったため、
anaconda prompt にてインストール試みました。

conda install pyperclip だと、公式サイトで探してね。的なエラーが出てきたため、
pip install pyperclip で試みたところインストールは完了したのですが、、、

やはりjupyter notebook上でインポートしようとすると、同様の見つかりませんエラーが返ってきます。。。
何が悪いのか、どこを見ればいいのかよくわかりません。。。

教えていただけると大変ありがたいです。。。
2019/12/16(月) 07:51:04.24ID:79yFDnLG
>>698
dbはふつうそんな追加の仕方はしない。
2019/12/16(月) 08:55:41.01ID:+69MK1pA
>>687
アルゴリズムはねちょねちょ考えるのが楽しそうだから、回転行列とか勉強しながらやってみ?
問題は表示とかキー入力をどうするかだと思うなぁ。
普通はpygameになっちゃうんだろうけど、tkinterとかPyQtやWx使うとたいへんですかね?
せっかくインタプリタ言語なんだからtubeの「小一時間で作ってみた」シリーズみたいに
テキストベースで気楽に作れるライブラリあると良いのにね。
2019/12/16(月) 08:57:09.75ID:Ugry/p2L
>>699
いまお使いの仮想環境名は把握してますか

conda list -n 仮想環境名 で
その環境を指定して、インストール済み一覧が表示されるから
それで分かるんじゃないでしょうか?
703デフォルトの名無しさん
垢版 |
2019/12/16(月) 12:37:42.94ID:0jmxiGrg
>>701
curses
ncurses
pdcurses
2019/12/16(月) 21:11:21.65ID:yUF0sPmO
>>702
レスありがとうございます!
仮想環境名を確認したところ 恐らくbaseで、モジュール一覧を確認するとpyperはインストールされてますよとの表示がありました。
(pyperがpyperclipを指すのかも不明の状態です。。。w)

仕組みがよくわかっていないため、とりあえずググって出てくるトラブルシュートを全て試そうと、
アナコンダナビゲーターのopenterminal でconda install jupyter を実行した後、
再びpip install pyperclip を試すと、完了しているはずがなぜかインストール開始に。。。
その後、jupyter でimport pyperclip 試すもやはりエラー
PC再起動後、jupyter 上でpip install が実行できるとの情報を得、pyperclipをインストール試みると、すでに完了してますよとのメッセージ
その後jupyter上で import pyperclipがエラーを吐き出さないこと確認しました。

恐らく
>アナコンダナビゲーターのopenterminal でconda install jupyter を実行した後、
>再びpip install pyperclip を試すと、完了しているはずが、なぜかインストール開始に。。。
この辺がキモだったんだと思いますが、よくわかってませんw
プログラミングってそれ自体もそうだし、環境構築も奥が深いんですね。。。。

改めてアドバイスありがとうございました(^^)
2019/12/16(月) 21:11:27.79ID:yUF0sPmO
>>702
レスありがとうございます!
仮想環境名を確認したところ 恐らくbaseで、モジュール一覧を確認するとpyperはインストールされてますよとの表示がありました。
(pyperがpyperclipを指すのかも不明の状態です。。。w)

仕組みがよくわかっていないため、とりあえずググって出てくるトラブルシュートを全て試そうと、
アナコンダナビゲーターのopenterminal でconda install jupyter を実行した後、
再びpip install pyperclip を試すと、完了しているはずがなぜかインストール開始に。。。
その後、jupyter でimport pyperclip 試すもやはりエラー
PC再起動後、jupyter 上でpip install が実行できるとの情報を得、pyperclipをインストール試みると、すでに完了してますよとのメッセージ
その後jupyter上で import pyperclipがエラーを吐き出さないこと確認しました。

恐らく
>アナコンダナビゲーターのopenterminal でconda install jupyter を実行した後、
>再びpip install pyperclip を試すと、完了しているはずが、なぜかインストール開始に。。。
この辺がキモだったんだと思いますが、よくわかってませんw
プログラミングってそれ自体もそうだし、環境構築も奥が深いんですね。。。。

改めてアドバイスありがとうございました(^^)
2019/12/16(月) 21:30:31.84ID:ZGRHc5ZN
yokokara
2019/12/16(月) 23:12:57.95ID:levX/ad3
yokokara連呼厨子ね
2019/12/17(火) 05:54:50.47ID:eGUcswGM
conda, pip とか、異なるパッケージマネージャー(PM) を同時に使えるのかな?
それらは、同じデータベース(DB)に、各パッケージの依存関係を記録しているのか?

例えば、node.js をインストールしておいてから、
yarn を、npm を使わずに、
OS に直接または、OSに入れている、Homebrew, Chocolatey などのPMを使って、インストールすることはある

大きな括りでは、異なるPMを使うことはあるけど、
各モジュールのような小さいライブラリを、異なるPMで管理する事は、あるのかな?

片方のPMの依存関係DBが更新されても、もう一方のDBが更新されるのか?

yarnのように、処理が異なるだけで、npmと同じ依存関係DBを使っているのなら、
npm/yarnは、同一のDBを参照するけど

これと同じで、pip/condaは、同一のDBを参照しているのか?
709デフォルトの名無しさん
垢版 |
2019/12/17(火) 08:18:13.44ID:dA33S95E
pythonでWindowsGUIアプリの自動化をやらせたいいんだけど。
(例えば、了解ボタンクリックとかメニューの選択等)
大概の場合、PyAutoGUIで座標クリックにいきつくんですが、座標クリックだとウィンドウの大きさとか
動かなくなるときの考慮てどうするんですか。
2019/12/17(火) 09:45:31.97ID:QqOdTjZG
>>709
>大概の場合、PyAutoGUIで座標クリックにいきつくんですが、座標クリックだとウィンドウの大きさとか

PyAutoGUIでなくて申し訳ないが
私はそういう事で困る事の少ないAutoITXを使っている
座標系のマウスクリックだけじゃなくて、
アプリやウィンドウ、ダイアログの名前を判断して、指定したダイアログにある「了解」というボタンを押す
なんて命令が使えるから
2019/12/17(火) 09:54:50.75ID:OaYPHXYM
知恵袋でテトリスの回転のコードをもらったのですが、
https://ideone.com/2j9PhQ
このコードの内包表記の部分がよく分かりません(tmpのとこです)


この部分をもう少し一般的な書き方はできないでしょうか?
2019/12/17(火) 10:18:22.18ID:QqOdTjZG
質問です。python2.7.1 windowsです

リストを作りました
list = [“left” , 1 , 2, 3, “num_a1”]
要素は5個です

関数を作りまして、引数を5個にしました
関数にリストを読み込ませたら、無事に動きました

次に要素を15個に増やして
関数に、先頭から5個ずつ読み込ませて
3回、関数に仕事をさせたいと思います

リストは二次元配列にしようと思います

ばくぜんと、forを使うのだろうということは分かるのですが
ググっても類似のソースを見つけられず、悩んでます

気軽に「こんな手法があるよ」程度で、レスをつけてもらえればありがたいです
2019/12/17(火) 10:21:32.79ID:qeIaMe/y
自身の脳みそを一般的な水準にまで引き上げた方が早い
2019/12/17(火) 10:23:25.96ID:4rBcrl8A
AutoITは遅くてやめてpyautoguiはインポートするだけでDPIのスケーリング変わっちゃうから
Win32guiとctypesで全部書いて行った
2019/12/17(火) 10:27:52.81ID:GwugB5zt
>>711
お前、色んなとこで質問してコード継ぎ接ぎしてるだけだろ?
プログラミング向いてないからやめとけ。
2019/12/17(火) 10:29:46.26ID:qeIaMe/y
teratailの虐殺君じゃね?
2019/12/17(火) 10:47:25.74ID:sELGcuhs
大層な名前の割にしょぼそう
2019/12/17(火) 11:06:24.34ID:OaYPHXYM
>>715
わからないから質問して何が悪いのだろうか
2019/12/17(火) 11:32:25.65ID:GwugB5zt
>>718
ばかなの?

> お前、色んなとこで質問してコード継ぎ接ぎしてるだけだろ?
> プログラミング向いてないからやめとけ。

ただ向いてないだけ。
2019/12/17(火) 11:43:42.66ID:6LhBKKEf
>>718
質問すること自体は悪くはないが、自分の現在のレベルを自覚して目標を定めた方がいいぞ。
まずはテトリスは遠い未来の話にして、入門書を一から頑張れ。
連立方程式が分かりませんというから解説したら、九々ができないレベルでした、って状態だから、まずは九々を身に付けよう。
今理解できないレベルの問題を相手を変えて、説明の方法を変えてもらっても、理解できないことに変わりはない。相手に手間をかけさせるだけだし、君自身も前進せずに同じところをグルグルしてるだけだろう。
721デフォルトの名無しさん
垢版 |
2019/12/17(火) 12:13:38.61ID:rApV4krM
>>708
両方使ってるけど問題無い
先に conda の方使って conda に無ければ pip 使ってる
2019/12/17(火) 14:04:39.73ID:Ef4LKPDY
>>712
チュートリアルを一通りやってから出直そうか
チュートリアルで理解できないところがあったらそれを質問したらいい
https://docs.python.org/ja/2.7/tutorial/

今の段階でググって類似のソースを見つけようとするのは無駄どころか害でしかないよ
723デフォルトの名無しさん
垢版 |
2019/12/17(火) 14:11:37.23ID:rApV4krM
>>712
http://codepad.org/jnBqqX9F
2019/12/17(火) 14:14:27.53ID:q5RkcH8n
visualstudioでc#使ってるときのように、インテリセンスが働いて、なおかつスペースとかを教典通りに調整してくれるテキストエディタありませんか?
2019/12/17(火) 14:16:09.48ID:q5RkcH8n
vs→vcに乗り換えてインテリセンスが働くようになったのは良かったんですが、スペース入れるbekiどうかで悩んだり、そこに脳のメモリ取られるのがうっとうしい。。。
2019/12/17(火) 14:18:53.50ID:Ef4LKPDY
>>711

block = [ [11,12,13,14],
[15,16,17,18],
[19,20,21,22],
[23,24,25,26] ]

def rot():
____tmp = [[x for x in y] for y in block] # listのlistを一時用に作る

これはおちょくられてるのかもな
不必要なコードだけどリスト内包表記はPythonの基本なので理解する努力をしよう
2019/12/17(火) 14:29:57.73ID:QqOdTjZG
>>722
ありがとうございます
単にコピペで貼り合わせて動くものを作るにとどまらず
なぜ動くのかを理解しながら、参考資料にあたりたいと思います


>>723
ありがとうございます

実は調べてるうちに、chunkなる単語を知りまして
やりたかったことは、これだったんだと思ったと同時に
活路が開けたといいますか、学習が進みました
ヒントのソースありがとうございました
2019/12/17(火) 20:48:36.49ID:eGUcswGM
テトリスなんて、10年以上やってる香具師でも、簡単に作れない

Java 土方で有名なベテラン、T Umezawa の動画を見てみ。
こんな、神レベルの達人でも、タイルが壁にめり込んだりして、簡単には作れない!

落ち物パズルゲームのプログラミング解説 1/2
https://www.youtube.com/watch?v=iyMMaQWlF_0

素人が作るのは、10年以上早いw

作ったと言ってる香具師は、作っていない。
コピペしただけw
2019/12/17(火) 20:52:54.24ID:CYemexLv
お前の頭が悪いだけ
730デフォルトの名無しさん
垢版 |
2019/12/17(火) 23:11:25.06ID:8Os966QG
みんながんば!
2019/12/18(水) 00:22:03.39ID:Z6EQDlLl
Java土方で設計力もテスト設計力もないから書けないだけじゃないの

小学生の頃BASICのテトリスのコードの量見て難しいと思った記憶があるけど、今ならどんな言語でも書ける自信があるぞ

今のPCパワーで高速化とか考えなくていいなら愚直に書くだけだろう
2019/12/18(水) 01:38:39.95ID:N9ghlCsW
ブロック?じゃなく行列をなんで回転させようとするんだろう?
全く理解できない感覚なんだけど
733デフォルトの名無しさん
垢版 |
2019/12/18(水) 05:13:33.26ID:YyMc+ouu
a = ['01','03','05']
b = ['02','04','06']

ていう配列があって、それをforで回すんだけど。
for x,y in zip(a,b):
print(x,":",y)

1個飛ばしでstepさせることでてきますか?
マトモな言語ならfor i=0 to a.length step 1とかできるのに。
2019/12/18(水) 07:14:26.22ID:Qufxt8uf
>>733
自分の無知により自分の思うようにいかないからといって、マトモでないという思考はやめた方がいいぞ
2019/12/18(水) 08:09:09.35ID:ZgzG2chb
今時lengthだってw
原始人かよ
2019/12/18(水) 08:16:02.71ID:4Fp+UrW3
for x,y in list(zip(a,b))[0::2]:
print(x,":",y)
2019/12/18(水) 08:37:40.12ID:4Fp+UrW3
for i=0 to a.length step 1
をPyで使うなら、
for i in range(0, len(a), 2):
print(a[i],":",b[i])
な気がするが。
で、>>733はなんでzipを使うんだろ
2019/12/18(水) 09:26:00.82ID:NtHwU1Mj
for left in zip(*pos[::-1]:
とかで使ってるけどzip何なのか調べてないしちゃんと動いてるからいいや
739728
垢版 |
2019/12/18(水) 11:59:08.76ID:j3JURanB
>>731
T Umezawa は、Java, C#, C++ とか何の言語でも、
入力補完を使わずに、メモ帳にすごい勢いで書くだろw

土方を極めた、神としか思えないw

>>732
テトリスのすべてのブロックは、4×4 マスに納まる

キー操作による回転に、対応させないといけない。
90度左回転・右回転とか
740デフォルトの名無しさん
垢版 |
2019/12/18(水) 12:02:31.23ID:RQBBPl9v
造りたい言い始めてから何日かかってんだ
書き込む暇あったらさっさと造れ
一日もあったら出来るだろ
2019/12/18(水) 12:03:17.83ID:NtHwU1Mj
回転いらない1x1ブロックのテトリスつくったら?
2019/12/18(水) 12:08:51.54ID:vQ0YSRP4
>>741
あーこれいいね。絶対に伝わらない良アドバイスw
2019/12/18(水) 12:11:56.37ID:CFyyhfVu
面倒くせーから早く自殺しろ
2019/12/18(水) 13:39:56.45ID:N9ghlCsW
>>733
無理して使いにくい言語を使わなくても
マトモだと思う言語を使ったほうがいいと思うよ
皮肉じゃなく割とマジで

pythonでstep指定する時はslice/isliceを使う
は? slice? ってなっても我慢すること
pythonはそういう言語だから

for x, y in islice(zip(a, b), 0, None, 2):
____print(x, y)
2019/12/18(水) 14:00:04.04ID:N9ghlCsW
>>739
>テトリスのすべてのブロックは、4×4 マスに納まる

4x4マスに収まるからといってブロックを4x4の行列で管理するメリットって何かあるの?
viewとmodelの分離ができてないとしても
ブロックを行列で表現してそれを直接回転させようという発想になる理由に興味ある
2019/12/18(水) 14:05:40.87ID:j0+9FDxC
ていうかこのテトリス奴って一年くらい前にも同じレベルのレスしてなかったっけ?
747デフォルトの名無しさん
垢版 |
2019/12/18(水) 14:08:54.50ID:gHFmoE9o
一個飛ばしってただ単にこういうことじゃなくて?

>>> for n, m in zip(a[::2], b[::2]):
print(n, ':', m)


01 : 02
05 : 06

何をもめてるのかわからん
2019/12/18(水) 17:05:42.74ID:ZgzG2chb
>>746
10年前もテトリスの話をしてただろう
2019/12/18(水) 18:54:15.48ID:rPZysOi9
global宣言って何となく行儀が良くないような気がするのですが、上級者の方でも結構使いますか?
2019/12/18(水) 19:04:37.86ID:YQOjezK4
グローバル変数自体はPythonなら普通に使うけど、global宣言はほとんど使わない
しょっちゅう細かい粒度でグローバル変数を更新するようなことをするとスパゲッティ化しやすい
2019/12/18(水) 20:16:50.10ID:Kq662flJ
nonlocalならまあ、というかよく使う
globalはつかったことがない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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