[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:04.00,Default,,0000,0000,0000,,残念ながらまだ完全なスマイルマークではありません Dialogue: 0,0:00:04.00,0:00:08.00,Default,,0000,0000,0000,,数年も経てば私も自動走行車に\N乗れるようになるらしいです Dialogue: 0,0:00:08.00,0:00:13.00,Default,,0000,0000,0000,,それより関数の実際の使い方について\Nまだお話ししていないことが大きな問題です Dialogue: 0,0:00:13.00,0:00:17.00,Default,,0000,0000,0000,,関数を実際に使用する前の\N関数の作成について学びました Dialogue: 0,0:00:17.00,0:00:19.00,Default,,0000,0000,0000,,まだ喜べる状態ではありません Dialogue: 0,0:00:19.00,0:00:22.00,Default,,0000,0000,0000,,関数の使い方を学んで笑顔になりましょう Dialogue: 0,0:00:22.00,0:00:25.00,Default,,0000,0000,0000,,それでは関数の使い方についてです Dialogue: 0,0:00:25.00,0:00:32.00,Default,,0000,0000,0000,,関数を使うには関数の名前 それに続く左の括弧 Dialogue: 0,0:00:32.00,0:00:36.00,Default,,0000,0000,0000,,それに続く入力リストが必要となります Dialogue: 0,0:00:36.00,0:00:38.00,Default,,0000,0000,0000,,入力の数はいくつでも可能ですが Dialogue: 0,0:00:38.00,0:00:42.00,Default,,0000,0000,0000,,関数が要求する入力数と一致しなければなりません Dialogue: 0,0:00:42.00,0:00:46.00,Default,,0000,0000,0000,,これらの入力はオペランドや引数と呼ばれます Dialogue: 0,0:00:46.00,0:00:49.00,Default,,0000,0000,0000,,これについては論議せず入力と呼びましょう Dialogue: 0,0:00:49.00,0:00:52.00,Default,,0000,0000,0000,,これとよく似たことをすでに行っています Dialogue: 0,0:00:52.00,0:00:57.00,Default,,0000,0000,0000,,レッスン1で文字列にfindを使用することを学びました Dialogue: 0,0:00:57.00,0:00:59.00,Default,,0000,0000,0000,,findで1つか2つの入力を渡します Dialogue: 0,0:00:59.00,0:01:04.00,Default,,0000,0000,0000,,1つ目の入力は文字列つまりその文字列を探します Dialogue: 0,0:01:04.00,0:01:09.00,Default,,0000,0000,0000,,2つ目の入力は数値\Nつまりその文字列を探し始める位置です Dialogue: 0,0:01:09.00,0:01:14.00,Default,,0000,0000,0000,,レッスン1では様々な方法でfindを使用しただけでなく\Nホームワークにも使用しました Dialogue: 0,0:01:14.00,0:01:17.00,Default,,0000,0000,0000,,findは皆さんが定義した関数とは少し異なります Dialogue: 0,0:01:17.00,0:01:19.00,Default,,0000,0000,0000,,まず初めにこれは組み込みです Dialogue: 0,0:01:19.00,0:01:25.00,Default,,0000,0000,0000,,その他に異なるのはfindをただ持つだけではなく\Nここに別の入力があることです Dialogue: 0,0:01:25.00,0:01:31.00,Default,,0000,0000,0000,,findを行う文字列です 変数をpageとします\Nこれがfindの別の入力です Dialogue: 0,0:01:31.00,0:01:37.00,Default,,0000,0000,0000,,なぜ別に行われるのかこのあとのレッスンで\Nお話ししたいと思いますが Dialogue: 0,0:01:37.00,0:01:41.00,Default,,0000,0000,0000,,ここにある入力が\N関数を呼び出すこととよく似ています Dialogue: 0,0:01:41.00,0:01:43.00,Default,,0000,0000,0000,,別の2つはここです Dialogue: 0,0:01:43.00,0:01:46.00,Default,,0000,0000,0000,,少し異なりますがこのコースでは扱いません Dialogue: 0,0:01:46.00,0:01:50.00,Default,,0000,0000,0000,,あとのコースでこの意味をより詳しく学びます Dialogue: 0,0:01:50.00,0:01:56.00,Default,,0000,0000,0000,,自身で定義した関数では\N関数を呼び出すオブジェクトはありません Dialogue: 0,0:01:56.00,0:01:57.50,Default,,0000,0000,0000,,呼ぶための関数と Dialogue: 0,0:01:57.50,0:02:03.00,Default,,0000,0000,0000,,呼び出して渡す入力があります\N引数またはオペランドと呼んでも構いません Dialogue: 0,0:02:03.00,0:02:07.00,Default,,0000,0000,0000,,シンプルな関数を使って\Nどのように機能するのか確認してみましょう Dialogue: 0,0:02:07.00,0:02:11.00,Default,,0000,0000,0000,,rest_of_string関数を定義し\Nそれにパラメータsを与えます Dialogue: 0,0:02:11.00,0:02:16.00,Default,,0000,0000,0000,,つまり1つの入力で\Nその入力の値を参照する名前sを使います Dialogue: 0,0:02:16.00,0:02:21.00,Default,,0000,0000,0000,,1つ目の文字から終わりまで返す文字列にします Dialogue: 0,0:02:21.00,0:02:25.00,Default,,0000,0000,0000,,s[1:]を返すインデックス演算子の文字列を\N使用します Dialogue: 0,0:02:25.00,0:02:29.00,Default,,0000,0000,0000,,これは削除された1つ目の文字で文字列を評価します Dialogue: 0,0:02:29.00,0:02:33.00,Default,,0000,0000,0000,,つまり位置1から最後までのすべての文字列です Dialogue: 0,0:02:33.00,0:02:35.00,Default,,0000,0000,0000,,これが返すものです Dialogue: 0,0:02:35.00,0:02:39.00,Default,,0000,0000,0000,,ですからrest_of_stringの出力は\N入力文字列の2つ目の文字から Dialogue: 0,0:02:39.00,0:02:42.00,Default,,0000,0000,0000,,開始する新たな文字列です Dialogue: 0,0:02:42.00,0:02:45.00,Default,,0000,0000,0000,,この関数の使い方の例を挙げましょう Dialogue: 0,0:02:45.00,0:02:47.00,Default,,0000,0000,0000,,直接関数を呼び出します Dialogue: 0,0:02:47.00,0:02:51.00,Default,,0000,0000,0000,,print rest_of_stringとします Dialogue: 0,0:02:51.00,0:02:56.00,Default,,0000,0000,0000,,これが関数です ここで括弧を使い入力を渡します Dialogue: 0,0:02:56.00,0:02:59.00,Default,,0000,0000,0000,,rest_of_stringの1つのパラメータがあります Dialogue: 0,0:02:59.00,0:03:05.00,Default,,0000,0000,0000,,渡すための入力が1つ必要です それは文字列です\N文字列audacityを渡します Dialogue: 0,0:03:05.00,0:03:10.00,Default,,0000,0000,0000,,このように関数を呼び出すと\N関数の主要部分を直接実行できます Dialogue: 0,0:03:10.00,0:03:17.00,Default,,0000,0000,0000,,インタプリタが何を行っているのか判断できます\Nコードを実行する代わりにインタプリタが作動します Dialogue: 0,0:03:17.00,0:03:21.00,Default,,0000,0000,0000,,関数を呼び出すと関数内でコードを直接実行します Dialogue: 0,0:03:21.00,0:03:26.00,Default,,0000,0000,0000,,パラメータに入力として渡した値を代入します Dialogue: 0,0:03:26.00,0:03:31.97,Default,,0000,0000,0000,,これをsの値が渡した入力の値になる代入だと考えます Dialogue: 0,0:03:31.97,0:03:36.00,Default,,0000,0000,0000,,関数の主要部分を評価します Dialogue: 0,0:03:36.00,0:03:38.50,Default,,0000,0000,0000,,唯一の文です Dialogue: 0,0:03:38.50,0:03:43.00,Default,,0000,0000,0000,,このreturn文の値s[1:]を探します Dialogue: 0,0:03:43.00,0:03:47.00,Default,,0000,0000,0000,,結果は文字列udaictyになります Dialogue: 0,0:03:47.00,0:03:49.00,Default,,0000,0000,0000,,ここでreturnしなければなりません Dialogue: 0,0:03:49.00,0:03:55.00,Default,,0000,0000,0000,,returnはジャンプするという意味で\N関数を呼び出した場所へ一気に戻ります Dialogue: 0,0:03:55.00,0:03:58.00,Default,,0000,0000,0000,,しかし実際には結果が分かっています Dialogue: 0,0:03:58.00,0:04:04.00,Default,,0000,0000,0000,,何であれジャンプした際評価する値が\N返した値になります Dialogue: 0,0:04:04.00,0:04:07.05,Default,,0000,0000,0000,,この場合は文字列udacityです Dialogue: 0,0:04:07.05,0:04:10.87,Default,,0000,0000,0000,,自動走行車は持っていませんが\N関数を定義し使うことができます Dialogue: 0,0:04:10.87,0:04:12.90,Default,,0000,0000,0000,,これは本当に強力な概念です Dialogue: 0,0:04:12.90,0:04:14.99,Default,,0000,0000,0000,,コースで今後行うこと Dialogue: 0,0:04:14.99,0:04:18.53,Default,,0000,0000,0000,,コンピュータプログラミングで行う中心となるのが Dialogue: 0,0:04:18.53,0:04:20.70,Default,,0000,0000,0000,,関数を定義して使用することです Dialogue: 0,0:04:20.70,0:04:22.78,Default,,0000,0000,0000,,大きなスマイルマークになりました Dialogue: 0,0:04:22.78,0:04:26.78,Default,,0000,0000,0000,,入力を出力に対応づけるという観点で\N関数を考えることができます Dialogue: 0,0:04:26.78,0:04:30.40,Default,,0000,0000,0000,,入力を出力に対応づけることは人間にも例えられます Dialogue: 0,0:04:30.40,0:04:35.69,Default,,0000,0000,0000,,目を通して入力されます\N口や鼻を通すこともあります Dialogue: 0,0:04:35.69,0:04:40.08,Default,,0000,0000,0000,,人間の出力については描きませんが\N関数はこのように重要な概念です Dialogue: 0,0:04:40.08,0:04:44.00,Default,,0000,0000,0000,,関数を理解できているか確認するために\N小テストを行います