[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/24 12:06 / Filesize : 298 KB / Number-of Response : 1030
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました



1 名前:デフォルトの名無しさん [2019/02/04(月) 21:22:10.08 ID:9MrdxUVg.net]
★当スレにRubyのソースコード類を書くことを禁ず
☆Ruby等、Pythonではないプログラミング言語での回答類を書くことも禁ず

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

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

前スレ
くだすれPython(超初心者用) その40
mevius.5ch.net/test/read.cgi/tech/1542874174/


◆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/     まずまずシンプル。
ttp://dpaste

652 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 21:35:26.18 ID:5FsfaYFV.net]
>>631


https://i.imgur.com/2LoxSbi.jpg

653 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 21:45:16.90 ID:mz9PUEDs.net]
まじかよこいつ…

654 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 21:47:23.79 ID:JVGfVyzo.net]
>>632
‥あの、最後の行でnum()が実行される前に、i=7にして、print(arg) のargに7入れてますよね。。

655 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 21:48:50.29 ID:6/VZFxCg.net]
>>632
まず関数の中ではprintじゃなくてreturn使えよ

656 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 21:54:12.28 ID:1m9JjIZU.net]
クソー、こんなバカでかい釣針に…

657 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 21:58:20.32 ID:0lCnL4hz.net]
>>632
レベル高すぎて俺分からんが、へんだとPythonを作っているところに
激しく抗議したほうが良いな。

658 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 22:10:29.49 ID:5FsfaYFV.net]
>>634


def と言うのが何かを考えよう。 
def で関数を定義する。その時点でパラメータのデフォルト値も確定する。
つまりパラメータのデフォルト値は関数の定義時点で確定する。 実行時ではない。 
デフォルト値がころころ変わったりするものか。

つまり、関数定義時点で、arg =None とデフォルト値が確定する。実行時ではない。デフォルト値が、None から7にころころ変わったりするものか。だから、結果はNone なんだよ

659 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 22:38:20.41 ID:5FsfaYFV.net]
>>635

https://i.imgur.com/idkGAYZ.jpg

660 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 22:44:17.08 ID:5FsfaYFV.net]
>>631

https://i.imgur.com/cVbw05B.jpg



661 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 22:48:11.06 ID:5FsfaYFV.net]
>>614

同じことだよ
Def で確定なんかしないんだな

https://i.imgur.com/InFjQUr.jpg

662 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 22:51:54.71 ID:5FsfaYFV.net]
要するに
この二つで
主力に差がある

おかしいだろ
言語仕様的にってこと


https://i.imgur.com/FNgAPWr.jpg
https://i.imgur.com/InFjQUr.jpg


i がグローバルだとか
def で引数確定だとか
じゃあ説明つかないわけで

663 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 22:55:09.64 ID:drDoyyDV.net]
何もおかしくなくね?

664 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 22:58:43.49 ID:Bv9xm7M7.net]
5FsfaYFVの頭がおかしい

665 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 23:03:08.61 ID:kqYYM5Yl.net]
何が問題なのかわからん

最初のはnum()に引数渡してないんだから、定義時のarg = 10がデフォルト値と設定されて10が表示される

次のはnum(7)と引数に7を渡してるんだから、デフォルト値をarg = 7で上書きして7と表示される

666 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 23:08:02.19 ID:0lCnL4hz.net]
>>643
俺ら低脳はおかしくなくねだろうが、高脳は説明つかないわけで
になるんだよ。
脳レベルがずっと低い低脳は高脳が言っていることはレベル高すぎて理解できないことがよくあるからな
高脳がすごいことをカキコしても俺らはついていけないからスルー(何言っているの)になってしまう。

>>642
超初心者(低脳)スレで言ってもしょうがないから,teratailあたりで、これ説明つかないよね
と意見を求めたほうが良いよ

667 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 23:25:29.70 ID:33ZLM8BT.net]
>>642 何言ってんだこいつは? 長々とおちょくってるだけだろ。
何が言語仕様的にだ。言語仕様も理解できないで文句言うな。 言語仕様を100回読め。

668 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 23:25:43.90 ID:/RdmhwQH.net]
こんな基本的な事がおかしかったらとっくに修正されてる
ドキュメントを熟読してnum.__defaults__を確認しなさい

669 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 23:59:43.59 ID:fVqLi10C.net]
>>645
>次のはnum(7)と引数に7を渡してるんだから、デフォルト値をarg = 7で上書きして7と表示される



デフォルトは確定だから上書き不可能

670 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:01:58.96 ID:LldggWB2.net]
この言語仕様がおかしい

https://i.imgur.com/FNgAPWr.jpg

i はグローバル変数なんだから、def で確定させてはいけない
それが直感的に正しい記述を目指すPython 的な文法
開発者は即刻インタプリタを修正すべき
すぐにだ!



671 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:03:20.04 ID:LldggWB2.net]
黄猿は現行仕様を無批判に教祖のごとく崇め奉る無能者
そんな信者の擁護論をあてにしてはいけない

俺のような人間の言うことを開発者は聞くべき

672 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:04:09.24 ID:JrnVgIXe.net]
そもそもデフォルト引数に変数を入れるという使い方が間違ってるわけで…

673 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:07:50.33 ID:ScAo2omB.net]
>>652
初耳だ、詳しく

674 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:18:40.63 ID:a1Hsl2rh.net]
なんかもやもやしてたけど>>652の発言でスッキリした

675 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:31:23.52 ID:ScAo2omB.net]
>>654
エー、どういうこと?
俺のモヤモヤ晴らしてくれよー

676 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:32:14.31 ID:a1Hsl2rh.net]
前言撤回
numの()に何も入れないで呼び出しゃ何を渡すか不安定になって当然と思うが
違うのか?

677 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:32:30.46 ID:jmJNTA16.net]
>>650 お前が言語を理解していないことがよくわかるな。
デフォルト値は変数ではなくて、固定の値なんだぞ。

678 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:32:49.42 ID:QFJRtnnZ.net]
>>652
普通は
i = 10
def num(arg=i):
 print(arg)
じゃなく、
def num(arg=10):
 print(arg)
とするんだろうが、変数を介してデフォルト引数を指定して使う場合って
どんな時なんだろうって思うんだよな

679 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:34:24.26 ID:jmJNTA16.net]
>>656 何も入れない時に、どう言う値が入ったものとして動くかを決めるのがデフォルト値。

680 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:46:43.68 ID:LldggWB2.net]
>>659

def と言うのが何かを考えよう。 def で関数を定義する。その時点でパラメータのデフォルト値も確定する。
つまりパラメータのデフォルト値は関数の定義時点で確定する。 実行時ではない。 デフォルト値がころころ変わったりするものか。



681 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:49:26.21 ID:a1Hsl2rh.net]
>>659 そうなんだけど
多分>>650は引数のこと理解してないをわかってないんだろ。

デフォルト値を使いたい訳じゃなく、defに数値を渡したいだけじゃないのか?

682 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:51:38.41 ID:LldggWB2.net]
>numの()に何も入れないで呼び出しゃ何を渡すか不安定になって当然と思うが




不安定になるw
なにその情緒論

文法的に不可ならエラー吐けばOK
そうでないなら、「何らかの処理」をさせて終わり
その処理を場合分けして書いとくのが公式ドキュメントの仕事だろ

683 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:55:39.76 ID:jmJNTA16.net]
>>661
def num(arg=i):
 print(arg)

と、

def num(i):
 print(i)

は同じものだと思ってるのかな?
下の場合はまたそれはそれで誤解しそうな要素を孕んでるんだけど。 この場合の i は、ローカル変数となる。外でグローバル変数として使われていてもね。

684 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:02:30.05 ID:ScAo2omB.net]
誰か俺の疑問にも応えてよ〜
>>652について詳しく知りたいんだよ〜

685 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:03:05.66 ID:jmJNTA16.net]
もしかして、デフォルトというカタカナ英語が理解できないのかも。
省略した時の値、省略値といってあげれば理解できるのかな?

686 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:03:41.96 ID:a1Hsl2rh.net]
>>663
そこでなくて
def num(i):
を呼ぶときに
num()にするとエラーが出るよね。

けど、
def num(agr=i)
に、するとエラーが出ない!!うまく行った!!
けど、思ってた作動しない!なんでや!

で騒いでんのと思う

687 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:04:04.19 ID:jmJNTA16.net]
>>664 省略値って何をするものか理解したか?

688 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:14:03.06 ID:ScAo2omB.net]
>>667
どういうことですか?
条件によってデフォルト値を変えるような使い方はまずいんでしょうか?

689 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:16:59.92 ID:jmJNTA16.net]
>>668 まずいも何もそんなことはできないし、それは省略値ではない。
省略値は何度も言うように関数を定義した時点で固定されるもので、一度その時に固定された値が後で変わるようなことはあり得ない。

690 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:19:46.38 ID:jmJNTA16.net]
理解できなければ、デフォルト値には変数は使えないと覚えた方が身のためだよ。 あくまでも固定値なんだよ。



691 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:31:22.96 ID:gjM9SRoS.net]
https://i.imgur.com/InFjQUr.jpg


> 一度その時に固定された値(10)が後で変わるようなことはあり得ない。

変わってるじゃん
7 に

692 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:33:05.19 ID:ScAo2omB.net]
言い方がまずかったかな
私が言いたかったのは
def func(arg=var):
のvarの部分に変数を使うっていう意味で言ったつもりだったんですけど

693 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:38:38.47 ID:gjM9SRoS.net]
そう言い方がまずいんだよ
日本語の表現力が君には足りない

昨日からしつこく指摘されてようやく理解したようだね
以後は気をつけるように

君は言葉で説明するのはやめとけ
みんなが迷惑する

具体的なコード書いて、こうかくとこうなる、こう変えるとこうなる、そう具体的に書いたほうがいい

694 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:48:10.74 ID:a1Hsl2rh.net]
やっと言葉が見つかった
デフォルト値と引数の引き渡し方を混同してないかい?

695 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:54:11.30 ID:CZjUTyKq.net]
>>672
別にいいんじゃないの
なんかまずいことでもあるのかな?

696 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:59:58.65 ID:jmJNTA16.net]
>>674 そう言うことだな。
>>671 は完全に混同してる。 省略値が全くわかっていない。

下の方で
i= 7
num(i)
で呼んだ場合は、パラメーターとして7を渡したんだから、パラメータは省略されていないんだから省略値が使われるわけがないと言うことを理解しない限りは堂々巡りだな。

num() と言う形でパラメータを渡さなかった場合にだけ、省略値が使われる事を理解しなさい。 なんのための省略値だよ。
呼び出し元がパラメータを渡さなかった場合に使われる値が省略値だよ。
def num(arg=10)

であれば、num() で呼べば、num(10) と呼んだのと等しくなる。

697 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:07:54.61 ID:ScAo2omB.net]
>>676
ねえねえ、>>672に関してのご教授お願いしますよ

698 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:09:08.25 ID:gjM9SRoS.net]
>>676

その日本語説明では、

https://i.imgur.com/FNgAPWr.jpg

が説明できていない

699 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:15:15.17 ID:gjM9SRoS.net]
>>676 の言いたいことをコードで書くとこうだな

https://i.imgur.com/iv7Capl.jpg
https://i.imgur.com/MoZ1uos.jpg

700 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:19:08.39 ID:gjM9SRoS.net]
で、言語仕様的問題に戻るとだ。

