- 1 名前:デフォルトの名無しさん [2019/03/18(月) 13:42:55.36 ID:+MPRGO7m.net]
- ★当スレにRubyのソースコード類を書くことを禁ず
☆Ruby等、Pythonではないプログラミング言語での回答類を書くことも禁ず このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDEまたはcommand line/OS)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その41【Ruby禁止】 mevius.5ch.net/test/read.cgi/tech/1549282930/ ◆PythonのHome Page www.python.org/ ◆まとめwiki ttp://python.rdy.jp/ ◆Pythonのソースコードをそのまま5ちゃんにコピペすると インデントが崩れるので こういうところ↓にはってきてください ttp://ideone.com/ Pythonするにはぷち手間あるのがめんどうかなぁ ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まず
- 2 名前:まずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数を長めに指定しる。 ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#) −−−−天麩羅ここまで−−−− mailto:くだすれPython(超初心者用) その42【Ruby禁止】 [] - [ここ壊れてます]
- 3 名前:デフォルトの名無しさん [2019/03/18(月) 18:27:30.56 ID:SDOLD3fb.net]
- >>984
pygame pyopengl glut
- 4 名前:デフォルトの名無しさん [2019/03/18(月) 19:58:50.54 ID:FHDCRg6t.net]
- exe化で出来る限り「静か」なバイナリ作れる方法が無いかな
py2exeは3.7に対応してないかライブラリの方が対応してなくて、試したけど作れなかった pyinstallerはexe実行時にtempにフォルダ作って、終了時にフォルダだけ残るのが気になる exeのある場所とか任意の場所にフォルダ作ってフォルダだけ残るのは別に構わないんだが、システム側にゴミを残したくない
- 5 名前:デフォルトの名無しさん [2019/03/18(月) 20:20:54.45 ID:jiPExRTx.net]
- >>3
pyinstallerしおえたらいらないフォルダを消すバッチ作れ
- 6 名前:デフォルトの名無しさん [2019/03/18(月) 21:37:51.04 ID:C9BGuQ42.net]
- <__main__.sample object at 0x00DF1D30>
selfをprintしたらこれが出てきたのですが、00DFみたいなのはメモリの場所なんですか?
- 7 名前:デフォルトの名無しさん [2019/03/18(月) 21:48:01.96 ID:C9BGuQ42.net]
- 結局selfはどういう用途に使うんですか
class myclass: def myfunc(self,name): self.name=name ↑これのself.nameの部分の意味と、使い方がわかりません
- 8 名前:デフォルトの名無しさん [2019/03/18(月) 22:00:55.16 ID:tRH350wW.net]
- >>1
乙パイソン
- 9 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 22:06:59.61 ID:jiPExRTx.net]
- >>6
おまえはいいかげんインデントをちゃんとしろ 前スレへ(・∀・)カエレ!!!
- 10 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 22:10:00.76 ID:jiPExRTx.net]
- >>5
,-┐ ,ィ─、ri´^-─- 、 .┌f^f^f^f^f^f^f^f^f^┐ く / , ,' ヽ ヽ| ~ ~ ~ ~ ~ ~ ~ ~ ~│ `<' / ,'レイ+tVvヽ!ヽト 知ってるが │ !/ ,' i |' {] , [}|ヽリ お前の態度が | `!_{ iハト、__iフ,ノリ,n 気に入らない | // (^~ ̄ ̄∃_ア____n_____| _r''‐〈 `´ア/トr──!,.--' <_>─}、 `」レ 'ヽ、 ,.ヘーァtイ Y、.,___/ |.| | i `ー'i´
- 11 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 22:18:09.43 ID:FHDCRg6t.net]
- >>4
「exe化」をしたらフォルダが作られるのではなく 「exeを実行」したら毎回フォルダが作られるから困ってます
- 12 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 22:22:44.48 ID:jiPExRTx.net]
- >>10
%temp%フォルダ内に? それとも exeがおいてあるフォルダに?
- 13 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 23:12:34.21 ID:IuFF1Fl8.net]
- 最近勉強始めたんだけどWEBに干渉するようなプログラムってまず何を書けばいいんだ?
- 14 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 23:14:08.18 ID:jiPExRTx.net]
- >>12
まずなにがしたいんだ? ブラウザを自動化したいのか 鯖をアタックしたいのか まともに鯖をいじる作業を自動化したいのか
- 15 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 00:38:15.55 ID:2dsGqa+T.net]
- Pythonが2018年も人気ナンバーワン言語に
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/
- 16 名前:デフォルトの名無しさん [2019/03/19(火) 00:41:33.52 ID:qkjR1zK4.net]
- >>6
https://i.imgur.com/t8osvsu.jpg
- 17 名前:10 mailto:sage [2019/03/19(火) 00:45:49.37 ID:XVrNrTVD.net]
- >>11
前者
- 18 名前:デフォルトの名無しさん [2019/03/19(火) 05:36:06.26 ID:sliXT30Z.net]
- >>15
ですからなんの用途に使うんですか selfというのは場所を表すのですか? printしてみるとメモリの場所らしきメッセージが出ます
- 19 名前: mailto:sage [2019/03/19(火) 05:48:25.05 ID:45LJYysD.net]
- >>17
myfunc は オブジェクトオリエンティド でいうところのメソッド self.name は オブジェクトオリエンティド でいうところのプロパティ self.X と書けば X はプロパティを示し、self はクラスのインスタンスを示す 以上に現れるキーワード「オブジェクトオリエンティド」「メソッド」「プロパティ」「クラス」「インスタンス」に心当たりがなければ、まずそれから調べてみてください.
- 20 名前:デフォルトの名無しさん [2019/03/19(火) 05:49:15.22 ID:Z5Hgz40o.net]
- Pythonと言うよりオブジェクト志向では親クラスのメソッドを呼ぶ時super.xx()みたいにするから、
それ使った時に子クラス(現在のクラス)の同名のメソッドだと明示するためにthis.xx()とかself.xx()とかするね。 あとは >>15 みたいにフィールド(クラス変数)と同名のメソッド引数と分けるためにも使われる。
- 21 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 07:38:23.72 ID:vriWYZh/.net]
- >>16
Freezeとかなんとかいうヤツ使ってexe作るのどうよ
- 22 名前:デフォルトの名無しさん [2019/03/19(火) 07:41:01.76 ID:Gcgazy3G.net]
- >>6
YouTubeでProgramingWoopenのPython入門講座第16~21回の動画を見ろ。
- 23 名前:デフォルトの名無しさん [2019/03/19(火) 08:57:41.33 ID:Z5Hgz40o.net]
- つーかPythonは動的言語だからself.name = で代入する事で宣言無しでフィールド生成されるんだった。
静的言語ばっかりだとうっかり忘れがち。。。
- 24 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 09:23:51.33 ID:7p2/yAlP.net]
- Jupyter notebookで大きなループを一つのセルで回すのって無謀でしょうか?
大きなループを回したい時、便利な環境って何がありますでしょうか?
- 25 名前:デフォルトの名無しさん [2019/03/19(火) 10:12:32.34 ID:cL/iV8oU.net]
- >>6
スコープとかnamespace は理解してる?
- 26 名前:デフォルトの名無しさん [2019/03/19(火) 11:11:48.70 ID:A58YbFZJ.net]
- >>17
https://i.imgur.com/YrNeTWU.jpg https://i.imgur.com/3cPymnb.jpg
- 27 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 11:15:51.69 ID:g1OP6P5B.net]
- >>20
cx_freezeも試してみたけど3.7対応していない
- 28 名前:デフォルトの名無しさん [2019/03/19(火) 11:23:55.63 ID:wwQ5Yjji.net]
- 【中国は民族浄化、日本は】 10万円買ったら1万円没収、10月、自民にとっての邪魔者が浄化される
https://rosie.5ch.net/test/read.cgi/liveplus/1552961720/l50
- 29 名前:デフォルトの名無しさん [2019/03/19(火) 11:28:42.76 ID:sliXT30Z.net]
- >>24
スコープは変数の有効範囲で 名前空間はクラスやモジュール(python.pyみたいなファイル)のことですよね >>21 見てみました selfを関数の引数に指定することでクラス内の関数をインスタンスの持ち物に出来るということですね 別にselfでなくともいいみたいですが、なぜそうなるのか意味がわかりません そういう決まりなんだと言われればそれまでですが
- 30 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 12:4
]
- [ここ壊れてます]
- 31 名前:0:41.62 ID:I3ez8Qch.net mailto: ……ここまで分からんとすると、文学的な問題じゃあなかろうか
他者が自分自身を自称するときの一人称がselfだ [] - [ここ壊れてます]
- 32 名前:デフォルトの名無しさん [2019/03/19(火) 12:51:35.83 ID:Z5Hgz40o.net]
- >>28
class myclass: def myfunc(my,str): my.name = str my.name = で初めてnameフィールドが作成される。 my無しだとただのローカル変数になり、myfuncを抜けたら消滅する。 (もちろん、フィールドnameは存在しないので、a = myclassしたあとa.nameとしたらエラーになる)
- 33 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 13:20:43.07 ID:SqXQzXb0.net]
- pythonってインスタンス作成時にプロパティは作成されないの?
プロパティにアクセスした時に初めてメモリが確保されるの?
- 34 名前:デフォルトの名無しさん [2019/03/19(火) 13:34:21.37 ID:Z5Hgz40o.net]
- そう言う事。
そして、もう少し調べたら__init__定義したら、メソッド呼出ではself省略できるっぽい。 (それだけでなく、nameの扱い自体もクラスフィールドとインスタンスフィールドという動作の違いも確認できた) プロパティはフィールドとメソッドを関連ずけて、フィールドっぽい扱いで安全に運用するものなので別物。 私もPython初心者なのに、何であんたより詳しくなってるんだ。。。 class Myclass: def __init__(my): pass def myfunc(my,str): my.name = str a = Myclass() a.myfunc("taro") b = Myclass() b.myfunc("jiro") print(a.name) print(b.name)
- 35 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 13:59:12.91 ID:SqXQzXb0.net]
- >>32
マジか、ありがとう vbaみたいだぁ・・・ (vbaはもうちょい変で、インスタンス作成時ではなくプロパティにアクセスした時に初めてメモリが確保される)
- 36 名前:デフォルトの名無しさん [2019/03/19(火) 14:04:53.09 ID:A58YbFZJ.net]
- >>32
https://i.imgur.com/DA6Szdu.jpg
- 37 名前:デフォルトの名無しさん [2019/03/19(火) 14:10:15.96 ID:A58YbFZJ.net]
- Self 省略してない件
https://i.imgur.com/3LI5sKi.jpg
- 38 名前:デフォルトの名無しさん [2019/03/19(火) 14:26:25.80 ID:A58YbFZJ.net]
- >>32
_init_ 定義は 何の関係もないな https://i.imgur.com/dXfQVzo.jpg
- 39 名前:デフォルトの名無しさん [2019/03/19(火) 14:30:00.14 ID:A58YbFZJ.net]
- myを self に
結果は同じ https://i.imgur.com/tZxLnMM.jpg
- 40 名前:デフォルトの名無しさん [2019/03/19(火) 14:31:38.83 ID:A58YbFZJ.net]
- Self 省略したら、このざま
https://i.imgur.com/8jijwQV.jpg
- 41 名前:デフォルトの名無しさん [2019/03/19(火) 14:34:55.30 ID:A58YbFZJ.net]
- _init_ 復活させても駄目なものは駄目
「__init__定義したら、メソッド呼出ではself省略できるっぽい。」 は大嘘 https://i.imgur.com/Ss7xM4i.jpg
- 42 名前:デフォルトの名無しさん [2019/03/19(火) 14:38:29.26 ID:A58YbFZJ.net]
- My で揃えても無駄
https://i.imgur.com/r43Dibx.jpg
- 43 名前:デフォルトの名無しさん [2019/03/19(火) 14:42:10.59 ID:A58YbFZJ.net]
- 当然、self でも無駄
「__init__定義したら、メソッド呼出ではself省略できるっぽい。」 は大嘘。 __init__定義しようが、メソッドでself 省略したらエラーですわ。 https://i.imgur.com/EAj5SUq.jpg
- 44 名前:デフォルトの名無しさん [2019/03/19(火) 14:53:47.13 ID:Z5Hgz40o.net]
- >>41
「呼出では」って書いてるだろ。 定義の方は書かないとダメ。
- 45 名前:デフォルトの名無しさん [2019/03/19(火) 15:15:18.87 ID:A58YbFZJ.net]
- 呼び出しでself 書いたらエラーですが
「__init__定義したら、メソッド呼出ではself省略できるっぽい。」 は大嘘。 むしろ、省略しなければならない。 https://i.imgur.com/VnURXPt.jpg
- 46 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 15:40:09.68 ID:QeSFtlHj.net]
- 「しなければならない」のに省「略」とはこれいかに
- 47 名前:デフォルトの名無しさん [2019/03/19(火) 15:42:44.11 ID:Z5Hgz40o.net]
- 初心者いじめ楽しい?
>>32 の通り、私も初心者なんですが。 逆に__init__でa.myfunc(a,"taro")がエラーになる理由を教えて欲しいくらいだ。 (別に知らなくても書く上で困らないが)
- 48 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 16:01:05.13 ID:vriWYZh/.net]
- >>26
それは失礼した pyinstallerでonefileおぷしょんつかわないでexe等を生成→配るときは何か別のインストーラ使う でやるしかないのかー
- 49 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 16:01:42.71 ID:vriWYZh/.net]
- >>23
問題は途中でどんだけメモリ食うかだけなんじゃ
- 50 名前:デフォルトの名無しさん [2019/03/19(火) 16:05:16.66 ID:26aHKGbn.net]
- >>45
君の場合、Python初心者とかの問題じゃなくて、日本語初心者なんだよね… 変な日本語使わなくていいから、コードだけで語ってくれ
- 51 名前:デフォルトの名無しさん [2019/03/19(火) 16:17:56.81 ID:Z5Hgz40o.net]
- 検証不足なだけなのを日本語初心者扱い。。。
- 52 名前:デフォルトの名無しさん [2019/03/19(火) 16:27:12.81 ID:XMTv5SE6.net]
- >>49
検証なら他所でやってくれ 迷惑でしかない
- 53 名前:デフォルトの名無しさん [2019/03/19(火) 16:34:33.33 ID:Z5Hgz40o.net]
- それは悪かったけど、訂正を求めるなら他にやりようあったよね。
__init__付けるとa.myfunc(a,"taro")はエラーになるから、省略じゃ無いって指摘すれば「ごめん」で済んだのに。 エラーが出るエラーが出るって病的に繰り返すだけってのもどうかと思うよ? スレの無駄だからロムるね。 じゃあの。
- 54 名前:デフォルトの名無しさん [2019/03/19(火) 16:48:51.60 ID:+2Cq/+iw.net]
- 覗いてみたら一問一答どころか初心者虐めしてて闇感じた
学校教師かよw
- 55 名前:デフォルトの名無しさん [2019/03/19(火) 16:54:08.63 ID:xdTah2Z6.net]
- >>32
>私もPython初心者なのに、何であんたより詳しくなってるんだ。。。 鼻膨らませてこんなこと書くから
- 56 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 17:59:14.56 ID:7p2/yAlP.net]
- >>47
メモリはそんなに食わないと思いますが、 現在:セル100個くらいに書いている やりたいこと:現在のセル100個をセル1個に入れて、forで回す やりたいことが増えてネストが深くなるたびに、毎回この作業が必要になるのかなと
- 57 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 18:08:45.31 ID:vriWYZh/.net]
- >>54
まず Python全般の考え方として 深すぎるネストがあるソースはうんこスパゲティである 「python ネスト 減らす」でggr いろんなことをやるときは 1作業グループ(自然言語で言う章づけと段落づけに似ている)毎に1つのクラスにまとめれこのへん↓嫁 tps://myenigma.hatenablog.com/entry/2017/10/23/091932
- 58 名前:デフォルトの名無しさん [2019/03/19(火) 18:11:13.54 ID:sliXT30Z.net]
- pythonって12345みたいなループ表示はできないんですか?
別にリストを作らないとだめなんですか?
- 59 名前:デフォルトの名無しさん [2019/03/19(火) 18:17:41.24 ID:sliXT30Z.net]
- ごめんぬさい解決です
- 60 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 18:20:12.22 ID:vriWYZh/.net]
- >>55
推敲途中で書き込まれてしまった 最後から2行目の語順がカオスになってるが まあうまいこと察してチャン
- 61 名前:デフォルトの名無しさん [2019/03/19(火) 18:29:04.69 ID:sliXT30Z.net]
- sample.pyみたいなファイルがモジュールと考えていいのですか?
- 62 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 18:59:11.58 ID:AStHbDSu.net]
- >>17
>printしてみるとメモリの場所らしきメッセージが出ます そうだよ https://ideone.com/k9fBq9 https://docs.python.org/ja/3.6/library/functions.html#id
- 63 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 19:01:42.61 ID:AStHbDSu.net]
- >>59
> sample.pyみたいなファイルがモジュールと考えていいのですか? そうだよ "モジュールは Python の定義や文が入ったファイルです。ファイル名はモジュール名に接尾語 .py がついたものになります。" https://docs.python.org/ja/3.6/tutorial/modules.html
- 64 名前:デフォルトの名無しさん [2019/03/19(火) 19:13:43.69 ID:sliXT30Z.net]
- メンバ変数に
self.nameみたいにつけるのは、単なるルールってことですか? メンバ変数作るときのルール?
- 65 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 19:28:33.28 ID:AStHbDSu.net]
- >>62
関数からはインスタンスオブジェクト(メソッド、変数)がスコープ外だから、そのままだとアクセスできない Pythonではクラス内で定義される関数の第一引数にインスタンス自身(self)を渡すことによりアクセスできるようにしている ↓みれ https://docs.python.org/ja/3.6/tutorial/classes.html#classes
- 66 名前:デフォルトの名無しさん [2019/03/19(火) 19:28:54.41 ID:oLwbVC8A.net]
- >>62
付けなきゃローカル変数になってメソッド抜けると消える
- 67 名前:デフォルトの名無しさん [2019/03/19(火) 19:40:40.10 ID:sliXT30Z.net]
- >>63
>>64 ありがとうごじあます リンク先よみます
- 68 名前:デフォルトの名無しさん [2019/03/19(火) 20:15:28.53 ID:sliXT30Z.net]
- >>63
インスタンス自身がself引数に渡されるといいますが、 instance変数の部分がインスタンス自身と考えていいんでしょうか 確認方法がわかりませんでした codepad.org/qut7yC7c
- 69 名前:デフォルトの名無しさん [2019/03/19(火) 20:15:40.20 ID:sliXT30Z.net]
- class Test():
def __init__(self,var): self.var=var def func(self): print(self.var) instance = Test("aaa") instance.func()
- 70 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 20:24:24.48 ID:AStHbDSu.net]
- >>66
>>60
- 71 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 20:31:38.14 ID:AStHbDSu.net]
- >>54
キューでもスタックでもいいから何か適した探索アルゴリズムあるかもしれない
- 72 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 21:49:37.60 ID:A/UmZGKk.net]
- 指定桁の整数部分で切り捨てるにはどうすればいいですか?
roundの四捨五入じゃなくて、切り捨てです。 n = 456.789 round(n, -1) >>460 1の位を切り捨てて、450にしたいです。
- 73 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 22:13:26.97 ID:A/UmZGKk.net]
- re.subの正規表現で置き換えしたらできたんですが、
切り捨てのようななモジュールはないでしょうか?
- 74 名前:デフォルトの名無しさん [2019/03/19(火) 22:16:01.91 ID:oLwbVC8A.net]
- >>70
import math math.floor(n/10)*10
- 75 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 22:44:30.22 ID:KlvkKTYB.net]
- Ruby ではクラス直下では、self(this)は、クラスを指す。
一方、initialize 内では、new で呼ばれた各インスタンスを指す class Cat p self #=> Cat クラス def initialize( name, weight ) @name = name @weight = weight p self #=> 各インスタンス end end bob = Cat.new( "bob", 5 ) alice = Cat.new( "alice", 4 ) 出力 Cat #<Cat: @name="bob", @weight=5> #<Cat: @name="alice", @weight=4> オブジェクト指向をわかっていない人には、Python は無理 まず、Rubyでオブジェクト指向・関数型を学んでから、 Python, JavaScript, Kotlin などをやらないと無理
- 76 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 22:53:59.42 ID:A/UmZGKk.net]
- >>72
おぉー、ありがとう floorが検索に出てきても少数切捨ての話だけで整数の話はなかったのに、 10で割って掛ける。すごい全然思いつかなかった
- 77 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 23:36:11.27 ID:gx/b6f7p.net]
- >>73
死ね
- 78 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 00:13:24.71 ID:6ln9W50J.net]
- >73
rubyは言語の発想としては悪くないんだけど、今やもう未来がなさすぎる 最近はもうオブジェクト指向を無理にやらんでも良いって流れにもなってきてるしな
- 79 名前:73 mailto:sage [2019/03/20(水) 00:49:00.11 ID:RdYQnT9u.net]
- Pythonの文法を学ぶというのと、
オブジェクト指向・関数型を学ぶというのは、まったく次元が違う話 アルゴリズムなどもそう。 Pythonの文法とは無関係だから、Rubyで学ぶ だから初心者は、Rubyから始めろって言われるわけ Ruby以外の言語では、JavaScriptのprototype など、 その言語特有のトリックに惑わされるために、まともに学べない Pythonでは、アンダーバー(_)で始まる変数名などの、トリックを使っているし、ややこしい Rubyはオワコンと言われているけど、人気がすごい! 図書館でも、すべての本が貸出中
- 80 名前:デフォルトの名無しさん [2019/03/20(水) 00:51:59.36 ID:D6kxNzj1.net]
- >>72 int(n//10)*10
- 81 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 01:43:22.87 ID:6ln9W50J.net]
- >>77
>初心者は、Rubyから始めろって言われるわけ 昔言われてたな。誰もやってなかった あれがステマだったと最近気づいた
- 82 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 02:13:49.59 ID:oK7gZRvl.net]
- Rubyは最も一般的な方法で定義した関数(関数じゃないw)が値として取り回せない(第一級関数でない)クソ言語wwwww
def add(a, b) a + b end def opTwo(a, b, func)
- 83 名前:func(a, b)
end p opTwo(1, 2, add) => Line 9:in `add': wrong number of arguments (0 for 2) (ArgumentError) from t.rb:9 プギャーm9(^Д^ ) ちなみにPython: def add(a, b): return a + b def opTwo(a, b, func): return func(a, b) print(opTwo(1, 2, add)) => 3 ちなみにJavascript: function add(a, b) { return a + b; } function opTwo(a, b, func) { return func(a, b); } console.log(opTwo(1, 2, add)) => 3 [] - [ここ壊れてます]
- 84 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 02:18:32.13 ID:oK7gZRvl.net]
- def、proc、Proc.new、->、lambda、ブロック、・・挙動と使いどころの異なるこれら関数ライクを使いこなし、
==、===、eql?、equal?の違いと使いどころを完璧に把握しているRuby信者wwwww
- 85 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 02:19:24.94 ID:oK7gZRvl.net]
- Ruby 初心者スレッド Part 64
mevius.5ch.net/test/read.cgi/tech/1535797516/658 658 デフォルトの名無しさん sage 2018/10/15(月) 10:09:06.69 ID:r7U1tD/N 擬似コードがそのまま動くのはPythonじゃね 関数型言語なら演算子がそのまま第一級関数であることとカリー化を使って data |> select ((>) 0) みたいに書けたりするね ガチ関数型でなくてもまともなラムダがある言語なら select(x => x > 0) と遥かに見通し良く書ける Rubyの &:: は極めて驚きが大きく醜悪な機能の一つだね
- 86 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 02:19:58.52 ID:oK7gZRvl.net]
- クロージャって何がいいの?
mevius.5ch.net/test/read.cgi/tech/1415419907/261 261 デフォルトの名無しさん sage 2014/12/15(月) 23:02:52.91 ID:BuhXHDiL さらに言えば、Rubyのブロック変数のスコープの扱いが1.9で仕様変更されてるけど、 それについてmatz自身が > それは、Rubyが最初から関数型言語としてスタートしてないからであって、言語が違うからですよね。 と語っているね www.atmarkit.co.jp/news/200907/24/ruby.html
- 87 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 02:20:31.17 ID:oK7gZRvl.net]
- Pythonが2018年も人気ナンバーワン言語に - Rubyは13位へ
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/ >日本生まれのプログラミング言語Rubyの順位は昨年の12位から13位へと一つ順位を落としています。 https://findy-code.io/engineer-lab/github-programming-language-ranking ↑「衰退するかもしれない言語」のRubyのグラフ凄すぎwww
- 88 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 02:51:31.38 ID:oK7gZRvl.net]
- 大人気言語るっピぃが実践する驚き最大の勝利の大法則!!!
お前らションベンチビんなよ!? Python: def double(x): return x * 2 double(3) #=> 6 同等ラムダ (lambda x: x * 2)(3) #=> 6 JavaScript: function double(x) { return x * 2; } double(3); //=> 6 同等ラムダ (x => x * 2)(3); //=> 6 Rubz(笑)ころん def double(x) x * 2 end double 3 #=> 6 同等?ラムダ?www (lambda {|x| x * 2}) 3 #=> エラー(笑) (lambda {|x| x * 2})(3) #=> エラー() (lambda {|x| x * 2}).call(3) #=> 6 うわぁ〜さすがるっびすごくわかりやすいですぅ〜wwww
- 89 名前:73 mailto:sage [2019/03/20(水) 03:00:25.17 ID:RdYQnT9u.net]
- KENTA / 雑食系エンジニアTV と言う人が、
YouTube で、初心者は、Ruby から勉強するように勧めている 多くの人が、初心者には、Rubyを勧めている Dir.glob( 'C:/Users/Owner/Documents/test/*.txt' ) do |file| end Rubyでは、Windows/Linux の両方で、パス区切りに、/ が使えるから、\ を使わなくてもよい Python では、\, \\ を使っているから、ややこしくてたまらん!
- 90 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 03:02:42.97 ID:oK7gZRvl.net]
- これだね!
Rubyを長く使い続
- 91 名前:けることを僕がお薦めしない理由を説明します - YouTube
https://www.youtube.com/watch?v=2wfQ3iG08UI [] - [ここ壊れてます]
- 92 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 03:04:18.73 ID:oK7gZRvl.net]
- 日本生まれのクソ言語Ruby『最も嫌われているプログラミング言語』堂々ランクイン!!
https://japan.zdnet.com/article/35109803/ おめでとうクソ言語!🎊 おめでとう日本の恥!!www https://japan.zdnet.com/storage/2017/11/02/e28392adae17a191547db083133339eb/171106-zdnet-1-01-languages-1-900x675.png
- 93 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 03:14:48.95 ID:oK7gZRvl.net]
- Ruby のココがダメ
https://qiita.com/scivola/items/17470c52641d3ffa1650 ・メソッド名の別名がありすぎ ・何かにつけて「nil にそんなメソッドねえよ」 ・ローカル変数なのかメソッド呼び出しなのか ・ブロックなのかハッシュなのか 遅い ・ドキュメントが不十分 ・用語集が無いよ ・Windows ユーザーがいつも置き去り ・既定の文字コード ・フリップフロップ ワケわかめ
- 94 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 03:20:23.93 ID:wCjkLEuI.net]
- 速度に関してはどんぐりの背比べ
- 95 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 03:22:38.74 ID:oK7gZRvl.net]
- 「Railsは終わった」と言われる理由
https://qiita.com/klriutsa/items/86ac5e94ec99c0d95b61#5-rubyという柔軟性の高い言語によって開発することができる > Rubyは以下のような弱点があり、コードに問題のあるRailsプロダクトが多く生まれてしまいました。 ・読みにくい ・Rubyしか触っていないエンジニアはある一定レベルで成長が止まる ・美しく書くという文化でしか質を担保する仕組みが無い ・Rubyの将来性
- 96 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 03:24:19.47 ID:oK7gZRvl.net]
- 1. 読みにくい
Rubyのコードは引数や返り値の定義がないため、実際に読んでみないと何が帰ってくるのかわからないです。 なのでコードリーディングに時間がかかりますし、バグの混入確率も高いです。
- 97 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 03:25:58.59 ID:oK7gZRvl.net]
- 2. Rubyしか触っていないエンジニアはある一定レベルで成長が止まる
Rubyという言語は型を全く定義しなくても動きますが、型を意識して書かなければ簡単に崩壊してしまいます。 しかし、型を意識する書き方というのはRubyでは学ぶことはできません。(一応学べるかもしれませんが、Rubyの型は他言語に比べて挙動の把握が難しいです) このパラドックスにより、質の悪いRailsプロジェクトが生まれやすくなっています。 そのためRubyしか触っていないエンジニアは一定のレベルで成長が止まると考えています。 その他、クラスの継承、インターフェース、ビルダーパターン、リアクティブプログラミング、ジェネリクス、ラムダなどのパラダイムはRubyでは学ぶことはできません。
- 98 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 03:27:13.16 ID:oK7gZRvl.net]
- 3.美しく書くという文化でしか質を担保する仕組みが無い
Rubyは他人が書いたコードを読むのにエネルギーが要る言語だと思います。 型定義がある言語では入力と出力の形式がある程度定まっているので、比較的読みやすいです。 Rubyは返り値がどのような型になるかわからないので、メソッド名が妥当であるか?であったり、美しくわかりやすく書かれているかもしくは、テストを書いているか?が重要になってきます。 熟練者のコードは非常に読みやすいかもしれませんが、そうでない場合、コードリーディングが大変です。 こうしたコールドリーディングを簡単にするために、美しく書く文化やテストを書くという文化があるのですが、 どこまで美しく書くか、どの程度テストを書くかは属人的であるので、質が担保しにくいです。 追い打ちをかけるようにRubyは様々な書き方ができてしまうので、よりコードリーディングが難しくなります。 ダメなプログラミング言語の代名詞としてPHPが挙げられますが、それがRubyに置き換わる時が来るかもしれません
- 99 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 03:28:06.49 ID:oK7gZRvl.net]
- 4. Rubyの将来性
これは個人的な愚痴に近いのですが、Rubyの開発の方向性と現場で必要なものがだんだんと違ってきているのではないかと最近は感じています。 Ruby3では速く動作することが頻繁に取り上げられますが、実際にそれでいまエンジニアが抱えている問題が解決するのか・・・?と思ってしまいます。 Rubyでチーム開発しやすいように、型宣言などの開発者を支援するような機能もほしいなという声もあるのではないでしょうか。
- 100 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 03:30:23.84 ID:oK7gZRvl.net]
- Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察
https://postd.cc/sick-of-ruby-dynamic-typing-side-effects-object-oriented-programming/
- 101 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 03:37:06.36 ID:oK7gZRvl.net]
- Rubyが今のPythonの地位にいない理由
shinh.skr.jp/m/?date=20160616 さて、本来PHPを学ぶべきだった人たちが、Railsファンになり、Rubyのカンファレンスに行き、エモい発表を聞いて二世三世になったのである。 こういう人達の中には残念ながら、技術的な背景が足りない人もいて、そういう人達が人類がコンピュータサイエンスとして培ってきた歴史とかをある程度把握しないままに、なんだか適当な発言をするのである。例えば「テストファーストはRuby発祥」的な。 そういう人達はどこの世界にもいるものだけど……Rails界隈には許容量を越える量で発生してしまった。で技術がわかるRails関係ない人の感想は残念ながら、「Ruby?あれなんかキモい。 Pythonで十分だし」みたいな感じになってしまったのであった。Hacker Newsから一例をひいてみよう。 https://news.ycombinator.com/item?id=5157886 "To me the biggest annoyance about the Ruby community is the belief that they invented everything" 「Rubyコミュニティの連中はヤツラが全てのことを発明したと信じてやがってムカつく」 "People don't hate ruby, people hate the ruby on rails community" "This" "+1 to this" 「Rubyが嫌いなんじゃなくて、Railsコミュニティが嫌いなんだよ」「それな」「ほんこれ」 いやあ……ひどい言われようである。こんな謎宗教みたいな扱いを受けてれば、ある程度規模の大きい企業、まぁデカいのではマイクロソフトとか、の人が採用しよう、って感じにはならない。 Webアプリフレームワークならともかく、他の分野ではPythonという十分に強い代替があるならなおさら。というわけで、Rubyが今のPython地位を確立できてない理由は「なんかキモそうだから」なのである。 一方で、Railsの勃興とエモい人の流入みたいなのが無ければRubyが今ほど流行ってたかというと……それもあやしいと思う。 この文章の前半部分でムダに書いた通り、Rails以前は知名度ゼロに近かったので、むしろRailsのおかげでRubyは本来集める予定だった以上の注目を集めている、という感もある。
|

|