挫折した Python 19「関数 2/3」

[音楽] 例えばNの面積と演習の長さを同時に計算 して返す関数を考えてみましょう。この時 リターンエリア サーカン面積と演習ですね。このように間 まで区切って複数の値を返すことで戻りは タップルとして扱われます。 これはかこ面積演習のように丸括で囲んだ 形を省略して記述しているのと同じになり ます。また戻ってきたタプルの値を アンパックすることでそれぞれの変数に 分解して受け取ることもできます 。それでは関数の応用テクニックとして 複数の値を返すみたいなところをちょっと 実装しながら見ていきます。 と半径受け取りつつ面積と編集の長さです かね。ビス の半径受け取り円の面積と演習の長さを 返し ますというプログラム作っていきます 。円の計算をしたいので遠習率ちょっと 定義しといきましょうか。で、 え 、半径 ×3.14×半径×半径半径×半径× 3.14ですかね 。で、直径×3.14ですかね。 なことをしてあげて 、この結果を返しますね。そしたら、え、 観幕切りで返したい変数をつねてあげれば 良いので、こうすることで 、これで、えっと、エリアと サーカムフェレンスをリザルトで受け取っ て、これがタプルになるようなところの 出力が確認できるかと思います 。ですね 。あとはこちらタプルで帰ってくるので、 えっと、ここタプル の宣言のところでちょっと見たかと もタプルの宣言のところで少し説明しまし たが、ここのカマ をつねて変数をつねてここの丸かこ省略し てるパターンなんですかこれが暗黙的に タプルに変換されてるということでそれを あえて明治的にかこつけあげてもこれ同じ 結果になるはずですね 。一体にはタプルの扱いがあります 。他は関数の呼び出し側の、ま、 アンパックと言われる展開するタプルを 受け取って展開するっていうところ をこちらもタプルの使い方 で、 えっとなのでこれは関数内の、え、変数と 違うものなんですけど関数呼び出してあげ て、え、タプレで変帰ってくるものを こう2つの呼び出し側の2つの変数で展開 してあげるというようなことを書く とそれぞれの変数に展開する行動を作る ことができるようになっています。で、で 、今2つ出しました がこうですね。で、これでそれぞれの変数 に展開することができました。 で、で、タプルのまた宣言と同じ話なん ですけど、これが確保しなくてもタプルの 宣言としてあの暗黙的に変換できていると いうことで、あ、それをかこつけて宣言し てもこれも同じ結果になるかと思ってい ます 。関数を呼び出す時、引数を省略しても あらかじめ設定したデフォルトの値が使わ れるようにすることができます。これを デフォルト引数と言います 。デフォルト引数を使うことで関数を柔軟 に使えるようになり、行動の性も向上し ます。デフォルト引数は関数定義時に イコールを使って指定します 。複数のデフォルト引数を設定することも できますが、デフォルト引数がある場合は 必ずそれより後ろに通常の引数を配置する 必要があります 。ただしデフォルト引数としてリスト事象 などを使う場合は慎重に扱う必要があり ます。デフォルト引数として設定した オブジェクトは関数が呼ばれるたびに 新しく評価されるわけではなく、同じ オブジェクトが使い回されることがある ため良くしない動作を引き起こすことが あります 。それではデフォルト引数についてコード で説明していきます 。また同じですけど、え、挨拶するような メソ作ってあげて、で、ここですね、あの 引き数のところこれまで実装しましたが、 イコールして、えっと、値を入れてあげる と、それがあ、デフォルトの引数として 使われるような動きとなります。 エクスクラメーション エクスフラメーションこれ で何かおかしいですかね ?ここに何も書いてない とこちらで引数を入れてあげる場合 はそれを使ってネームという値を作って こんにちは。ネイムさんという動きになる のですが、これが引数なしだった場合、え 、どうなるかと言いますと、ネーム イコールの方に入れてあげた値を採用する ことになりますので、これで、え、7しの 方は、え、デフォルト引数が使われて メッセージが出力されるといった動きに なります。それでは複数のデフォルト引数 を使う場合の注意についてちょっとコード 見ながら説明していきます。 みたいな注文を、え、処理する関数作って おいて、ここ に数量みたいなものと、え、単価ですか ねを作ってあげて、え、証計として はクンティと単価×、え、数量ということ で、 えっと 、プロダクト がいく つ、え、注文受けたまりましたみたいな 感じと、 そのいくらですよみたい計算してあげて 返すみたいな関数作ってあげ てオーダー出します とリンゴ は、え、鉄板の商品なのでリンゴだけで いつものみたいな頼み方をすると数量1個 で、え、リンゴの値段100000円で 計算された注文書が出てくるみたいな流れ になります。入れ てみか入れてあげる場合 はオレンジが3つくださいみたいなの とバナナ は500円だと思うのでバナナ2つ くださいみたいなのでデフォルト引数利用 する場合やね、呼び出し元から指定する 場合の違いがこのように、え、出てくると 思います 。で、こちら注意点なのですが、えっと、 今関数の引数でデフォルト引数がない、 デフォルトの値がない引数と、え、 デフォルトの値がある引数がミックスされ た状態で、え、定義しましたが、これを こういった実装する場合 はデフォルト引数がデフォルトの指定が ない引数よりも後に書かなきゃいけないと いうルールがあります。これでなので最初 に定義した引数はデフォルト引き数 デフォルト値持ってるんですが、え、後ろ のやつは ないみたいな作り方をしてしまうとすでに ちょっとあのエラーが出てくるんです けれどもこれ がデフォルトアーギメントがないよという 風なエラーになるって言ったようなものが PYONの動きになります 。またデフォルト引数を使う場合でリスト や辞書について、えー、 ちょっと注意すべき動作があるので紹介し ていきます。ちょっと関数を先に作ろうと 思うので 今ADアイテムという関数作ってそちらの 方でえっとアイテムを受け取るのと アイテムリ が、え、指定がなかった場合はのリスト 作ってそこに、え、リストの中にアイテム 追加するみたいなことをやった結果を返し てくれるみたいな行動を書くと、えっと、 考え方として は呼び出したタイミングでからのリストが できるみたいな風に考えると、え、1回目 の呼び出しでりゴが入った配列と2回目の 呼び出しでバナナだけが入った配列って いうの を表示できるみたいな感じにちょっと思え てもしまうんですが、 このデフォルト引数っていうものが関数が 定義された時に1回だけ初期化される みたいな動きになりますの で2回目のアドアイテム呼び出した時に、 えっと、1回目で呼び出された時の アイテムリストにそのまま追加するみたい な動作になってしまう場合があります。 ちょっと確認していきますね。だめか。 よいしょ 。ここですね。回呼び出した時に初期化さ れてそのリスアイテムリストっていうもの を、え、使い回しでリンゴに入ってる リストにアペンドしてバナナを入れる みたいな動作になりますので、関数の中で 配列を使う場合はちょっとここの動作を 意識して、え、実装する必要があります 。もし実装したい完成の動作が呼び出し元 で配列を与えた場合はその配列に、え、 アイテムを追加して欲しい。で、 呼び出し元が配列を定義しない場合は 新しく配列を作ってあげてそれを返して 欲しいみたいな動作にする場合は 呼び出し元が引きのしてないっていう実装 に対してもしなかったら えっとアイテムリストはリストを新しく 作ってあげ ますみたいなの1を入れてあげて、えっと 、それにアペンドするっていうことで、 呼び出し元はどちらも配列の指定がないの で、えっと、2回目バナナ追加したやつも バナナだけ入ったリストを返してくれると いった動作になるかと思います。僕は ちょっとどういう実装したいかっていうの を注意深く考えて、え、実装していく必要 [音楽] はい。

こんにちは!パッケージ次郎です。

Python を使ったプログラミングで、関数の実装について、実際にコードを開発しながら説明していきます。

X(旧:Twitter) https://x.com/locode166941
プログラミング学習サイト:https://pylocode.jp/

挫折経験者・初学者歓迎|Pythonを中心に、ITリテラシーやキャリア情報を発信中|「わからない」が「できた」に変わる場所へ

#プログラミング #IT #Python #AI

Leave A Reply