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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/04/16(火) 15:44:21.69ID:jL0dd/ry
★当スレにRubyのソースコード類を書くことを禁ず
☆Ruby等、Pythonではないプログラミング言語での回答類を書くことも禁ず

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

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

※前スレ
くだすれPython(超初心者用) その42【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1552884175/


◆PythonのHome Page
http://www.python.org/

◆まとめwiki
ttp://python.rdy.jp/

◆Pythonのソースコードをそのまま5ちゃんにコピペすると
  インデントが崩れるので
  こういうところ↓にはってきてください
ttp://ideone.com/      Pythonするにはぷち手間あるのがめんどうかなぁ
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数を長めに指定しる。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)
−−−−天麩羅ここまで−−−−
2019/04/28(日) 18:59:02.92ID:c5eGKKj6
>>106 pythonista総合スレ【IOSで勉強できる】
http://mevius.2ch.net/test/read.cgi/tech/1540724553/

こっちで聞いた方が良いよ。
2019/04/28(日) 19:06:23.05ID:c5eGKKj6
>>106 PythonistaはiOSの制限でDropboxとの同期が禁止されたり有効になったりしてるから現在どこまで許されているのかよくわからない。
2019/04/28(日) 21:48:34.40ID:/pZCuyqc
>>107
スレチでしたね
誘導ありがとうござました
2019/04/29(月) 13:12:16.59ID:EB4cBsrx
RecursionError: maximum recursion depth exceeded while calling a Python object

このエラーをググっても再帰の深さを変更する趣旨の記事ばかりなのですが、この状態で進め続けていくとどのようなトラブルが起こるのでしょうか
2019/04/29(月) 13:43:56.67ID:qkrgcbcN
>>110
おそらくループを回そうとして、自分を呼び出す、
つまり再帰を行っている可能性が高い
しかもその再帰から復帰する手続きをしていない可能性が高い
メモリーを使い尽くして動かなくなりますね
2019/04/29(月) 17:27:03.08ID:KC30XU77
システムにパイソン入れてそこにモジュールも追加してるけど、仮想環境にインストールすべきだったかな

ゲームでMod使う時も仮想環境にModをインストールするものね
これからゲームのModみたいに致命的なエラーが出たりするのかな
2019/04/29(月) 18:31:19.39ID:scJbKmEl
>>112
仮想環境の意味するところが分からないけどベースシステムにインストールすると色々とトラブルになることもあるよ

ゲームって言ってることから察するにWindowsだと思うけど、公式のPythonならpipenvで、Anacondaならcondaコマンドで環境分けるのが良いと思う