インデント強制文法で売ってるPython 的には、こういう場合、i は、グローバル変数になるべきなのであって、

i 渡さない場合でも、上のi だけ参照するようなクソ仕様は直感に反するから修正しろということ
ちゃんと下の i も見るようにしろと。



701 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:21:39.74 ID:jmJNTA16.net]
>>678 お前は人の言葉を聞いていないだろ。

i=10
def num(arg=i) と書いた時点で、
def num(arg=10) と置き換わるんだよ。定義した時に省略値は固定される

702 名前:だから。


その後で、iをどう変化させようが
省略値は変わらないんだよ。

お前わざとおちょくってるだろ。
[]
[ここ壊れてます]

703 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:22:12.05 ID:gjM9SRoS.net]
つまり、このコードでも出力は、10じゃなくて、7になるように言語体系を考えて作り込めということだよ。

https://i.imgur.com/MoZ1uos.jpg

わかったか>PSF

704 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:24:09.75 ID:gjM9SRoS.net]
>i=10
>def num(arg=i) と書いた時点で、
>def num(arg=10) と置き換わるんだよ。定義した時に省略値は固定されるんだから。
>その後で、iをどう変化させようが
>省略値は変わらないんだよ。


その日本語説明では、

https://i.imgur.com/iv7Capl.jpg

が説明できないな
もうお前日本語使うのやめろ
むいてないよ

コードで語れ

705 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:24:20.95 ID:jmJNTA16.net]
>>680 お前がバカなのはよくわかった。 省略値は変数じゃないと何べん言ったらわかるんだ。

706 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:25:17.72 ID:ScAo2omB.net]
>>681
ねえってばー、荒しの相手してないでボクの疑問に答えてくださいよー

707 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:29:04.29 ID:jmJNTA16.net]
>>685 お前も嵐だろ。

708 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:30:13.44 ID:gjM9SRoS.net]
試しに置き換えてみた

出力結果を見てみろ
7だぞ
10じゃないぞ


>>681
>i=10
>def num(arg=i) と書いた時点で、
>def num(arg=10) と置き換わるんだよ。定義した時に省略値は固定されるんだから。


https://i.imgur.com/vJPCACP.jpg

709 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:30:23.94 ID:jmJNTA16.net]
>>685 >>684

710 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:32:07.70 ID:jmJNTA16.net]
>>687 お前がただのバカだと言うことがよくわかった。
小学校は卒業したか?



711 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:33:18.73 ID:gjM9SRoS.net]
コードとその実行結果だけが真実だよ
口汚く罵るのは素人の証拠

712 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:37:03.26 ID:jmJNTA16.net]
>>690 ここを100回読んでから出直せ。

https://docs.python.org/ja/3/tutorial/controlflow.html#default-argument-values
4.7.1. デフォルトの引数値

713 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:37:28.33 ID:ScAo2omB.net]
>>688
おいおい荒しと一緒にしないでくれよ
自分の間違えに気が付いたんで逃げるのかw
デフォルト値に変数を使えるよねえw

i = 3

def sum(x, y=i):
print(x + y)

sum(2)

714 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:39:33.41 ID:gjM9SRoS.net]
>>691

このコード見て自分の日本語がおかしいと感じるだろう?

https://i.imgur.com/vJPCACP.jpg

715 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:39:50.07 ID:jmJNTA16.net]
重要な警告: デフォルト値は 1 度だけしか評価されません。

716 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:41:41.76 ID:gjM9SRoS.net]
>>694

だからなに?
コードで語れないの?

ひょっとしてドキュメント読むだけで、プログラム書いたことないの?

717 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:44:04.32 ID:ScAo2omB.net]
>>691
100回読んだけどデフォルト値に変数を使っちゃいけないなんて書いてませんでしたよ
>>669-670の発言の言い訳をお願いしますw

718 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:45:06.52 ID:jmJNTA16.net]
重要な警告: デフォルト値は 1 度だけしか評価されません。

変わらないものは変数とは言いません。

719 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:47:13.43 ID:gjM9SRoS.net]
>>692

Def に変数を代入してもOK

https://i.imgur.com/92NY4Vr.jpg

720 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:47:13.77 ID:EXmOKVNB.net]
ガイガイ音頭踊っとれやとは言ったが
夜通し踊れとは言っとらん



721 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:51:29.61 ID:ScAo2omB.net]
>>697
i = 3
def sum(x, y=i):

この i は変数ではないと強弁されるおつもりか?

722 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:53:31.44 ID:WSwBoc7f.net]
実引数を渡したら既定値は参照されないので、頓珍漢な主張
また既定値に変数を使用しても結び付きは変数ではなく実体
定義時に解決された割り当ては些か小細工せんと変化しない

723 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 03:16:44.80 ID:ScAo2omB.net]
>>701
行きがかり上煽りのようになってしまったワケですが…

>>652の「そもそもデフォルト引数に変数を入れるという使い方が間違ってるわけで…」
という発言になんで間違え?って思ったんですよ

これ、「間違いではないけどあまり意味はないよ」くらいの解釈でよろしいんでしょうか?

724 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 03:47:01.64 ID:WSwBoc7f.net]
>>702
元になった変数へ再代入したら仮引数の既定値も変化する事を期待するならば意図した動作にはならない
しかし実体を共有したり、ミュターブルなら代入を除く変更を反

725 名前:映させたり、コード次第で普遍的に意味がないという事もない
またnum.__defaults__ = (7,)等として既定値の再割り当ても可能ではあるが、これは基本的に与える実引数を変えるべきとされよう
[]
[ここ壊れてます]

726 名前:701 mailto:sage [2019/03/09(土) 03:52:48.95 ID:WSwBoc7f.net]
なぜ長音符が妙な位置に…ミュターブル→ミュータブル(mutable)、変更可能オブジェクト

727 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 04:26:19.28 ID:ScAo2omB.net]
>>703
もちろん意図した場合を除いて実引数が変化するなどとは思っておりません
単にデフォルト引数に変数は間違えというのに引っかかったわけで
__defaults__は知りませんでした
以前デフォルト引数を使ってオブジェクト指向チックにというお題をやったもんで

animal = 'human' # 'dog' になったり 'cat' になったり
numeral = '人' if animal == 'human' else '匹'

def count(c, n=numeral):
____print(str(c) + n)

count(3)
# 鶏になった
count(3, '羽')

どうもありがとうございました

728 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 06:05:07.57 ID:sGXnYTxg.net]
>>705
>単にデフォルト引数に変数は間違えというのに引っかかったわけで
は、関数の中でデフォルト値上書きしといて何言ってんだ?

729 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 07:29:28.52 ID:jmJNTA16.net]
>>702 そう言う意味合いだけどわざわざ混乱するような書き方は避けるべきだと言う事。
普通はそんな書方したら叱られるレベル。

>>705 のように条件でデフォルト値を変えたいなら、def文の中に書いてわかりやすくすべき。
別れて書いたら混乱の元。
この場合も条件によりデフォルトの固定値を変えているだけでしかない。

730 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 07:50:08.53 ID:sGXnYTxg.net]
>>707
外部の設定ファイル読んでデフォルト値設定、デフォルト値でいいなら引数省略可、とかやる時どうやんの?



731 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 08:06:27.23 ID:aHKuI1wh.net]
どうでもいいが、デフォルトって既定値って言わね?普通

732 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 08:26:54.57 ID:IZUVT+2M.net]
どうでもいいんなら良いじゃん
日本語か英語かってだけだろ
プログラム用語と数学用語はもう和訳するのやめて全部カタカタ英語でいいよな
いちいち日本語にす🏝🏝🏝ると無駄に難しく聞こえるんだよ

733 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 09:29:49.81 ID:1Grnbwgn.net]
ええ

734 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 09:37:13.71 ID:sGXnYTxg.net]
from datetime import date
from datetime import timedelta

def offsetday(offset=0):
da=date.today() + timedelta(days=offset)
print('%s' % da)

offsetday() #引数省略したら今日の日付
offsetday(5) #引数渡したらN日後の日付


便利だねぇ。デフォルト値。

735 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 09:51:43.74 ID:sGXnYTxg.net]
今の流れならこうか

from datetime import date
from datetime import timedelta

#どこからからか設定もらう
i=getdefnum()

def offsetday(offset=i):
da=date.today() + timedelta(days=offset)
print('%s' % da)

offsetday() #引数省略したらもらってきた設定値

