- 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
- 620 名前:デフォルトの名無しさん [2019/03/08(金) 01:56:52.91 ID:FktPmjXq.net]
- i = 10
def num(arg=i): print(arg) i = 7 num() iはどちらもグローバル変数ですよね? 関数の中身変えて7の方を出力させることってできますか?
- 621 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 02:04:22.64 ID:Nky3or7z.net]
- def num(arg=None):
arg == i print(arg)
- 622 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 02:05:04.82 ID:Nky3or7z.net]
- def num(arg=None):
_arg = i _print(arg) の誤り
- 623 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 02:15:56.15 ID:5FsfaYFV.net]
- >>601
https://i.imgur.com/2LoxSbi.jpg
- 624 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 02:20:26.52 ID:5FsfaYFV.net]
- >>603
https://i.imgur.com/FNgAPWr.jpg
- 625 名前:デフォルトの名無しさん [2019/03/08(金) 02:47:32.14 ID:FktPmjXq.net]
- >>604
ありがとうございます でも7になる理由がわかりません。 どういった処理になるのか教えて欲しいです、
- 626 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 06:55:10.03 ID:49yeJutG.net]
- >>600
ありがとー
- 627 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 11:24:52.69 ID:enrIbZX0.net]
- >>606
i = 10 def num(arg=i): print(arg) i = 7 num() この場合は、def を定義するときにarg= でarg のデフォルト値をセットする。 この時の i は 10だろ。 まだ下の行は実行されていないんだから。 i = 10 def num(arg=None): arg == i print(arg) i = 7 num() この時のnum内の実行文は実行されたときに動くんだから、i=7 がセットされた値を参照する事になる。 関数のデフォルト値は関数を定義したときに決定される。 関数内の実行文は実行時に決定される。
- 628 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 11:33:20.13 ID:5FsfaYFV.net]
- >>608
>この時の i は 10だろ。 まだ下の行は実行されていないんだから。 実行されるときの i は7だろ。
- 629 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 12:03:17.67 ID:JVGfVyzo.net]
- 問題はprint(arg)が実行される時のargの値でしょ?
def num(arg=i): の時に、argにはiへの参照が渡されるんじゃ無くて、iの値が渡されるってだけ。
- 630 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 13:20:03.26 ID:enrIbZX0.net]
- >>609 def と言うのが何かを考えよう。 def で関数を定義する。その時点でパラメータのデフォルト値も確定する。
つまりパラメータのデフォルト値は関数の定義時点で確定する。 実行時ではない。 デフォルト値がころころ変わったりするものか。
- 631 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 13:35:58.82 ID:5FsfaYFV.net]
- それこの実行結果の前でも同じこと言えんの?
https://i.imgur.com/LmkiE6A.jpg
- 632 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 13:36:28.88 ID:0Uig+6Kq.net]
- 仕様ですな
デフォルト引数の式は関数が定義されるときにただ一度だけ評価され、同じ "計算済みの" 値が呼び出しのたびに使用されることを意味します。 https://docs.python.org/ja/3.6/reference/compound_stmts.html#function-definitions
- 633 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 13:39:30.34 ID:0Uig+6Kq.net]
- >>612
デフォルト引数じゃないしw 引数渡しちゃってるしw
- 634 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 13:57:33.85 ID:JVGfVyzo.net]
- >>612
真面目にやってんならこれは恥ずかしい。
- 635 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 14:02:30.13 ID:j3nR25S+.net]
- ガイガイ音頭踊っとれや…(嘆息)
- 636 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 14:12:04.85 ID:1m9JjIZU.net]
- おもしろかったぞw
- 637 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 14:51:41.35 ID:enrIbZX0.net]
- >>612 デフォルトが解っていないみたいだな。 これとまったく同じことなんだぞ。
def num(arg=10) print(arg) print(num(7)) #> 7 print(num()) #> 10
- 638 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 14:53:37.
]
- [ここ壊れてます]
- 639 名前:91 ID:enrIbZX0.net mailto: >>618 printが2重になってたな。 []
- [ここ壊れてます]
- 640 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 15:17:08.58 ID:E9FXn3JR.net]
- 勉強になったな!
- 641 名前:デフォルトの名無しさん [2019/03/08(金) 16:07:05.72 ID:eYLLL/Dr.net]
- よくはまるのは default=[] にしたとき
- 642 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 16:35:59.46 ID:DUow6Thg.net]
- 二次元配列からの取り出しで、
X = hoge[:, [2,3]] Y = hoge[:, 0] って書かれている時、具体的にどこからどこまで取り出しているのでしょうか?
- 643 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 17:17:55.67 ID:54yPjEY7.net]
- >>612
def と言うのが何かを考えよう。 def で関数を定義する。その時点でパラメータのデフォルト値も確定する。 つまりパラメータのデフォルト値は関数の定義時点で確定する。 実行時ではない。 デフォルト値がころころ変わったりするものか。 つまり、関数定義時点で、i=10 とデフォルト値が確定する。実行時ではない。デフォルト値が、10から7にころころ変わったりするものか。だから、結果は10なんだよ …ってあれ?
- 644 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 17:20:46.97 ID:54yPjEY7.net]
- 仕様ですな
デフォルト引数の式は関数が定義されるときにただ一度だけ評価され、(つまり10と評価)同じ "計算済みの" 値(つまり10)が呼び出しのたびに使用されることを意味します。 https://docs.python.org/ja/3.6/reference/compound_stmts.html#function-definitions 見事に結果が違うな 下手に言葉でルール説明しなくていいから、インタプリタに動作アルゴリズムをそのまま公開してほしいわ
- 645 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 17:41:30.86 ID:SfpbmzlL.net]
- ちょっと何言ってんだか分かんないw
- 646 名前:デフォルトの名無しさん [2019/03/08(金) 17:48:01.52 ID:+fF7voFW.net]
- >>622
Xは2列目と3列目 Yは0列目
- 647 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 18:34:43.25 ID:qP6cz7Aj.net]
- >>624 言語リファレンスは明確に仕様を定義するだけのものだから、理解させるためのものではない。 絶対に間違いがあってはならないから下手な説明はない方が良い。
- 648 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 19:17:40.56 ID:1m9JjIZU.net]
- >>624
>>下手に言葉でルール説明しなくていいから オイオイ、これ以上分かりやすい説明ないだろう。しかも公式リファレンスだよ >>インタプリタに動作アルゴリズムをそのまま公開してほしいわ 意味不明w
- 649 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 20:03:58.48 ID:IGhZvnlG.net]
- 公式の説明と実際の動作が一致しないんじゃなあ
- 650 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 20:34:26.69 ID:TVXnQmRl.net]
- さすがに釣りでしょう
- 651 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 21:33:30.47 ID:1m9JjIZU.net]
- >>629
その一致しないってコード貼ってみて
- 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]
- ガイガイ音頭踊っとれやとは言ったが
夜通し踊れとは言っとらん
|

|