それでも環境変数PATHに追加すると思わぬところでエラーがでる
どうしても環境崩したくないならVMwareやVirtualBoxで別のOS入れるか、あるいはDocker使うかだね
2019/04/29(月) 21:57:28.54ID:6y4sJNDp
仮想環境を使わないメリットがわからん
システムにパッケージ入れてたら、どのパッケージが今作ってるプログラムに必要なのかわからなくなるやん(´・ω・`)
2019/04/30(火) 01:08:11.14ID:tJFiug19
現代の富豪プログラミングですな
生環境に応じて台数分のPCを用意すればいい
2019/04/30(火) 11:38:59.64ID:TMozE8u3
class vector2():
def position():
x = 100
y = 50
------------
import vecter2
position_function = vecter2.cl.position()
print(position_function.x)
print(position_function.y)

モジュールを呼び出すと
print(position_function.x)
print(position_function.y)
の部分で属性エラーになるのですが、どこが駄目なんでしょうか
2019/04/30(火) 11:44:45.89ID:2EfrguiE
positionの引数にselfがない
インスタンス変数の定義は self.フィールド名 への代入で行う
vector2.cl の cl はどこから出てきた
2019/04/30(火) 11:51:18.13ID:qxKnDa1A
そのままだとクラス変数だからvector2.xとvector2.yは存在するから呼び出せる
def position(self): self.x, self.y = 100, 50
としてインスタンス変数にすれば解決する
詳しいことはpythonのクラスについてもう一回勉強し直せ
2019/04/30(火) 12:15:35.41ID:TMozE8u3
clは間違いです ごめんなさい
またselfですか
これわけわかんないです
120デフォルトの名無しさん
垢版 |
2019/04/30(火) 13:27:40.29ID:k9+qjStF
お代は結構ですのでこのままお引き取り頂けないでしょうか
2019/04/30(火) 15:22:56.43ID:TMozE8u3
いやです
2019/04/30(火) 15:52:59.80ID:TMozE8u3
>>118
vector2.xではアクセスできないっぽいですが
123デフォルトの名無しさん
垢版 |
2019/04/30(火) 17:41:39.31ID:k9+qjStF
事は穏便なうちに収めた方がお互いの得になると思いませんか
2019/04/30(火) 18:12:34.43ID:TMozE8u3
プロパティは概ね変数と考えて良いのですか?
125デフォルトの名無しさん
垢版 |
2019/04/30(火) 18:42:57.58ID:k9+qjStF
マジでもう勘弁してください
僕たちの技術力ではあなたの抱えている問題を解決することはできないんです
レントゲンしかない町医者で脳外科手術なんてやらないでしょう
せめてCTあるとこ行ってください
2019/04/30(火) 18:51:47.13ID:BPaXCBbn
>>122
Pythonの公式ページを一読することを推奨する
見ていて全くpython感がない
一応アドバイスすると問題点が2つあるように見える
importを理解していない点とclassを理解していない点

hoge.pyの中にclass abcを定義したら、呼び出し方は
import hoge
...
hoge.abc()
あるいは
from hoge import abc
...
abc()
のどちらか。

すなわち問題のあるコードではvector2.vector2()としてインスタンスを作るか、from importを使うかになる

次の問題点はclassのインスタンスを作らずにメソッドを呼び出している点
この呼び出し方は初心者向きではない
これを踏まえた上でサンプルソースを書くと

vector2.pyの書き方
class vector2():
def __init__(self):
self.x = 100
self.y = 200
呼び出し側
import vector2
v2 = vector2() # インスタンス作成
print(v2.x)
print(v2.y)
2019/04/30(火) 18:55:29.15ID:BPaXCBbn
おっと、呼び出し側ミスった
v2 = vector2.vector2()
2019/04/30(火) 19:31:42.22ID:Xo5OoUYK
>>119
別人だと思ってたけど、あなたまだselfで悩んでたの?
本当に頭悪いね
2019/04/30(火) 21:40:52.46ID:BPaXCBbn
他の言語から入ってpythonを勉強しないで使おうとするとクラスメソッドは結構ハマると思う

Instance method ... インスタンスを作って呼ぶ、第一引数に慣例としてselfを書く、初心者はこれだけでOK

Class method ... インスタンスを作らなくてもクラス名.メソッド名で呼べる、メソッド定義の前に@classmethodを書き、さらに第一引数に慣例としてclsを書く

Static method ... インスタンスを作らなくても呼べるがクラス変数等の状態変更はできない、メソッドの前に@staticmethodを書き、第一引数にselfやclsは不要


@で始まるデコレータはなくても動くので、メソッドの第一引数にselfを忘れると全部Static methodになってしまう
またデコレータの定義がないとインスタンスから呼び出せないので、メソッドが見つからないとエラーになる
2019/05/01(水) 09:07:12.01ID:CJm/y/m+
>>128
ええ、悪いですよ
だから教えてください
2019/05/01(水) 10:45:33.53ID:St0wO6DI
ガイガイは金払って授業受けてろどアホ
2019/05/01(水) 11:39:26.43ID:QpzB6V4r
selfについてはググれ
わからなかったらアキラメロン
2019/05/01(水) 12:17:47.25ID:CJm/y/m+
class vector2():
value = "hogehoge"
def __init__(self,nakami):
self.value = nakami

print(vector2("へ").value)
selfにインスタンスが入るということならこういう記述でいいわけですが、具体的にどういう場面で役立つんですか?それがわからない
2019/05/01(水) 13:10:16.41ID:sBsjxO6r
>>133
まずコードの指摘から
そのコードの上のvalue="hogehoge"はクラス変数であって、インスタンス変数ではない
JavaやC++とは異なるので注意が必要

次に概念の方
例えばクラスPersonを定義したときに、そのインスタンスとしてAさん、Bさん、Cさんがいたとする
それぞれ年齢は20才、30才、40才とする
これを実現しようと思ったら

Class Person():
def __init__(self, age):
self.age = age

とした上で

a = Person(20)
b = Person(30)
c = Person(40)

と3つのインスタンスを作れる

インスタンスごとに異なる年齢を持つので、それを保持するのはインスタンス変数であるべき
2019/05/01(水) 13:18:36.53ID:sBsjxO6r
Pythonの問題じゃないなぁ
オブジェクト指向を理解していない
2019/05/01(水) 13:20:05.50ID:Yyw2Y//A
もうこの人はself以前に複合データ型が分からん様なので
オブジェクト指向やスコープの解説を重ねても無駄である
2019/05/01(水) 13:32:11.43ID:SHxr4ckX
ここまで理解力がないなら、いっそのこと抽象度の高いpythonはやめてシンプルなC言語をやった方がまだましなのではないだろう?
2019/05/01(水) 14:09:18.15ID:St0wO6DI
PyConに来てる小学生の方が1000倍くらい優秀やなw
2019/05/01(水) 14:20:56.16ID:rxTr4yi3
この前URLみたいなものだってことで納得してた人?
それとも別人?
140デフォルトの名無しさん
垢版 |
2019/05/01(水) 15:10:12.02ID:KcC/aLVJ
>>134
やめとけ、死ぬぞ
141デフォルトの名無しさん
垢版 |
2019/05/01(水) 15:13:36.87ID:KcC/aLVJ
>>133
Python使う人は本当にバカしかいないし嘘を教える人もいるので他所で聞いた方がいいですよ
なんか、Rubyとかすごい人が集まってるって聞きました
142デフォルトの名無しさん
垢版 |
2019/05/01(水) 16:53:49.30ID:fQT4rWd7
Rubyほど言語作者が嫌われてる言語も無いだろうよ。。。
2019/05/01(水) 17:06:04.47ID:s2s7ngD3
>>142
https://cdn.amz.appget.com/c/wp-content/uploads/2019/02/rwby-aa_icon-120x120.jpg
2019/05/01(水) 17:08:24.62ID:QpzB6V4r
RubyはあのKyon^2も使ってたからな
2019/05/01(水) 17:13:14.29ID:CJm/y/m+
>>134
目的としてはインスタンスごとに異なる値を持たせるときに使うということですね
146デフォルトの名無しさん
垢版 |
2019/05/01(水) 19:19:57.83ID:KcC/aLVJ
>>139
こんなん二人もいてたまるか
2019/05/01(水) 21:35:24.45ID:9oebd/IU
Ruby では、@a がインスタンス変数で、@@b がクラス変数。
誰が見ても、誤解がない

それに一々、引数で、self を渡さなくても良いように、
実装で頑張って、self を隠した

だから、多くの言語評論家が、初心者へRubyを勧めるわけ。
他の言語では、関係のない所でつまづくから、プログラミングを学べない

Rubyの女神・池澤あやかも、Rubyから始めるように言ってる

大学教育では、ポインタのあるC言語から始めるから、皆プログラミングができないようになる。
プログラミングは、しょーもないという思い出しか残らない

プログラミングに「楽しい」という概念を作ったのは、Rubyが初めて!
その後、Elixir も
2019/05/01(水) 21:54:00.22ID:RglToX9E
rubyはテストできないから駄目って言ってた
149デフォルトの名無しさん
垢版 |
2019/05/02(木) 00:52:29.37ID:TCI5COrO
Pythonがselfをいちいち引数に入れるのは設計思想に従ったため
selfをあえて引数にしている事でメソッドを動的にクラスに追加できるようになる
150デフォルトの名無しさん
垢版 |
2019/05/02(木) 03:34:18.74ID:4bQHi7AE
>>147
引数にself渡さないおかげで、どのメソッドでインスタンス変数やクラス変数が使われてるか分かんねーんだよ!!ボケ!!!
2019/05/02(木) 07:15:28.27ID:N6YdWdEI
Ruby 「私が新時代の言語だ!」
PHP「素敵!うちの卒園生は任せたわ!」
Java「Springから仕事を分けてやろうか」
Perl「汚れ仕事もちゃんとできないと…」
Go「地ならしに励んでくれたまえ」

Python「私が新時代の言語だ!」
C、Java、Fortlan「雑用は任せた!」
Perl「これで死ねる」
Matlab「著作権とか…」
R「ガットハブグフーン?」

RubyとPythonはこれくらい立ち位置が違う二人だと思う
2019/05/02(木) 07:27:46.70ID:KsjCt5ic
>Perl「汚れ仕事もちゃんとできないと…」
ワロタ
2019/05/02(木) 07:30:05.71ID:KsjCt5ic
>R「ガットハブグフーン?」
ここにもワロタw
2019/05/02(木) 12:43:19.14ID:6TxNQP9X
誰か解説してくれ
2019/05/02(木) 15:54:52.61ID:R7Vxy8Bz
Ruby 「」
Weiss 「」
Blake 「」
Yang 「」
2019/05/03(金) 07:07:52.55ID:xBRb9EIm
>>149
JavaScriptだとselfを引数にしなくてもメソッドを動的にクラスに追加できるんですがそれは
2019/05/03(金) 07:50:14.32ID:Rd+lDyVx
そうなんだ、すごいね
じゃあjavascriptやっててね
生ゴミはこのスレに来なくていいから新海面に埋まっててね
2019/05/03(金) 08:00:12.81ID:xBRb9EIm
いや、単にselfを引数にする利点はメソッドの動的追加じゃないと言いたかっただけ。
ほかの言語でも普通に動的追加は可能だから
http://yuuxxxx.hatenablog.com/entry/2013/05/11/202454
2019/05/03(金) 08:03:55.14ID:cgIH4OmO
Pythonは暗黙より明示にと言う方針があるのでそうなってる
記述は長くなるけど関数内からアクセスできることが明確なので独立した関数の場合と構文を揃えられるわけ
Javascriptにもthisはあるけど暗黙になってるべ?
Perlみたいに地面から$_が湧いてくるみたいな魔界はもう懲り懲りなんよ
2019/05/03(金) 08:16:59.48ID:xBRb9EIm
ruby憎しで公平な見方ができなくなっているのではないかと思い、
茶化すようなことを書いてしまった。
結果的に荒らすようなことになってしまい、申し訳ない。
2019/05/03(金) 08:27:12.12ID:cgIH4OmO
皆さんスレチに困ってるだけでRubyが憎いわけではないと思われ
2019/05/03(金) 09:49:51.06ID:Rd+lDyVx
selfくんにどっか行ってほしいだけだよ
端折った気になってるのかもしれないが、その結果が一ヶ月半もselfがうんたらうんたらだぜ
脳みそが芯から腐ってる
2019/05/03(金) 10:01:20.60ID:n4DGgKdQ
AnacondaでIPythonコンソールは出るけど
Pythonコンソールが出ないなあ
2019/05/03(金) 13:35:27.70ID:ozIcHq3A
self君にどうやってselfを教えればいいのか
今まで出てきた話やリンクを全部読んでれば理解できるはずなんだけど、全然読まないのよね(´・ω・`)
2019/05/03(金) 13:42:28.84ID:a8apavlw
ばかにはむり
FA
2019/05/03(金) 14:06:44.41ID:AA3glOpj
何かもっと別の根本的問題があるんじゃなかろうか
167デフォルトの名無しさん
垢版 |
2019/05/03(金) 14:50:17.97ID:78+67Jlq
絶対に彼のことを忘れてはいけない、もうこれ以上この悲劇を繰り返さないために
2019/05/03(金) 16:56:17.71ID:HWNLoAOa
悲しみと憎しみばかりを繰り返す、救いようのないスレだけれど、だとしてもここは、かつてあの子が守ろうとした場所なんだ。それを、覚えてる。決して、忘れたりしない。だから私は、戦い続ける
2019/05/03(金) 17:17:42.49ID:/xH0b4ru
selfわかりません
2019/05/03(金) 17:45:17.54ID:iegxJPOn
このスレのニ大災害
Ruby君とself君
2019/05/03(金) 18:22:07.77ID:SQVgJhNx
でも、本当はこのスレ俺とお前しか居ないんだよ
2019/05/03(金) 18:26:21.56ID:uS7vqCXY
>>170
Rubyくんの方はこのスレだけでなくこの板の災害だよ
2019/05/04(土) 11:42:13.36ID:OT6j7JFW
コードって何にメモしておきますか?
ただのテキストですか
2019/05/04(土) 11:55:44.02ID:vUC0We58
>>173
gistじゃダメ?
2019/05/05(日) 02:39:49.13ID:tUOFrefg
>>173 コード? コードを道端で書き始めることはまずない。
有ればスマホのメモ帳かメールだが、PC の前ならEclipse かSublime