736 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 10:37:54.51 ID:aHKuI1wh.net]
>>710
いや、なんかごめんな…(´・ω・`)

なぜ一般に既定値って訳されるか、今一度考える機会を皆に与えたかったんだ

737 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:24:51.58 ID:5O+JPpeP.net]
>>706
関数の中でデフォルト値上書きしといてってどうういこと?
上書きしてるようには見えないんだけど

738 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:32:05.17 ID:KFikgSMo.net]
>>712
俺には難しすぎだよ。インポしてる関数(オブジェクト?)の使い方がわからん。
流れらはずれているが考えてみた。

#値段
pl=1980

def num(tax=8): #税率
print(pl*(1+tax/100))

num() #無指定8%
num(10) #税率指定

確かに便利だな

739 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:41:41.60 ID:7R/zU8Sh.net]
>>716
インぽなおまいはまず日本語の誤字脱字多数修正

740 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:17:11.83 ID:pRsXet8g.net]
>>715
上書きしてないよ

>>716
すごく分かりやすい例だ



741 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:01:55.81 ID:QD5YmF9d.net]
はじめまして初心者です。
Windows10でメモ帳を開いて、メモ帳のウインドウサイズを変更し文字を入力したいのです。
どなたか教えてください><

742 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:05:39.03 ID:1Grnbwgn.net]
>>719
そんなんで出来るか

743 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:07:04.99 ID:QD5YmF9d.net]
>>720
すいません。
>>719をPythonを使って行いたいって意味です。
よろしくお願いします><

744 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:07:18.08 ID:QFJRtnnZ.net]
>>716
>#値段
>pl=1980
なんて言うか、値段をplにするって俺ららしいよな

745 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:10:14.35 ID:7R/zU8Sh.net]
>>721
>>1くらいよめよ
理解できないならまだここじゃなくて
PC初心者板での勉強が必要なレベル
=Python以前の問題 だぞ

746 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:12:06.66 ID:QD5YmF9d.net]
>>723
>>1は読みましたが、解決しませんでした><

747 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:12:14.04 ID:7R/zU8Sh.net]
とりあえず↓あたりよめ (Python以前の問題で解決するかもしらん)
ttps://support.lenovo.com/gr/ja/solutions/ht118907

748 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:13:25.44 ID:7R/zU8Sh.net]
あるいはレジストリいじって解決するかもしらん
ttp://sei.qee.jp/docs/program/hta/sample/memofont.html

749 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:14:31.86 ID:QD5YmF9d.net]
真面目に質問してるので煽りはスルーします。。。
初心者です。優しい方お願いします><
ちなみに20代の女子です。。。

750 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:40:52.46 ID:QFJRtnnZ.net]
ID:WSwBoc7f はなんかこのスレでは珍しい高脳って感じだな
>>701
>既定値に変数を使用しても結び付きは変数ではなく実体
が正しいんだろうな
結び付きが変数なら、実引数省略して関数を呼びだしたときの変数が指すオブジェクトが
実引数になるだろうからな。



751 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:49:46.79 ID:QD5YmF9d.net]
>>719です。
どなたかよろしくお願いします><

752 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:54:33.79 ID:BnoVO+GE.net]
>>729
RPAを買いなさい

753 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:59:57.56 ID:QD5YmF9d.net]
>>730
すいません。目的はPythonの学習なのでPythonで解決したいと考えてます。
イケメンでPythonに詳しいあなた達なら良い解決策をお持ちではないですか?

754 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:02:39.34 ID:BnoVO+GE.net]
>>731
他のアプリを操作したい系は初心者が誤って足を踏み入れがちな典型的な罠
何の役にも立たないバッドノウハウの塊であり、初心者の学習には全く適さない

755 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:07:00.37 ID:QD5YmF9d.net]
>>732
では他のアプリとの連携はどうするのですか?

756 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:09:05.45 ID:BnoVO+GE.net]
>>733
Pythonなら処理結果を一旦ファイルに落とすのが普通です

757 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:14:42.55 ID:QD5YmF9d.net]
Pythonでメモ帳を500px×500pxで開きたいのですが
それは叶わないのでしょうか?

758 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:22:02.05 ID:t5ksfgQn.net]
https://github.com/asweigart/pyautogui

メモ帳を開いてメモ帳のウインドウサイズ変更まではこれ使えばいけそうだ
キーボードの操作はできるみたいだけど文字入力までできるかはわからない
>>734の言うように一時ファイルに書き込んでからオープンでいいなら可能だよ
初心者にはハードル高いと思うけどがんばってね

759 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:28:22.21 ID:QD5YmF9d.net]
お二方ありがとうございます。
私が調べたところPyAutoGUIというライブラリで
マウス操作やキー入力は可能でした。
ただ、ウィンドウサイズの変更と移動方法はよくわかりませんでした。

リンク先を見て勉強してみます。

760 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:04:12.35 ID:lwZTh4qp.net]
>>716 解ってるとは思うけど1つの例としては良いんだけど、実際にそんなプログラムは絶対に書くべきでは無いよね。

関数の中を覗かないと動きが見えないみたいな関数は作るべきでは無い。
同じことをやるなら、パラメータとして渡すべきだろ。



761 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:28:12.28 ID:o9iMui5S.net]
>>738
あほか
関数なんてブラックボックスでいいんだよ
そういうのはドキュメントを整備しくもんだ

762 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:52:35.69 ID:lwZTh4qp.net]
>>739 プログラムこそ最高のドキュメントじゃ無いのかな?
ルールから外れたブログラミングルールは、決して褒められたものでは無い。

Pythonがなんで、インデントを重視したか? 誰が見ても間違えない様にするためなんだよ。

763 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:53:19.46 ID:atnduDe4.net]
>>738
関数の中を覗かないと動きが見えないみたいな関数は作るべきでは無い。

お前はエスパーかw

764 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:00:48.16 ID:lwZTh4qp.net]
i=1
j=2
k=3
def add(a=i,b=j,c=k):
 return a+b+c

print(add()) # 6

----
# こんなのより
def add(a=0,b=0,c=0):
 return a+b+c

i=1
j=2
k=3
print(add()) #0
print(add(i,j)) #3
print(add(i,j,k)) #6

#こっちの方が100倍マシ。 いくらドキュメントをどこかで作っても誰も読まないよ。 プログラムが大きくなればなるほどプログラムこそ最高のドキュメントなんだよ。

765 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:37:19.27 ID:WSwBoc7f.net]
>>728
自演に思われそうかつ高次脳機能障害みたいな略の持ち上げはYAMETE!
数式的に妥当かは与り知らんけど、Pythonに変数のエイリアスは無いしね
古典的な静的型言語と違い、変数は実体への参照に過ぎないのもハマりがちな所

代入を除く変更ってのも色々語弊が有るな、実体に対する操作と表現するべきか


>>737
んー…確かにドキュメントではその辺りが欠けているというか正式実装じゃない?
既に他者のPythonコードが読めるなら直接↓を見るとか、helpやpydocに掛けるなり
https://github.com/asweigart/pyautogui/blob/master/pyautogui/_window_win.py

質問に対する愚直な答えは同モジュールのようなctypesでWindows APIを呼び出したりが基本になるだろうけど
既存ライブラリに無い操作を実装するに際しては、Microsoft Docsとかにマクロの具体的な定数が併記されてないと
Windows SDKのC/C++ヘッダーも参照する事になるし、最終目標に対し言語や実現方法などが適切かも考えた方が良い

766 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 17:08:54.75 ID:QD5YmF9d.net]
>>743
ありがとうございます。
URL参考にさせていただきます。
外部アプリの操作にPythonは向いてないのでしょうか。
私なりに調べたところPythonからpowershellを実行するのが一番簡単そうだと思いました。
何かよい手があれば教えてください。

767 名前:デフォルトの名無しさん [2019/03/09(土) 17:35:51.96 ID:kfZA3URW.net]
ねむくなるねこのすれ

768 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:17:19.14 ID:fMIUxryy.net]
初心者は寝てていいよ

769 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:23:12.70 ID:WSwBoc7f.net]
>>744
もっと全体的な流れ、具体的な結果に依るので抽象的な回答になってしまうけど
メモ帳へ文字入力というのが単にファイルの読み書きで済むなら迂遠だし
エディタを機械的に操作したければ何ぞスクリプト対応のアプリを使用するとか

汎用的に外部アプリ全般を弄りたくて起動や開く程度ならsubprocessとかでも十分だけど
細かい所はWinAPIを直接呼ぶ必要が出てきてたり、大半がPowershellで構成されるなら
これはもうPythonの学習というより、それらにすり替わり、置き換えられるよねという事

外部アプリ操作≒UI操作なら一般的とは思わないが、シェル代わりや橋渡しとしてはよく使われる
Windows APIを呼び出す云々はSDKを使うネイティブ言語よりコンパイル諸々などお手軽な面はある

770 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:38:41.90 ID:GVs3bbIF.net]
例えば、Ruby から、powershell を呼び出して、クリップボード処理もできる。
str = `powershell Get-Clipboard`

>でも、メモ帳のウインドウサイズを変更し、文字を入力したいのです
基本的に、他人が作ったアプリは、他のアプリから操作できない。
操作できるためには、操作用のAPI を公開して、その使用方法の文書も書く必要がある

powershell は公開されているから、他のアプリからも使えるけど、メモ帳はどうかな?

例えば、君が作ったアプリを、他のアプリから操作できるように、
わざわざ操作用のAPI を公開して、その使用方法の文書を書いたりしないでしょ?
面倒くさいし

そういうアプリは当然、他のアプリから操作できない



771 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:44:42.88 ID:C6v7oEvs.net]
rubyとかいうゴミ言語はまったく関係ないな
powershellを外部コマンドとして呼び出してるだけ
これでrubyスゴい!になっちゃうのがrubyキチガイのキチガイたる所以

772 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:47:45.08 ID:3mUakWGD.net]
そんなことよりなんで今更何のためにメモ帳に書くのかな。そっちの方が興味がある。

773 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:53:19.79 ID:QD5YmF9d.net]
>>747
subprocessを使えば簡単な操作はできるんですね。
ありがとうございます。調べてみます。
本当は複雑なこともやってみたいと思ってましたが。。。

>>748
APIが公開されてないものは基本外部から操作は出来ないんですね。。。
ありがとうございます。勉強になりました。

774 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:57:06.37 ID:wl/Le+J5.net]
さすがは、チームRWBY
相手の力を利用するとは、なかなかやるね!

775 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 20:21:03.99 ID:Pn/iQo1s.net]
rubyはpycallとか作ってまで生き残りをはかってるからな

これほど「始まる前に勝負着いてた」事例があるだろうか

776 名前:746 mailto:sage [2019/03/09(土) 20:40:28.25 ID:GVs3bbIF.net]
Ruby では、こういう感じ。
Rubyから、powershell, clip コマンド(子プロセス)を呼び出す。
そして、このスクリプトをbat, vbs から呼び出すようにすれば、ダブルクリックでも起動できる

クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる

str = `powershell Get-Clipboard` # クリップボードから取得
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

ary = str.each_line.map( &:strip ) # 空白類を除去

IO.popen( 'clip', 'w:cp932' ) do | clip |
clip.print( ary.join "\n" ) # クリップボードへ書き戻す
end

777 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:05:21.70 ID:QD5YmF9d.net]
Pythonではできないのでしょうか?

778 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:36:12.11 ID:BnoVO+GE.net]
>>754
PowerShellすごい!

779 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:51:05.13 ID:Asclh6VQ.net]
>>755

スレ違い

780 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:52:20.14 ID:QD5YmF9d.net]
>>757
ここはPythonすれですよw



781 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 23:13:21.29 ID:QD5YmF9d.net]
皆さん、相談にのっていただきありがとうございました。
SikuliというUI自動化ツールが優秀で思い通りの事ができました。
Pythonのスクリプトも使用できるのでとても満足です。

782 名前:デフォルトの名無しさん [2019/03/09(土) 23:51:29.47 ID:H6isrNei.net]
Ruby禁止のRubyの単語に反応して書き込んでる説

783 名前:デフォルトの名無しさん [2019/03/10(日) 01:39:40.52 ID:/HGKNCBK.net]
副業解禁で激変する若者世代とマネージャー世代のキャリア観
www.businessinsider.jp/post-107782
フリーランスの職種20個の仕事内容と平均年収をわかりやすく解説
www.proof0309.com/entry/shokushu
時給1万円のバイトも。会社員向きのプチ副業を、“バイト芸人”が教える
headlines.yahoo.co.jp/article?a=20190226-00127948-bizspa-bus_all
副業が「会社にバレる人」と「バレない人」の大差
headlines.yahoo.co.jp/article?a=20190303-00268007-toyo-bus_all
正社員の10%以上が副業 中には過重労働で体調崩す人も
headlines.yahoo.co.jp/hl?a=20190227-00010000-wordleaf-bus_all
「副業で年2000万円稼ぐ男」に学ぶキャリア戦略
headlines.yahoo.co.jp/article?a=20190221-00266856-toyo-bus_all
加速する「副業社会」正社員の4割が「副業したい」 気になる収入はどれくらい?
headlines.yahoo.co.jp/hl?a=20190218-00010001-danro-life
おすすめ副業22選を現役フリーランスが解説【在宅も可能】
www.proof0309.com/entry/zaitaku-hukugyou
会社を辞めてフリーランスで働きたいあなたが知っておくべき10のこと
www.businessinsider.jp/post-165731
フリーランスと会社員、働き方の根本的な差 広がる「雇用されない働き方」の課題とは何か
toyokeizai.net/articles/-/263055
フリーランス人口は増える!今後は仕事もプロジェクト単位になる!?
freelance.mts-career.com/population/
どのくらい稼げるの?フリーランスエンジニアの単価・報酬・年収の話
findy-code.io/engineer-lab/engineer-unitprice-income

784 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 09:53:19.84 ID:5/+zyaBC.net]
>>754
死ね

785 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 10:33:29.03 ID:YmMiXd1Z.net]
ガイジなど世間的には生まれた時点で死んだような存在だろネットでくらい許せ

786 名前:デフォルトの名無しさん [2019/03/10(日) 18:44:45.56 ID:uFsYqTSV.net]
ruby禁止は浸透したがpowershellも禁止でおながいしまつ

787 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 19:04:53.21 ID:w00/E2cH.net]
プログラマー40歳限界説

788 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 19:42:00.71 ID:XCpNHt+Q.net]
ブックマークしてたpowershellのマニュアルのアドレスが変更されたみたいだ
誰か知りませんか?

789 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 19:50:01.61 ID:eNJkLSXg.net]
スレチ

790 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 02:31:05.67 ID:Q8+quAlB.net]
numpyでベクトルの配列の全要素に行列を掛けるにはどうしたらいいでしょ?
やりたい事は

vec=[[0,0],[1,1],[2,2]...]
mat=[[0,1],[1,2]]

result=[m & v for v in vec]

こんな感じです



791 名前:デフォルトの名無しさん [2019/03/11(月) 05:21:09.87 ID:pTTv+VC9.net]
mat@vec

792 名前:デフォルトの名無しさん [2019/03/11(月) 05:23:59.55 ID:pTTv+VC9.net]
vecの作り方によっては
mat@(vec.T)

793 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 07:42:02.40 ID:R4ZESWdO.net]
pythonできればc#もできますか?
pythonでゲームと、c#でwindowsのソフト両方を使ってますわ

794 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 08:49:44.07 ID:Rf81Fxun.net]
フォルダを空にしようと思いましたが、うまく行きません
shutil.rmtree(args.sample_dir)
os.mkdir(args.sample_dir)

os.mkdir(args.sample_dir)の部分で
PermissionError: [WinError 5] アクセスが拒否されました。: 'test/sample_img'
というエラーが出ます

ディレクトリが消えているので
shutil.rmtree(args.sample_dir)
はうまく行っているようです

このやり方はあまり良くないのでしょうか?

795 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 08:50:31.50 ID:IpMePMuQ.net]
>>770
すみませんミスタイプしてました。求めたい結果は
result=[mat@v for v in vec]
ですね

796 名前:デフォルトの名無しさん [2019/03/11(月) 12:16:20.15 ID:hfHU2O5u.net]
>>773
forいらんで

797 名前:デフォルトの名無しさん [2019/03/11(月) 12:19:13.01 ID:hfHU2O5u.net]
こういうことかな
(mat@(vec.T)).T

798 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 17:11:44.97 ID:mNeqJkGU.net]
>>772
os.mkdirは途中に存在しないフォルダがあるとエラーしてしまうので
「os.makedirs()」をつかってみそ

799 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 17:33:25.52 ID:pvnV5rIH.net]
inputした数字をそれぞれリスト化(aリスト,bりスト)したい。

入力(1行目は入力回数)
3
100 2
3 42
52 63

出力
[100, 3, 52] [2, 42, 63]

自分が作成したコードはinputをrangeで回してますが、inputを内包表記で1行で済ませる方法が分かりませんでした。
内包表記・関数でもうすこし短く出来ませんか?
cunt = int(input())
a_list = []
b_list = []
for i in range(cunt):
 a,b = [int(x) for x in input().split()]
 a_list.append(a)
 b_list.append(b)
print(a_list,b_list)

800 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 17:36:22.93 ID:mNeqJkGU.net]
>>777
  >>422



801 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 17:38:42.78 ID:mNeqJkGU.net]
とちゅうでおくってしまった
>>422がイイ(・∀・)こといってる気がするんだが
なんとか利用できないかな

802 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 19:53:46.76 ID:iNskGddB.net]
count = int(input())
temp = [None for x in range(count)]
for i in range(count):
  temp[i] = input().split()
else:
  a_list = [int(x[0]) for x in temp]
  b_list = [int(x[1]) for x in temp]
  print(a_list,b_list)

というかコードを書く前にcuntを辞書で引け
話はそれからだ

803 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 19:57:35.25 ID:PGatxMde.net]
クリトリスですか?なるほど…

804 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 20:39:01.91 ID:mSdvFdhb.net]
print(*map(list, zip(*[map(int, input().split()) for i in range(int(input()))])))

805 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 21:57:53.69 ID:pvnV5rIH.net]
セクハラ通り越して放送禁止用語レベルだったんですね

>>780 こういうループの発想が湧きませんでした 参考にさせて頂きます

>>782 コレ使ってみます 関数1個1個はナントナク分かりましたが、何重も連なると自分のレベルは難しいです 時間かけて解読してみます

>>779-782 皆さんありがとうございました

806 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 22:05:12.11 ID:IpMePMuQ.net]
>>775
ディメンションがちゃうで言われますね
つまり座標配列全てにアフィン変換したいって事なんですがnumpyじゃ無理なんかな?

807 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 23:20:05.55 ID:GdRfR4uu.net]
Ruby のArray#zip, transpose で、配列・行列の縦横変換できる。
zip の引数に、幾つかの配列(配列のリスト)を指定できる

p [1,2,3].zip([4,5,6], [7,8,9])
# => [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

808 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 23:38:19.16 ID:qe97t/2K.net]
>>785
グロ

809 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 23:54:59.52 ID:0HIo0fVP.net]
>>780
>コードを書く前にcuntを辞書で引け
ゆとり教育では辞書使うなんて難易度の高いことはしない

810 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 00:08:58.95 ID:KQFIYqiK.net]
>>784
"アフィン変換 numpy"でググればなんか希望の物が引っかかるんじゃないのか
numpyを使ってアフィン変換をするライブラリなんかは誰か作っている気がする



811 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 01:19:04.31 ID:Tg1PBlZE.net]
>>780 cunt 辞書ひいた。 笑っちゃったよ。

1. a stupid or unpleasant person
2. -> HUMAN
a woman's vagina =sex organ

812 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 01:43:49.00 ID:Tg1PBlZE.net]
>>789 同じロングマンなんだけどなんかニュアンスが違うな。

cunt
kʌnt
名 C《タブー》
1 《女性性器を意味する非常に侮蔑ぶべつ的な語》
2 《嫌悪感・怒りを感じる女性に対して用いる非常に侮蔑ぶべつ的な表現》

大辞林
カント 女性の性器。

コトバンク
[名]((卑))
1 たちの悪いやつ;いやなやつ
Don't be a silly cunt.
くだらんことを言うな.
2 女性器;性的対象としての女性, あばずれ;性交.
[オランダ語kunte←フランス語]

Oxford
vulgar slang
1 A woman's genitals.(性器)
1.1 An unpleasant or stupid person.

Origin
Middle English: of Germanic origin; related to Norwegian and Swedish dialect kunta, and Middle Low German, Middle Dutch, and Danish dialect kunte.

813 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:29:06.26 ID:Le2Xhtue.net]
引数のイメージなんですが、引数は材料で、材料を関数で調理器にかけるイメージでしょうか?

814 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:30:30.49 ID:F9OOaHwl.net]
戻り値は?

815 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:33:21.35 ID:c3A0Gx7w.net]
ひき肉を作る機械のイメージでええんやないの
上に入れる肉が引数、機械が関数、出てきたひき肉が戻り値

816 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:36:33.66 ID:rf03pH6k.net]
引数に肉しか入れてないのに勝手に台所のコショウが減ったり電気使われたりするのが副作用

817 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:39:17.36 ID:Le2Xhtue.net]
ひき肉が引数、調理器が関数、バーグが戻り値
ありがとうござ

818 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:41:44.81 ID:Le2Xhtue.net]
selfの意味ってなんですか?
単に関数を作成したときにデフォルトでついてくる引数という感じでしょうか。
だとしたらなんのためにですか?

読んでみたんですが、イマイチイメージが、、、

819 名前:デフォルトの名無しさん [2019/03/12(火) 12:52:43.68 ID:uvkzn3tS.net]
>>796
selfは関数ではなくクラスのメソッドに付ける
Javaのthisみたいなもので、メソッドを呼び出したオブジェクト自身を受け取るための引数
メソッド内でメンバ変数を参照したり別のメソッドを呼び出したりする時にself.〜 として使う

820 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:58:27.33 ID:R/A89vkp.net]
横からすいません
self、self以外を指定することはあるのでしょうか?



821 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 13:11:28.09 ID:rdaDEiid.net]
>>798
慣例的なもので言語制約ではない、が補完などに影響するかも
クラスメソッドではクラスが割り当てられるのでclsが使われる

822 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 13:16:23.13 ID:rf03pH6k.net]
hoge.myMethod(fuga, piyo)
myMethod(hoge, fuga, piyo)
みたいなイメージ

823 名前:デフォルトの名無しさん [2019/03/12(火) 13:20:45.17 ID:6Uu2j9Xc.net]
>>784
馬鹿には無理

824 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 13:36:24.76 ID:R/A89vkp.net]
>>799
ありがとうございます

825 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 13:58:38.98 ID:c3A0Gx7w.net]
そもそも何でメソッドの引数にオブジェクト自身を渡すんやろうか
obj.method()みたいに呼び出すなら、どのオブジェクトをメソッドに渡すかわ明らかなんだから、省略できそうなのに

826 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 14:09:51.25 ID:R/A89vkp.net]
>>803
こういう渡し方をする言語、python以外にもあるんでしょうか

827 名前:デフォルトの名無しさん mailto:s []
[ここ壊れてます]

828 名前:age mailto:2019/03/12(火) 14:19:35.49 ID:rdaDEiid.net [ >>803
それはPythonのオブジェクト指向の実装方法とか基本理念によるもの、属性解決については
https://docs.python.org/ja/3/howto/descriptor.html#definition-and-introduction
self.meth()とcls.meth(self)の等価性を明示するみたいな論調も記憶にあるが公式なソースは忘れた ]
[ここ壊れてます]

829 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 14:39:35.59 ID:5JRn7Uik.net]
>>804
perl

830 名前:803 mailto:sage [2019/03/12(火) 14:48:12.21 ID:rdaDEiid.net]
selfに対する直接の説明としてはちょっとアンカーが適切ではないか
https://docs.python.org/ja/3.5/howto/descriptor.html#functions-and-methods
「関数に基づく環境の上に構築」って所がミソやね、後付けと言われる所以



831 名前:デフォルトの名無しさん [2019/03/12(火) 16:34:54.17 ID:8KtfShI4.net]
>>804
tcl

832 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 16:40:24.68 ID:Le2Xhtue.net]
>>797
よくわからないけどありがとうひき肉おじさん

833 名前:デフォルトの名無しさん [2019/03/12(火) 17:17:23.48 ID:8KtfShI4.net]
わからないならレスしないでくださいうざいだけです

834 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 17:19:11.50 ID:Le2Xhtue.net]
インスタンス作成っていうのはメモリ上に領域を確保する作業ってことでいいんでしょうか。

835 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 17:21:39.56 ID:zkYMqbGV.net]
なにそれ
他のコード作業だとメモリを使用しないとでもw

836 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 17:23:18.47 ID:zkYMqbGV.net]
クラス定義内に大量の関数定義を入れると、そのクラスがインスタンス化されたときに、インスタンスに自我意識が生まれます

837 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 18:13:57.38 ID:rf03pH6k.net]
俺も3食インスタンスラーメンです

838 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 19:11:13.53 ID:qLQHaQxA.net]
selfはあってもなくても、どっちでも
よかったかもしらんが、
クラス外の普通の関数でも、いきなり
クラスのフレンド関数のようにしやすいといった、
モンキーパッチ的な利点もあるし、
一長一短。

839 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 05:29:22.97 ID:Z4mQGBB0.net]
pythonのselfの超簡単なサンプルを教えてください
調べてるんですが、わかりにくくて、、、

840 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 06:11:09.78 ID:nAhixTo8.net]
サンプルって…メソッドならインスタンスを受け取るために必須なだけだ
倣うほどの規範は無いと思うけど、オブジェクト指向が理解できてないの?



841 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 07:18:13.39 ID:zpkiSS8W.net]
>>817
オブジェクト指向の理解というよりPythonの仕様の気が・・

横なんですけど、例えばあるクラスを継承したクラスがいくつかあって、それぞれで同じメソッドをオーバーライドしている時、Pythonは渡されたインスタンスを見てどのメソッドを呼び出すか決めているんですか?
つまりインスタンスとメソッドは別々に管理されていて、呼び出す時にインスタンスとメソッドは結び付けられるとか。

842 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 07:28:44.40 ID:Z4mQGBB0.net]
>>817
オブジェクト指向はなんとなく
インスタンスを受け取るというのはよくわからないのですが

843 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 07:44:07.11 ID:zpkiSS8W.net]
>>819
私もです、>>807さんのリンクや後付け・・から思うに、
オブジェクト内にメソッドがあるのではなく、メソッドはオブジェクトの外に関数としてあって、その関数に対して「このオブジェクトのメソッドの様に振る舞え」と指示しているのかな、と感じました。

844 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 10:42:08.19 ID:Nk0VyZbv.net]
配列hogeを作成し、
print(hoge)を実行した時、[1. 2. 3. 4. 5.]の様に
数字にピリオドがついた時は浮動小数点型の配列なのでしょうか?
浮動小数点型の場合、整数型の配列にする方法はありますでしょうか?

845 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 10:51:02.04 ID:x5gb1xdG.net]
>>821
list(map(int,hoge))

846 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 11:00:58.72 ID:Nk0VyZbv.net]
>>822
ピリオドが無くなりました!
ありがとうございます

847 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 11:08:04.74 ID:Z4mQGBB0.net]
class Cat(object):
def __init__(self, name, weight):
self.name = name
self.weight = weight
このコードのselfはどういう意味なんでしょうか?
猫というオブジェクトの属性を表現しているクラスのようです

848 名前:デフォルトの名無しさん [2019/03/13(水) 11:19:10.70 ID:Y4yR4bDO.net]
>>798
二項演算ならself使うと分かりにくいのでアリ、アプリカンド/アプリケータなど
self/other派も居るが

有名ライブラリだとmpmathがctx(計算の文脈、精度とか)渡してるね

849 名前:デフォルトの名無しさん [2019/03/13(水) 11:20:56.58 ID:Y4yR4bDO.net]
x/yも見掛けるな
同種同士の同等な二項演算の定義に主体が入り込むのは気持ち悪いと思うよやっぱ

850 名前:デフォルトの名無しさん [2019/03/13(水) 11:34:37.37 ID:imKqJmF7.net]
>>824
Cat(‘neko’, 5) などと書くと__init__が呼び出されてselfには作成されたCatのインスタンスが渡される
つまり
c = Cat(‘neko’, 5)
とした時cとselfは同じものを指す



851 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 12:31:52.80 ID:Z4mQGBB0.net]
selfの意味がいまいち理解できていないのですが、引数の設定されたクラスや関数自身を表すということですよね
で、self自体を出力してみました
class classname:
def defname(self):
print(self)
s =classname()
s.defname()

<__main__.classname object at 0x03EE2F30>
selfを設定しているのは関数なのですが、これでは関数自身ではなく、クラス自身ではないですか?
また、これはどういったときに役立つのですか?

環境はidleです

>>827
ありがとうございます
読み解いてみます

852 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 12:44:16.23 ID:Ux8DzXrZ.net]
>>828
>引数の設定されたクラスや関数自身を表すということですよね
うん

5ちゃんでは
インデント(連続してる半角スペース)が消えちまうので
めんどうでも全角スペース使って書きなおす(半角スペースを全角スペースに置換でおk)か
1に書いてあるような、ソースコード貼る専用のうpろだにうp

853 名前:デフォルトの名無しさん [2019/03/13(水) 13:38:08.75 ID:imKqJmF7.net]
>>828
メソッドの中から別のメソッドを呼びたい時にselfが無いと詰む

854 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 15:00:34.67 ID:Ux8DzXrZ.net]
>>828
2系でやったら違う結果になるぞ

855 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 15:57:20.28 ID:nAhixTo8.net]
>>828
はい、いいえ。通常defで定義した関数自身を第1引数が表す事はありませんし
ついでにクラスへ定義した関数は、メンバー関数あるいはメソッドと呼びます
またクラス(型)も渡されていません、それはインスタンス(実体)です
オブジェクトとも呼ばれますけど意味が文脈に左右されるので置いといて
クラスメソッド(@classmethod)と修飾したときは、クラスが渡されます

文字列でいうならクラスはstr、'ABC'など具体的な物がインスタンスに相当し
その長さなどがインスタンスの属性と言えます(Pythonだと関数で取得するが

selfは>>797でも回答されるように他言語の(暗黙的に参照可能な)thisと同等で
その宣言の必要性は>>807に対する>>818>>820の理解…は齟齬が生じる所もあるが
概念的にはメソッドだけども実装的には関数なので、()と呼び出された時ではなく
実体から関数が.で属性参照された時に、結び付けられたメソッドが生成されます

一連のレスからすると、引数が表すものに関数自身(callee)が出てくる辺り
メソッド以前に関数の定義・呼び出し自体の理解も怪しいのではなかろうか?
関数の操作対象として構造物というか実体が第1引数に渡されているのだが…

856 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 16:27:27.93 ID:M+m6pFpm.net]
はい(いいえ)

857 名前:デフォルトの名無しさん [2019/03/13(水) 17:46:31.02 ID:h9UFHds/.net]
そやで、ちゃうで

858 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 17:48:54.93 ID:MhYZY5Aj.net]
はいいいえ

859 名前:デフォルトの名無しさん [2019/03/13(水) 18:46:52.20 ID:gkV5NrkZ.net]
ちゃうちゃうちゃうんちゃう

860 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 19:03:05.32 ID:jL6M634A.net]
def yes(arg= None):
____print()



861 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 19:58:39.06 ID:26FDLpbf.net]
hoge = "ほげほげ!"
if hoge == "ほげほげ":
print("ほげほげ!)
else:
pinrt("げほげほ!")

862 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:00:19.07 ID:Ux8DzXrZ.net]
>>838
”がたりてない

863 名前:デフォルトの名無しさん [2019/03/13(水) 20:21:08.59 ID:1Wup6Az1.net]
Pythonはswitch文が無いのが不満だったけど辞書使えば同じ様な事が出来ると最近気づいた

一番はswitchが必要になるロジックを組まない事だろうけど

864 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:32:12.62 ID:Z4mQGBB0.net]
↑selfについて回答ありがとうございました

865 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:34:50.72 ID:Z4mQGBB0.net]
class className():
def __init__(self, strA, strB):
self.str1 = strA
self.str2 = strB

test = className("Hello", "World!")
print(test.str1)
print(test.str2)

まだselfの意味について理解できていないので教えてください
クラスをインスタンス化したときに引数を設定することでinitが呼び出され、hellwとworld引数が、str1とstr2に代入されるということだと思います

この場合のselfはどんな役割をしているのですか?
selfをはずすと動作はしないようです
init関数自身とは?

866 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:34:55.83 ID:Z4mQGBB0.net]
class className():
def __init__(self, strA, strB):
self.str1 = strA
self.str2 = strB

test = className("Hello", "World!")
print(test.str1)
print(test.str2)

まだselfの意味について理解できていないので教えてください
クラスをインスタンス化したときに引数を設定することでinitが呼び出され、hellwとworld引数が、str1とstr2に代入されるということだと思います

この場合のselfはどんな役割をしているのですか?
selfをはずすと動作はしないようです
init関数自身とは?

867 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:41:11.30 ID:Z4mQGBB0.net]
インスタンス変数を使うときにselfをつけることですが、そういうおまじないということですか?

868 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:47:03.94 ID:Ux8DzXrZ.net]
>>829を読んでも理解してないということはよくわかった

869 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:14:16.67 ID:nAhixTo8.net]
>>842-843
まず引数を設定しようがしまいがインスタンス化したら初期化のために__init__は呼ばれる
selfはselfを書いた関数自身ではなく、メソッドとして属するクラスのインスタンスを表す
selfから属性参照しなければstr1やstr2はローカル変数になって抜けたら破棄されてしまう

結果としてtestに代入されるインスタンスを参照するために必要だから書く

870 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:16:12.72 ID:ZMFJ1a5n.net]
>>843
俺も初心者だけど、Pythonにはクラスオブジェクトってのがあつて、クラス定義が実行されるとそのクラスオブジェクトってのが作られるらしいぞ。クラス定義が実行させるって何ぞ?と思ったけどそうらしい。

でインスタンスはそのクラスオブジェクトから作られるらしいぞ。
つまりそのinitはコンストラクタというよりクラスからクラスオブジェクトを作るためのinitだったりするかも。
self渡す必要があるってことは、そのinitは他の言語じゃプログラマが意識しない部分の可能性。クラスのインスタンス化の一層下にあるのかな?



871 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:22:48.95 ID:M+m6pFpm.net]
シンタックスは
def self.__init__(strA, strB):
とかではダメだったの?
書いてもないのに第一引数にself入ってくるのと大差なくない?

872 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:27:46.46 ID:ZImJqTUY.net]
>>824
self が付いているのは、インスタンス変数じゃないの?
Ruby では、@ がインスタンス変数

class Cat
def initialize( name, weight )
@name = name
@weight = weight
end
end

p Cat.new( "bob", 5 )

# <Cat: @name="bob", @weight=5>

873 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:43:36.51 ID:nAhixTo8.net]
>>848
Pythonに複合文としてのメソッド定義はなく、クラスに書いた関数がメソッドとして扱われる
そのメカニズムはHowToでも記される、参照した属性がクラススコープで定義された関数なら
インスタンスと関数が参照されたバウンドメソッドオブジェクトを返し、__call__が呼ばれる

874 名前:847 mailto:sage [2019/03/13(水) 21:53:09.68 ID:ZImJqTUY.net]
Ruby では、@ がインスタンス変数で、

self は、クラス直下ではクラスを表し、メソッド内では、インスタンスを表す。
コンテキスト(文脈)によって、self の意味は変わる。
また特異クラスも、よく出てくる

class Cat
p self #=> Cat

def initialize( name, weight )
@name = name
@weight = weight

p self #=> <Cat: @name="bob", @weight=5>
end
end

Cat.new( "bob", 5 )

Ruby で、オブジェクト指向・関数型をみっちり学んでから、
Python, JavaScript を学ぶ方がよい

875 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:55:25.72 ID:bUFEpZHr.net]
>>849>>851
うるっせえな!
スレタイ読めねーのかカス!!
死ね!死んで消えろゴミ!!

876 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 03:27:13.64 ID:4WTRjlYm.net]
相手にするからつけあがるんだよ

877 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 03:37:18.44 ID:nL4uJ2zh.net]
終わりのないのが『終わり』
それが『RWBY』

878 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 08:25:07.71 ID:/JPtJCUD.net]
a = 'hoge'
type(a)

これを実行すると<class 'str'>が表示される
これは変数aが指してるオブジェクトの型がstr型という意味でいいんだよね

一方で、文字列はシーケンス型でもあるからインデックスでアクセスしたり、スライスしたり出来る
この文字列がシーケンス型というのはpython上でどうやって確認するんや

879 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 08:34:53.42 ID:lGFaI2Uv.net]
>>855
シーケンス型の実体は存在しない
失敗しないことを天に祈りつつ勇敢にforに投入する、がPythonの思想的には正しい
厳密にやりたいなら型アノテーションでSequenceあるけど、型アノテーションなんか誰も使ってない

880 名前:デフォルトの名無しさん [2019/03/14(木) 10:12:27.31 ID:QThoqyRe.net]
>>855
hasattr(a, ‘__iter__’)
Pythonではシーケンス型の事をiterableなオブジェクトという
forにiterableを渡すと__iter__()が呼ばれるのでこれの有無を確認すれば分かる



881 名前:デフォルトの名無しさん [2019/03/14(木) 10:14:27.51 ID:QThoqyRe.net]
>>855
それとiterableであることとスライスできるのは別の機能
インデックスやスライスは__getitem__()で実装される

882 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 11:06:23.42 ID:/JPtJCUD.net]
レスありがとう

俺はstr型はシーケンス型を継承してるから、シーケンス型のようにも振る舞うと勝手に思ってたけど違うのね

str型はiterableな属性を持ってるから、for文に渡して繰り返しの処理が出来るというのはわかった

それなら、str型がsequenceableな属性を持ってるからスライスやインデックスのアクセスが出来るというのなら理解できるんだけど、シーケンス型で属性じゃないのよね

なんか混乱してきたわ(´・ω・`)

