そろそろ機能の話をしましょうか｡
ここが面白いところで､ 今までは地金を印刷するような関数を書いていましたが､ これからは地金をリストアップするような関数を書くことができます｡
ユーザーが入力したものを取得する入力関数も見ましたし､ それらによってデータ型に対するアクションを実行することができました｡
しかし､ 本当の力は､ 自分たちで機能を作り出せるようになったときに発揮されるのです｡
そうなんです｡
Pythonが与えてくれるものに限定されるわけではありません｡
自分たちで関数を作って､ プログラムの中で使うことができるようになったんです｡
では､ その方法を学びましょう｡
Pythonでの関数の作り方､ ちなみに関数はすべてのプログラミング言語に存在します｡
とても大切なものなんです｡
de f とすると､ python インタープリタに関数を定義しようとしていることが伝わります｡
Defはdefineの略です｡
だから､ インタプリタが､ よし､ これから関数を定義するんだ､ と言うことになる｡
機能はどうするんだ？
まあ､ 好きなように作ればいいんですけどね｡
関数の定義には､ 変数と同じ命名法を使用します｡
では､ もう一度関数を作ってみましょう｡
Say Helloと呼ぶことにします｡
ただ､ 私が作った変数です｡
しかし､ 今回はここでdefキーワードを今使っているので関数であり､ こんにちはと言うことです｡
さらに､ これはアクションを起こすものであること､ あるいはデータ型に対してアクションを実行するものであることをインタプリタに知らせるために､
ブラケットを追加しています｡
コロンを使って､ このコードのブロックの中で､ printと言うことができるのです｡
こんにちは｡
そして､ それが機能である｡
実行」をクリックすると
ふむ｡
何も起きなかった｡
それはなぜでしょうか？
さて､ say hello関数を作り､ 定義し､ そして今､ 私たちのマシンのメモリのどこかに生きています｡
しかし､ 関数を使うには､ print関数を使うのと同じように､ ブラケットで呼び出すことを忘れてはならない｡
だから､ 関数を定義した後に､ Say helloと言うのです｡
そして､ 私の波紋にお気づきでしょうか｡
と言うや否や｡
実際に､ 私が作成したため､ say hello コマンドが表示されます｡
そして､ この紫色のボックスは､ それが関数であることを示していますね？
まあ､ プリント機能を使えるようにしたのと同じように､ 使えるようにしたわけです｡
だから､ もし私がhelloと言って､ 括弧を付けて実行し､ 実行をクリックしたら｡
得ることができます｡
もしもし？
なんてかっこいいんでしょう｡
ところで､ 括弧を付けずに実行すると､ 実行をクリックした場合はどうなるのでしょうか？
なぜなら､ 私たちがアクションを起こすためには､ 通訳に知らせなければならないからです｡
ねえ､ 走りたいんだ｡
挨拶してください｡
さて､ 関数がこれほど強力なのは､ これまでお話ししてきたような原理があるからです｡
そうですね｡
DRIという考え方は､ Do not repeat yourselfの略で､ 「繰り返さない」という意味です｡
関数は､ 何度もやり直したいことがあるときに､ とても便利です｡
例えば､ プリント機能ですが､ これはよく使っています｡
それをいちいち自分でコーディングして､ print関数が何をするのかを言わなければならないとしたら､ どうでしょう｡
幸いなことに､ Pythonは便利なツールなので､ プリントを与えてくれます｡
しかし､ このプログラムで複数回挨拶する場合､ 実際にはもっと複雑で､ おそらく10行程度のコードになることは想像できますね｡
その10行のコードを何度も書く代わりに､ 関数として定義すれば､ プログラムの好きなところで使うことができるのです｡
例えば､ 写真があって､ クリスマスツリーを印刷したところ､ これを思い出してください｡
これを複数回実行したい場合を想像してください｡
さて､ そのためには､ このコードをコピー＆ペーストします｡
そして､ 再び追加する｡
そして､ 「実行」をクリックすると｡
今はクリスマスツリーが2本ありますが､ その26行のコードを見てください｡
同じものを何度もコピーして関数で貼り付けただけです｡
こんなことができるんです｡
と言えるのです｡
ショーの定義
木です｡
Colin そして､ 私たちは今､ ある機能を手に入れたのです｡
でも､ Pythonのインデントって覚えてますよね？
インデントが重要です｡
セミコロンを使って､ 関数を定義しています｡
だから､ ここにインデントされているものはすべてこの関数の一部である､ というコードブロックを内部に作成しなければなりません｡
では､ ショーツリーを手に入れたところで､ こちらをご覧ください｡
ショーツリーと言って､ もう一度走らせることができます｡
3回くらい走らせようかな｡
実行」をクリックすると
なんてかっこいいんでしょう｡
この関数を呼び出すだけで､ 何度も同じことができるようになったんです｡
そして､ それが関数の力です｡
関数によって､ 私たちのコードをドライに保つことができます｡
私たちは､ 機械ができることを繰り返し､ 再利用するようなことはしません｡
そして､ それが私たちの思い出として残るというのが､ 素晴らしいところです｡
つまり､ Treeは今､ 私たちが作ったからこそ､ このプログラムにとって意味があるのです｡
そこで､ 私たちは独自のカスタムアクションを用意しています｡
さて､ 引っ越したらどうなるのでしょうか？
ショーツリーはここから上へ
まあ､ これを実行すれば｡
エアーネームにする
彼女の名前です｡
ショーツリーは未定義です｡
それはなぜでしょうか？
まあ､ インタープリタが一行一行に対応しているからね｡
最初に､ よし､ 絵はこの値に等しいと言う｡
そして､ 11行目に「Run, show tree」と表示されます｡
しかし､ まだshow treeを定義していないので､ Pythonインタプリタはエラーになり､ 「おい､ show treeが何なのかさっぱりわからない」と言うでしょう｡
何を言ってるんだ？
その代わり､ 関数の場合は､ 最初にしっかりと関数を定義しておく必要があります｡
Pythonのインタプリタが､ 「わかったよ」と言うわけです｡
ショーツリーは今､ こんな意味を持っています｡
実行するつもりはない｡
まだ使うつもりはない｡
記憶の中にとどめておきたい｡
そして､ ついにShow Treeに出会えたとき､ その意味を知ることができるのです｡
show treeを使ってメモリから取得し､ ブラケットを使って実行するんだ｡
例えば､ show treeを何も付けずに､ 括弧も付けずに､ 実行をクリックすると､ 印刷されます｡
この場所にショーツリーの機能があるんですよ｡
これは､ あくまでメモリ上の位置です｡
こちらはそのショーツリーの機能を収納する本棚です｡
とても､ かっこいいです｡
そして､ 関数はプログラミングにおいて重要かつ強力な概念です｡
そして､ 次のビデオでは､ これを拡張して､ もう少し掘り下げていきます｡
次回作でお会いしましょう｡