今はPython で遊びはじめたが、これだと散歩中でも直接 Python で書き走らせて結果も見てる。
Pythonista

Dropbox でPCと共有してるからいつでもどこでも出来る。他も良く使うものはDropbox で共有してる。

Jupitor Notebook は、コード補間がないからスマホではまず使わない。
2019/05/05(日) 02:58:55.01ID:6qF0ijkY
>>162 >>164
ADHDっぽいし、真面目に相手をするのが間違いだろう
2019/05/05(日) 03:02:51.32ID:NdndInZE
じっくり腰を据えられる環境じゃないとコードは書かないな
実装アイデアだけなら紙のノートにボールペンで書く
2019/05/05(日) 12:22:21.36ID:HMt5Rxfg
関数の()は実行するという命令ですか?
2019/05/05(日) 12:22:54.40ID:HMt5Rxfg
値を入れてそれを調理するのが関数だから、値なしなら何も返さないというだけ?
2019/05/05(日) 12:26:05.42ID:s9h2Kx5O
fizzbuzz問題って採用問題でよく出るんですか?
2019/05/05(日) 12:53:59.05ID:LZXMZ4hr
postでcookie入れて
ここに書き込みする方法教えて
2019/05/05(日) 13:16:05.89ID:eMsI3+wX
>>181
まずChromeとかFirefoxの開発者ツールでネットワークのログを取りながらレスを書き込んでみろ
そうするとPOSTしてるリクエストがいくつかあるはずだから
urllibやrequestsを使ってそれらを再現するんだ
あとは自分で何とかしろ
2019/05/05(日) 13:17:58.15ID:eMsI3+wX
cookieはrequestsならSessionを使えば勝手にcookie保持してくれる
urllibならcookiejarだ
2019/05/05(日) 13:20:31.89ID:eMsI3+wX
>>180
採用に際して何もしてないよりはマシだが
あくまでも相対的に見た場合の話で全体では下の下だ
仕事したいなら他を勧めるね
これ以上はマ板でやってくれ
Python関係ない
2019/05/05(日) 13:21:33.49ID:LZXMZ4hr
>>183
Chromeでクッキーのキーバリュー調べたり
session作ってやったりしたんだが
404が返ってくる
2019/05/05(日) 13:27:37.40ID:LZXMZ4hr
requests.Session()
s.cookies