883 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 11:16:27.87 ID:r+Z4K3kn.net]
>>859
IterableもSequenceと同じく、クラスが満たすべき性質がドキュメント上や型アノテーションで定義されているだけの実体のない型だ
Pythonではそういう実体のない(ドキュメントや型アノテーションにしか登場しない)仮想的な型のことを一般にプロトコルと呼ぶ
Javaのinterfaceに近い概念だが、interfaceとは違ってオブジェクトに付随する型としての実体を持たないという点が異なる

884 名前:デフォルトの名無しさん [2019/03/14(木) 11:26:52.83 ID:RE7f17De.net]
>>859
pythonの場合、forに渡せるとかの機能は単に__xxx__という名前の特殊メソッドが実装されているかどうかで決まる

885 名前:デフォルトの名無しさん [2019/03/14(木) 11:41:55.90 ID:jNBQt8MR.net]
>>860
Pythonにはstr、listというオブジェクトは存在するが、sequence というオブジェクトは存在しない
だが、str 、listどちらもsequence型である

886 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 12:41:19.77 ID:r+Z4K3kn.net]
>>862
だからそう言ってるつもりだが

887 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 12:47:55.74 ID:YiVNNcx0.net]
じゃあjavaよりgoのが近いんじゃ?

888 名前:デフォルトの名無しさん [2019/03/14(木) 13:23:53.72 ID:jNBQt8MR.net]
>>863
適当にアンカーつけてレスしたんよ
なんかごめんな

