見出し画像

霧が晴れてdefとちょっと仲良くなりましたPython

ちゃんと訳があるのです。

こんにちは。サキナオコです。
雨がもうすぐ上がりそうな気配です。

いつもご覧いただき、スキ、フォロー、コメントまでいただき、
ほんとうにほんとうに、どうもありがとうございます!*^o^*

さて霧深く、defの森で行き倒れそうになっていたところ、
大変親切なお方が霧を吹き飛ばしてくださいました。
(詳細はコメント欄で)

どうもありがとうございます!*^o^*

あまりの勘違いさ加減に「あーこの人なんにもわかってない!」と歯がゆい思いでお読みになっていた方もいらしたかもしれませんね^^;

ということで、defの森がかなりはっきり見えてきましたので、
前回の円の面積のコードを書き直してみました。

スクリーンショット 2021-06-06 14.20.27

スクリーンショット 2021-06-06 14.20.53

勘違いの大きな原因はreturn の横の変数を呼び出し先でも使わなければと思っていたところ、そして

defそれぞれの世界を呼び出してあげて、ちゃんとつないであげないと結果が出ないというのをわかっていないところでした。

それぞれのdefと呼び出し元では違う世界なんだというのもあやふやでしたね。

**理解したかどうか円の面積コードを訳してみます**

数字の入力、計算、出力、それぞれのdef世界を作ったら、呼び出し元を作る。

まず、input_num世界の仮引数aに呼び出し元の実引数 '数字'  を入れて処理するのを変数nとする、

次に、keisans世界の仮引数kazuに次の呼び出し元の実引数 n(入力した数)を入れて面積を計算、その結果を変数mensekiとする。

最後にhyouji世界の仮引数areaに呼び出し元の実引数 menseki(計算した面積)を入れて出力する!

************

ほおおー、そうですね。
ちゃんと実引数と共に呼び出してあげないと処理できませんね。
menseki = hyouji()などとしたらPythonも、「ハア?!…」となりますね。

前回のコードでhyoji()関数がグローバル関数のmensekiを使用していたとは…
そして、keisan関数でもmensekiという(ローカル)変数を使用していたために頭がぐるぐるにこんがらがってしまいました。違う名前にしないと、ですね。理解しようとして脳がズキズキフル回転でした。

おかげさまで、defの森を先へ進めます。
大きな感謝と共に。









この記事が気に入ったらサポートをしてみませんか?