この辺つかってる
2019/05/05(日) 13:35:21.44ID:eMsI3+wX
もし、いきなり投稿するリクエストをPOSTしているなら
もっと手前から、例えばスレを開くところから再現すると上手く行くかもしれん

あと、メジャーなVPSからやると404になったと思う
2019/05/05(日) 13:52:31.35ID:LZXMZ4hr
>>187
パラメーター入れないで
postで開くとこからやってるんだけど
ダメなんだなぁ
driver.browser
からは簡単にできた
2019/05/05(日) 14:20:00.06ID:8o5CDMNM
スクレイピングの基本として書き込めない場合は
セッション
User-Agent
Cookie
Referer
をまず疑う

それでもダメならアクセスの順序、JavaScriptの有無を疑う

WebDriverで済むならあらゆる場合でそれが簡単
2019/05/05(日) 14:32:37.30ID:LZXMZ4hr
>>189
requestからでも簡単にできるって言われて
いろいろ試してんだけどなぁ

Code聞いちゃうかなぁ
2019/05/05(日) 14:51:55.75ID:8o5CDMNM
>>190
普通にトランザクションのログ取ればいいだけじゃないの?
ブラウザの開発モードやプラグイン的なものでもいいし、
httpで暗号化されてなければwiresharkで取るのもあり
2019/05/05(日) 14:58:03.93ID:LZXMZ4hr
>>191
Code教えて
2019/05/05(日) 15:13:17.06ID:8o5CDMNM
>>192
人の話を全く聞かないヤツだなぁ
chrome開いて
デベロッパーツール開いて
Networkタブクリックして
Headersを見たら
リクエスト全部書いてあるだろ
その通りそのまんま送れ
2019/05/05(日) 15:30:27.22ID:8o5CDMNM
ヒントだけでも置いてくか
5ch連投ツール配布スレというのにperl版がある
参考になるだろう
2019/05/05(日) 15:40:44.76ID:LZXMZ4hr
>>194
お前ここに何かPythonから書いてみて
2019/05/05(日) 17:24:42.21ID:8o5CDMNM
Perl版書き換えてPython版作って見たが403 Forbiddenって出たな
VPSのIP規制されてるのかね
手持ちのサーバ2つともNGだった