889 名前:847 mailto:sage [2019/03/14(木) 13:28:05.85 ID:tsxAqnNH.net]
参考までに、Ruby では、Array -> Enumerable (子 -> 親)

自クラスに、each を定義して、Enumerable モジュールをinclude すれば、
Enumerable のすべてのメソッドが使える(mix-in)(内部イテレータ)

Enumerable とは繰り返しを行なうクラスのための Mix-in。
このモジュールの メソッドは全て、eachを用いて定義されているので、
インクルード するクラスには、eachが定義されていなければなりません

each を定義しない場合は、Enumerator というラッパークラスで、Enumerable のメソッドが使える(外部イテレータ)

外部イテレータは、Enumerator.next, rewind などで繰り返しを進めたり・巻き戻したり、制御できる

mix-in とは継承ではないけど、呼び出される関数探索の継承チェーンに割り込む機能。
Java のinterface みたいなもの。
Duck Typing と言って、そのメソッドに反応するかどうか

子 -> mix-in -> 親

890 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 13:31:58.94 ID:r+Z4K3kn.net]
>>864
goのは型が明示的にinterfaceを実装していなくても必要なメソッドがあれば受け入れるstructual subtypingという考え方
Pythonは duck typing なので本来はそれに近いのだが、型ヒントがstructual subtypingではなく明示的にクラスがインターフェイスを継承する必要がある
よってpythonにおいては型ヒントを考慮すればgoよりJavaに近い