作ったソースはムカついたから貼らんけど
CookieJar作ってbuild_openerでセットして
urllib.request.install_openerでインストールして
add_headersでヘッダセットして
あとは普通にPOSTすれば行けるんじゃないかね
2019/05/05(日) 17:44:22.45ID:CGAXyEhi
>>196 POST 何てコマンドラインから書いてもperl で書いても、Python で書いても変わる訳ないじゃん。
コマンドとかターミナルから直打ちしてみろ。
2019/05/05(日) 17:58:45.71ID:8o5CDMNM
>>197
何か誤解してる?質問者とは別人だ
POSTはhttp methodのPOSTだよ

サーバ側のIP規制はどうにもならんし
必要な情報は全て書いたよ
2019/05/05(日) 18:05:18.70ID:8o5CDMNM
コマンドとかターミナルから直打ちってのはcurlやwgetでアクセスしてみろってことかな
考えてみればそうだね
いきなりPythonで書く理由もない
2019/05/05(日) 18:11:16.18ID:l/KtxV0B
c++などでthisと呼ばれてるのがself
2019/05/05(日) 18:49:06.94ID:sFIQ1Vno
>関数の()は実行するという命令ですか?

察しろってことだよ
2019/05/05(日) 18:50:00.65ID:sFIQ1Vno
>>179

値なしでも、自分で考えて答えを出せってことだよ
2019/05/05(日) 20:40:32.50ID:uqBIzrD4
pythonでミュージックプレイヤーを作ろうとしてんだけど
flacファイルってどうやって再生するの?なんかいいライブラリない?
2019/05/06(月) 02:20:56.85ID:Er2bC+94
>>203
https://github.com/superdima05/tidalgrabber
205デフォルトの名無しさん
垢版 |
2019/05/06(月) 09:06:13.00ID:a8gxR/Is
pythonista3のスレってある?
2019/05/06(月) 11:19:55.67ID:LWyn6Wgk
>>204
thx
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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