891 名前:デフォルトの名無しさん [2019/03/14(木) 13:52:11.73 ID:q8OuUl64.net]
rubyをdisる訳じゃないけど
初心者でpython学習し始めたところなら
rubyと比べない方が良いよ
覚えることが増えるだけでメリット無いから

892 名前:デフォルトの名無しさん [2019/03/14(木) 13:56:28.26 ID:1qhaQ5mP.net]
これから試験受けるんだが落ちそう

893 名前:デフォルトの名無しさん [2019/03/14(木) 15:34:12.56 ID:1qhaQ5mP.net]
うかったんご

894 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 16:11:42.58 ID:NTHRrjbg.net]
おめでと

895 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 16:56:04.19 ID:lcXwIoo8.net]
型アノテーションは、関数の出入り口と、
なんの型が分かりにくいローカル変数には
つける。

付けることで補完が強化される場合と、
しばしば補完を逆に妨げる場合があるので、
うまく折り合いを付けて付記する感じやな。

896 名前:デフォルトの名無しさん [2019/03/14(木) 18:13:57.50 ID:1qhaQ5mP.net]
あざます

897 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 18:55:16.95 ID:cYjqrp0Z.net]
>>846
ありがとうございました

898 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 19:44:05.42 ID:prpM2HGX.net]
最適化には何の関係もないのよね型指定

899 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 19:58:50.87 ID:r+Z4K3kn.net]
>>875
むしろソースコードのパースの負荷が増えて僅かに遅くなるだろうな

900 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:29:10.91 ID:DYXE/n/d.net]
Ruby ←まず名前がダサい
Python ←カッコイイ



901 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:37:41.09 ID:Cgb2oqJn.net]
pythonだけ見るとカッコイイけど元はモンティ・パイソンなんだよな

902 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:48:50.71 ID:nL4uJ2zh.net]
st.cdjapan.co.jp/pictures/l/04/02/NEOGDS-244522.jpg

903 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:50:35.71 ID:nL4uJ2zh.net]
https://images.idgesg.net/images/article/2018/07/python-100763894-large.jpg

904 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 08:57:12.14 ID:Oo+XcCcU.net]
pythonのコーディングに少しづつ慣れてきたせいで,のあとに半角スペースを挿入してしまうクセが付いてしまいました
簡単なテストのためダミーでcsv作る際に,後ろにに半角スペース入れるせいでcsvDictReaderで読んでkey指定したときにkeyErrorが出てしまい数十分ですが悩んでしまいました
今後はskipinitialspaceをtrueにして使います
ありがとうございました

905 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 09:55:37.05 ID:LNWMUSed.net]
pythonに限らずほぼ全てのプログラミング言語でそういう癖が付くかと思うしそもそも欧米圏の言語でも全てそうだがお前何か言いがかりでも付けた

906 名前:いの? []
[ここ壊れてます]

907 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 12:49:50.87 ID:zt0rtKct.net]
python はビジュアル系スタジオみたいな統合環境は無いの?

908 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 12:51:57.85 ID:EeWTkT4V.net]
ビジュアル系スタジオちょっと好き

909 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 13:13:04.71 ID:88mLDigX.net]
>>883 あんたも好きね。 チャーミングなおっぱいがあるよ。 PyCharm

910 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 13:25:05.27 ID:1iRTQcZ+.net]
pycharm ceがタダで使えるのは助かるなぁ



911 名前:デフォルトの名無しさん [2019/03/15(金) 14:18:08.50 ID:SEjqglYP.net]
最新鋭の望遠鏡で使われてる
タイパンがカッコ良かった
UKシュミット望遠鏡自体は数十年の年季もんだけど
タイパン付けると最新鋭に変身してた

912 名前:デフォルトの名無しさん [2019/03/15(金) 14:21:07.58 ID:SEjqglYP.net]
これね
https://www.youtube.com/watch?v=xrumMTsFkPY

913 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 18:27:46.26 ID:HkVkKV93.net]
オブジェクトをフォルダと考えるのは間違いなのですか

914 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 18:38:30.61 ID:PFD13TRH.net]
考えてもいいぜ

915 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 18:58:10.65 ID:8Z2zh4Or.net]
Python初心者です。
scikit-learnで学習した学習結果を他の言語(C#)で利用したいと考えてます。
が、どうしたらいいのかわかりません。
どなたかご教授願います。

916 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 23:30:46.48 ID:/jMwhNVt.net]
最終的に何をしたいのかをもう少し具体的に書いたほうが良いと思う
個人的に言語は統一した方が楽と思うよ

917 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 23:48:43.20 ID:8Z2zh4Or.net]
scikit-learnでじゃんけんの人間の癖を学習させて、
そこそこの制度で予想できるようになったので、それをスマホアプリとして公開したいという欲が湧いてきました。
Pythonではスマホアプリの開発は難しそうなのでその学習結果をC#に移植したいと考えてるのですが、
そういう事は可能ですか?

918 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 00:53:29.77 ID:lomlnXfv.net]
!?

919 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 06:12:09.99 ID:MtyeuN+5.net]
可能
pythonに不可能は無い

920 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 10:56:59.10 ID:Eza8KstC.net]
>>893 iOS なら、Pythonista で簡単にアプリを作れるぞ。
Androidでもできるだろ。

そもそもiOSだと、C#じゃなくObjective-C やSwift になるからかなり垣根は高いぞ。

因みにPythonista からはObjective-C のライブラリを使うこともできるし自由に呼び出すこともできる。

なお、scikit-learn そのものをPythonistaで使うことはできない。 numpy は使えるが、scipy がインストールできない。



921 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:10:13.00 ID:INaBYg0f.net]
いやC#つってんだからUnityで作るんだろJK
あれゲーム作るの簡単だからいいよな〜

922 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:18:22.65 ID:mXGVm9Ao.net]
>>896
ありがとうございます。
Androidアプリを作られればIOSには対応できなくてもよいと考えてます。
Androidでscikit-learnを使うのは難しいでしょうか?

923 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:20:10.33 ID:mXGVm9Ao.net]
Unityって物理エンジンですよね?
scikit-learnのように機械学習もできるのですか?

924 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:31:31.62 ID:Slvebd/s.net]
学習機能は通信を介したサービスとして提供したら
scikit-learnはサーバー側で動いてりゃ良いんだし

925 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:44:44.11 ID:+8YpvTs6.net]
>>900
そっちの方が良いと思う
機械学習の多言語移植は考えただけで血の気が引く
kerasならまだしも、scikit-learnは依存地獄が酷かった。今は大分マシ担ってるとは思うけど

926 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:48:05.65 ID:d/4KgbH7.net]
じゃんけんするのにサーバーと通信するのは草
でもいまどきそんなもんなのか?

927 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:52:33.53 ID:+8YpvTs6.net]
さすがに半分テストアプリだと思うけど、既に超敷居が高い

928 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:53:42.85 ID:mXGVm9Ao.net]
機械学習の移植は難しいものなんですね。
サーバーにPythonを置けばいいのですね。
ありがとうございます。

929 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:58:21.60 ID:eO5a7zjy.net]
学習からC#でやり直すわけにはいかないの?
オブジェクト指向の機械学習ライブラリなんて言語によらず使い方似てるからそっちのが楽じゃない?

930 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:01:14.33 ID:eO5a7zjy.net]
「Unity 機械学習」
でググってもいろいろでてくるし



931 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:05:08.07 ID:mXGVm9Ao.net]
C#で機械学習ですか!
scikit-learnがすごく簡単だったのでscikit-learnで出来たらと考えてました。
使い方が似ているのならその選択も検討してみます。
ありがとうございます。

932 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:12:34.74 ID:Eza8KstC.net]
せっかくPython の勉強を始めたんだから、Python でゲーム開発までやれば良いのに、じゃんけんアプリなんて簡単でしょ。
どんなPython ゲームライブラリが適切なのかは知らないけど。

933 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:14:27.10 ID:SlIDoTSl.net]
selfについて何度も聞いてるカスなんですが、まだ意味が理解できてません
このコードの場合どういった意味を持ちますか?
インスタンス自身と言われてもイメージがつきません
記憶領域という説明も見たことがありますが、これはどういう意味でしょうか

codepad.org/rOzHcmIX
class apple:
def __init__(self,price,weight):
self.p = price
self.w = weight
def print(self):
print(self.p)
print(self.w)

s = apple("100yen","300g")
s2 = apple("1000yen","1000g")
s.print()
s2.print()

934 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:15:53.61 ID:SlIDoTSl.net]
訂正です
×このコードの場合どういった意味を持ちますか?
○このコードのようにselfを使うメリットはなんですか?

935 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:24:28.76 ID:Eza8KstC.net]
Android ならQpython にはKivy がバンドルされてるらしいし、kivy で良いんじゃないの?

936 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:29:58.42 ID:+8YpvTs6.net]
>>909
コードが変なので修正した
codepad.org/L0lJBrzg

メモリ上のデータをイメージできれば簡単に理解できるんだけどね
インスタンスとか言っても逆に分からんだろうな
https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/C++2/09/09-02.html
cpp.aquariuscode.com/class-memory-layout

937 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:38:34.92 ID:mXGVm9Ao.net]
>>908
Pythonは機械学習やディープラーニングを始めたくて最近勉強し始めました。
勉強してくうちにアプリを公開したいと思うようになった次第ですw
GUIはC#の方が簡単そうなので2つの言語をうまく連携できればと思ったのですが、
難しいようですね。

もちろんPythonはこれからも使いたいと思います!

938 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:58:16.11 ID:Cc4OYSLe.net]
>>909
まず自分でクラス書く前にライブラリでクラス使ってみたらわかるだろ

pandasのチュートリアルとか何でもいいけどインスタンス作ってメソッド使ってインスタンス変数参照したらself何なのかも見えてくる メモリ上の何とかなんか意識しなくていい

939 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 13:11:48.23 ID:eO5a7zjy.net]
「入門python3」を一冊買ってやろう。

940 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 18:05:24.13 ID:fe/BGgDT.net]
vscodeとintellijのpython機能で試したのですが
awsのsdk boto3でインスタンス化したクライアントに対してオートコンプリートを働くようにするのってどうしたらよいでしょうか?
以下のようにして変数cを作っても、変数cをBaseClient型としか認識してくれないので、s3関連のメソッドがオートコンプリートで出てきてくれません。
c = boto3.client('s3')

もちろん実行時はちゃんとs3の型になるのでコードを動かす事は出来るのですが、オートコンプリート無しはちょっときついので、なんとかして出す方法があれば教えてください。



941 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 18:30:45.43 ID:SlIDoTSl.net]
>>914
ライブラリでクラスを書くとはなんのことですか?
>>912
c++がわかりません
selfはメモリ領域を確保するために必要になるもの、という認識でいいんでしょうか?おそらくインスタンスを作った時点でメモリが確保されるのかと思いますが。

942 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 18:36:03.43 ID:YxxaJZky.net]
>>916
型アノテーションで変数の型を明示的に指定する

943 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 18:53:42.59 ID:+8YpvTs6.net]
>>917
・インスタンスを作成
・メモリ領域を確保
・self=インスタンス
この辺はもう全部イコールで考えても構わない

例外的にstaticやglobalでインスタンス外にメモリ領域を確保することも出来るけど

図で言うとこんな感じ
https://i.imgur.com/gNRp6HQ.png

944 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 19:28:51.03 ID:sQCNGdE3.net]
>>917
インスタンスを作った時点でメモリが確保は良い。でも確保にselfは関係ない
内部だと__init__より前に__new__が呼び出され、そこでメモリ確保が行われる
語弊を恐れずに言ってしまえば、selfはそのメモリがどこか位置を示すものだ

メリットがどうとかじゃない、sとs2は同じ型だが別物だろう、それを区別するために必要なんだ

945 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 19:33:23.24 ID:1feDyboY.net]
>>919
「のタイミング!」
ですか?

946 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 20:16:22.51 ID:SlIDoTSl.net]
>>919
>>920
ありがとうございます
あれ?これってもしかしてポインタというやつなんですか?pythonの場合そういった呼ばれ方は見たことがありませんが
https://wa3.i-3-i.info/word12815.html

947 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 20:31:38.84 ID:INaBYg0f.net]
山椒

948 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:47:12.09 ID:+8YpvTs6.net]
>>922
似たようなもんで「参照」

ポインタと参照の違い
https://qiita.com/agate-pris/items/05948b7d33f3e88b8967
cocodrips.hateblo.jp/entry/2015/12/08/221722

メモリ上にインスタンスが展開されてるイメージができれば大体ok

949 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 22:04:48.14 ID:/h3gEsxd.net]
C言語使わない人にその教え方はどうなのよ。悪いことは言わないから「入門python3」を買って一通りやろう。

950 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 22:11:31.40 ID:431M+yCA.net]
入門python3ってあんまりレビューが良くないね



951 名前:847 [2019/03/16(土) 23:16:52.98 ID:1E15fsAJ.net]
インスタンスや、self がわからないの?
オブジェクト指向の基本だよ

self は、そのインスタンスを指す。
Ruby では、

class Cat
def initialize( name, weight )
@name = name
@weight = weight
end
end

p bob = Cat.new( "bob", 5 )
p alice = Cat.new( "alice", 4 )

new で、Cat というひな形から、各インスタンスを作る(実体化)

bob は、<Cat: @name="bob", @weight=5>
alice は、<Cat: @name="alice", @weight=4>

Rubyの、@name = name が、Python では、self.name = name になる。
Rubyではインスタンス変数は、@ で表すけど、pythonではself を付ける

インスタンス変数とは、各インスタンスで異なる部分。
一方、クラス変数とは、そのクラス(すべてのインスタンス)で共通の部分。

Rubyでは一々、selfを付けなくても良いように、Rubyの実装を、かなり頑張って作っている。
self.name よりも、@name の方がわかりやすいから!

オブジェクト指向・関数型は、Rubyで学んだ方がよい。
Python, JavaScript, Kotlin にも応用できるから

952 名前:デフォルトの名無しさん [2019/03/16(土) 23:27:14.53 ID:DylECkfT.net]
>>927
> self.name よりも、@name の方がわかりやすいから!
アピールポイントそれだけ?
@がメンバ変数を表すなんて知らなきゃ分からんし、直感でも何となく察せるself.〜の方が分かりやすいと思うが

953 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 23:28:24.96 ID:1G1aklbm.net]
自分もPython初心者だけど
ttps://www.python-izm.com

ここのサイトめちゃくちゃわかり易かったので載せときたす。

954 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 23:35:31.32 ID:8PxPizsB.net]
>>927
さすがクソ記号言語perlの末裔w
一生記号暗記してろ。
そして死ね。

955 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 00:17:39.16 ID:oRKycfKe.net]
>>927
なんでJavaないの? 理解できなかったの?

956 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 01:42:26.25 ID:ttbbgHOa.net]
chromeの拡張機能を自動操作することは可能ですか?

957 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 02:01:28.71 ID:QLspzkYx.net]
>>937 ちらっとのぞいてみたが、目次が良くないね。
最初から順を追って進めて行く人にとっては良いかもしれないけど。

958 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 02:05:09.07 ID:nMZPqZIX.net]
937に期待

959 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 02:05:36.23 ID:pyRBRMBz.net]
>>926
どこのレビュー?Amazon見る限りは良さそうだけど…

960 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 05:27:50.39 ID:nAjwMdDd.net]
>>924
ありがとう



961 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 07:33:20.83 ID:nAjwMdDd.net]
https://wa3.i-3-i.info/word16070.html
こういう説明がわかりやすいのに、、、

962 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 07:39:55.25 ID:nAjwMdDd.net]
変数がメモリ上にあって、その変数の場所を渡すのが参照わたし=self
ということでいいんですか?

963 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:24:23.53 ID:HhaziKqA.net]
参照渡しがどうこうはとりあえず忘れろ
今までの流れには全く関係ないから

964 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:25:15.86 ID:HhaziKqA.net]
今までの流れってのはselfの話な

965 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:37:05.58 ID:Udd8jK7+.net]
>>935
書き方が悪かったわ
完全な初心者にとっては難しくてレビューが良くないね

966 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:41:05.15 ID:nAjwMdDd.net]
>>939
えっ?関係ないのですか、、、

967 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 11:18:35.50 ID:oeP02mQD.net]
Pythonではすべてが値渡しだ
そしてすべての値が所謂参照型だってだけ

968 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 11:41:11.52 ID:R43k4iG5.net]
内部的に参照渡しみたいなもんなんだからメモリの概念教えないと永久に理解できなく内科?

969 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 11:57:02.77 ID:X1cUtWYO.net]
参照渡しってどこが

970 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:00:59.08 ID:X1cUtWYO.net]
参照渡しについて
C#のrefみたいなのを参照渡しと呼ぶ勢と
C++のhoge&みたいなのを参照渡しと呼ぶ勢がいるので
ややこしい



971 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:08:17.15 ID:iuUxAYpH.net]
一子相伝究極奥義「参照渡し」

972 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:11:50.92 ID:Udd8jK7+.net]
値渡しと参照渡しと参照の値渡しがあるんだっけ

973 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:12:20.76 ID:nAjwMdDd.net]
>>943
値渡しということはコピーということですかね

974 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:14:55.90 ID:7j/Zhhp5.net]
大地参照も変換できない糞スマホの糞IME

975 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:15:53.60 ID:vfP8HMqf.net]
大地讃頌

976 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:21:40.62 ID:XvGPMByn.net]
>>946
C#のrefとC++のhoge&はどちらも変数のエイリアスを渡すから一緒
紛らわしいのは「参照の値渡し」

977 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 15:27:46.05 ID:9wVKFPUf.net]
>>937-938
いやさ、記憶領域の話をし出すから皆メモリの話をした訳だけど
ポインタとか言い出すと、Python上にはポインタは無いけど
CPython等の実装は変数が全てポインタで実体に対する参照なの

参照渡しというと普通は変数に対する参照を言うので関係ないし
変数が入れ物とはC言語などのスタック変数を前提としてしまってる

そもそも実装以前に、OOPどころか構造体的な概念も分かってないのでは?

978 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 18:00:19.80 ID:oeP02mQD.net]
>>938
こういう簡単なクラスで考えてみる

class MyClass:
  def __init__(self, name):
    self.name = name

  def getname(self):
    return self.name

コンストラクタで名前を受け取って、自身のnameプロパティにセットする
getnameメソッドでは自身の名前を返す簡単なクラス

このクラスの使い方は以下

a = MyClass("John")
a.getname() // 出力 'John'

ただしこういう風にも書ける

a = MyClass("John")
MyClass.getname(a) // 出力 'John'

Pythonのインスタンスメソッドは単なる関数もしくはスタティックメソッドみたいなものだということがわかる
a.getname() は暗黙的に MyClass.getname(a) に置き換えられてると考えてもいい

979 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 18:01:31.22 ID:oeP02mQD.net]
>>938
さらにselfというものがわかりやすいようにこのクラスを普通の関数と辞書型で再現してみる

def MyClass(name):
  self = {}
  __init__(self, name)
  return self

def __init__(self, name):
  self["name"] = name

def getname(self):
  return self["name"]


a = MyClass("John")
getname(a) // 出力 'John'

これでだいたい再現できる
何が言いたいかというとMyClass()という関数が空のインスタンス(ここでは辞書だが)を作成して__init__に引数として渡している
たぶんPythonのクラスでも暗黙的にMyClass()という関数が生成されて間接的に__init__を呼び出している
つまりself(=MyClassのインスタンス)というのは暗黙的に作られたMyClass()関数内で作られているオブジェクトだと考えればいい
Pythonほとんどやったことないから想像で適当に言ってるだけだけどな

980 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 19:53:26.49 ID:UUXyH29G.net]
>>954
self.name = name
部分はself変数にnameプロパティがついている状態なんですか?
nameのほうが変数名かとおもっていましたが
self.nameとすることでnameプロパティを定義している という感じですかね
なんのためにあるのかわからないですが



981 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 21:13:22.59 ID:pWnkPEfA.net]
>>955
デタラメな回答するの辞めーや

982 名前:デフォルトの名無しさん [2019/03/17(日) 21:52:19.70 ID:oeP02mQD.net]
>>957
詳しいなら教えてくれ

983 名前:847 mailto:sage [2019/03/17(日) 22:22:14.14 ID:QeX4wN+m.net]
self.name = name

Ruby では、@ がインスタンス変数です。
@name = name

インスタンスや、インスタンス変数は、オブジェクト指向の基礎。
クラスはひな形で、実体化するには、個々のインスタンスを作らないといけない

これがわからないのなら、Rubyをみっちり勉強した方がよい。
Python から始めるのは無理

オブジェクト指向・関数型は、Rubyで学んだ方がよい。
Python, JavaScript, Kotlin にも応用できる

984 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:28:34.62 ID:Ea7K77ki.net]
Rubyは最も一般的な方法で定義した関数(関数じゃないw)が値として取り回せない(第一級関数でない)クソ言語wwwww
def add(a, b)
a + b
end
def opTwo(a, b, func)
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

985 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:29:45.96 ID:Ea7K77ki.net]
def、proc、Proc.new、->、lambda、ブロック、・・挙動と使いどころの異なるこれら関数ライクを使いこなし、
==、===、eql?、equal?の違いと使いどころを完璧に把握しているRuby信者wwwww

986 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:31:54.89 ID:Ea7K77ki.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の &:: は極めて驚きが大きく醜悪な機能の一つだね

987 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:33:19.32 ID:Ea7K77ki.net]
クロージャって何がいいの? [転載禁止]©2ch.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

988 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:50:20.65 ID:vwxCn2J+.net]
必死すぎるw

989 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:58:46.72 ID:Ea7K77ki.net]
Rubyを長く使い続けることを僕がお薦めしない理由を説明します - YouTube
https://www.youtube.com/watch?v=2wfQ3iG08UI

990 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:59:12.36 ID:Ea7K77ki.net]
「Railsは終わった」と言われる理由
https://qiita.com/klriutsa/items/86ac5e94ec99c0d95b61



991 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:07:59.19 ID:Ea7K77ki.net]
GitHub、2018年の人気プログラミング言語を概観できる「The State of the Octoverse」を発表
https://www.softantenna.com/wp/software/the-state-of-the-octoverse-2018/

日本人が作ったプログラミング言語がランクイン!
誇らしい!!

992 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:13:16.15 ID:Ea7K77ki.net]
GitHubのRails離れと、迫りくるMicrosoft
https://yakst.com/ja/posts/5290

993 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:20:10.39 ID:Ea7K77ki.net]
世界最大のソフトウェア開発プラットフォームで最も人気なプログラミング言語は何なのか?
https://gigazine.net/news/20181116-top-programming-languages-2018/

さあ何なのか!?日本の埃、Rubyかな?

994 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:23:45.80 ID:Ea7K77ki.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

995 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:24:59.24 ID:Ea7K77ki.net]
https://i.imgur.com/0YbMsqj.jpg

996 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:39:56.92 ID:vwxCn2J+.net]
この調子で1000まで埋めてくれwww

997 名前:956 mailto:sage [2019/03/18(月) 00:32:48.76 ID:QSJWNz5N.net]
なんとなくわかったわ
__new__でインスタンス生成して__init__で初期化されてるのはいいとして
それらの関数がどこから呼ばれるかが分からなかったけど
type.__call__(cls, *args, **kwarg)から呼ばれてるんだな

class MyClass:
  def __new__(cls, name):
    return object.__new__(cls)

  def __init__(self, name):
    self.name = name

  def getname(self):
    return self.name

a = MyClass("Mike") # これは
a = type.__call__(MyClass, "Mike") # これの糖衣構文と

type.__call__はざっくり以下のような実装らしい

class type:
def __call__(cls, *args, **kwarg):
obj = cls.__new__(cls, *args, **kwargs)
obj.__init__(*args, **kwargs)
return obj

一番元になるオブジェクトを生成するであろうobject.__new__()がどういう風に実装されてるのかは分からなかった
Cで実装されてるらしい

998 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 00:34:09.24 ID:GvvOJgHh.net]
破産者マップに出てるぞお前さん

999 名前:デフォルトの名無しさん [2019/03/18(月) 01:21:38.93 ID:HYm9qYKJ.net]
Rubyに興味も失ってたが、調べたらRuby3から頑張るっぽいね。
JITは今現在はオンにしてもRails遅くなるっぽい。
型検査はツールの提供と精度向上の方針。

“Rubyは死んだ”のか?
まつもとゆきひろ氏が語る「プログラミング言語サバイバル」とRubyの未来 - Part1
https://logmi.jp/tech/articles/320752

かと思えば、こんな深刻な記事も。

想定してなかったくらい大規模な開発に使われて、つぎはぎ継ぎ接ぎで開発して行ったら行き詰まったって話になるのかな?
Pythonも、同類になる可能性はあるが時期が早く来たのはRubyだったと。

Rubyは滅びゆく言語なのか?
https://qiita.com/baban/items/a5a9819a4020f92e27e2

1000 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 01:32:41.95 ID:TDQy6vox.net]
Redmonk言語ランキングがKotlinとSwiftの急上昇を明らかにした
https://www.infoq.com/jp/news/2018/05/RedmonkLanguageRankingsQ118

> Rubyは5位から8位に下がりはしたが、他のトップ10言語はほとんど同じ順位にとどまっている。

独り負けwwww



1001 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 01:33:16.80 ID:TDQy6vox.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

1002 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 01:56:22.04 ID:TDQy6vox.net]
Ruby is dead.
https://rubyisdead.science/

1003 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 02:01:08.34 ID:TDQy6vox.net]
Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察
https://postd.cc/sick-of-ruby-dynamic-typing-side-effects-object-oriented-programming/

1004 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 07:48:49.96 ID:C9BGuQ42.net]
self.name = name
みたいな変数は
self変数にnameプロパティを定義しているということなんですか?
init内に書かれる事が多いですが、プロパティはどのような使われ方をするのでしょうか

1005 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 11:21:28.47 ID:vyVf53oQ.net]
Pythonでアニメーションムビーって作れますか?
教えてエロい人

1006 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 11:42:29.94 ID:GvvOJgHh.net]
出来るよ
このポリゴンアニメもPython で組まれている

https://youtu.be/lU-stMiFESQ

1007 名前:デフォルトの名無しさん [2019/03/18(月) 13:43:14.45 ID:+MPRGO7m.net]
くだすれPython(超初心者用) その42【Ruby禁止】
mevius.5ch.net/test/read.cgi/tech/1552884175/

1008 名前:デフォルトの名無しさん [2019/03/18(月) 13:50:09.52 ID:HYm9qYKJ.net]


1009 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 14:39:32.03 ID:3zrU7iIi.net]
Pythonなら音声合成も機械学習でできるよ!

1010 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 14:59:40.24 ID:vyVf53oQ.net]
>>982
ありがとうエロい人
よろしければおすすめのライブラリ教えてください



1011 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 16:32:01.12 ID:8JXxWTh8.net]
Pythonなら毛糸洗いに自信が持てるよ!

1012 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 17:23:25.93 ID:LuaAQ2Ag.net]
>>987
それはボールドだろ

1013 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 17:23:44.99 ID:LuaAQ2Ag.net]
お、IDがlua永久にアゲだ

1014 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 17:33:08.14 ID:1Gq1ACAN.net]
Python(Jupyter)で、複数の行をループさせることって出来ますか?
やりたいことはIn[5]〜In[8]を10回繰り返す、みたいな感じです

1015 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 20:07:37.57 ID:C9BGuQ42.net]
selfわかんないよぉ(´;ω;`)

1016 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 20:25:52.07 ID:3zrU7iIi.net]
>>991

class className():
def methodName(self):
print("Hello World!")

instance = className()
instance.methodName()

1017 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 20:30:41.38 ID:jiPExRTx.net]
>>990
forループとかwhileループをさがしてるのか?

1018 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 20:34:08.67 ID:C9BGuQ42.net]
self.name=nameみたいなやつは、変数名はnameなのですが、selfなのですか?

1019 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 20:36:17.92 ID:C9BGuQ42.net]
>>992
ですからこれ、selfはなんの役割をしているのですか?

1020 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 20:41:13.50 ID:jiPExRTx.net]
>>994
そうだな

>>995
この()の中のselfについては深く考えたことないなー
クラス化した場合は 必ず1ツ目の引数self ってのは なんかもう
条件の後とかに「:」つけるのと一緒な感覚だなー



1021 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 21:09:20.45 ID:GvvOJgHh.net]
>>99

1022 名前:5


class className():
def methodName(zelf):
print("Hello World!")

instance = className()
instance.methodName()


でも動くぞ
[]
[ここ壊れてます]

1023 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 21:17:48.43 ID:GvvOJgHh.net]
よって、

self =zelf


(証明おわり)

1024 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 21:36:51.06 ID:C9BGuQ42.net]
↑ありがつ

1025 名前:デフォルトの名無しさん [2019/03/18(月) 23:31:38.66 ID:+MPRGO7m.net]
>>991
考えるな感じるんだ

1026 名前:847 mailto:sage [2019/03/18(月) 23:42:48.23 ID:e1XJ4IHa.net]
self, this は、そのインスタンスを指す。
オブジェクト指向の基本だろ

それもわからない人には、Python は無理!
勉強の順番を変えてください!

Ruby でみっちり、オブジェクト指向・関数型を学んでください!
その後に、Python, JavaScript, Kotlin に応用してください!

1027 名前:デフォルトの名無しさん [2019/03/18(月) 23:44:39.51 ID:+omKGkAV.net]
これ、スコープとかnamespaceをわかっとらん

1028 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 42日 2時間 22分 29秒

1029 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<298KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef