Python Udemy講座 MCVモデル テンプレート

Python学習【365日チャレンジ!】114日目のマスターU(@Udemy11)です。

クラフトビールのサンプルが当たったので、早速飲んでみました。

Python Udemy クラフトビール

クラフトビールを缶ビールで飲んだことはありましたが、あんまり香りも良くなくて、いまいちだな〜と思っていたのですが、このクリスタルIPAは非常に香りが良くて、フルーティーな味わいなので、苦味が苦手な女性にピッタリなクラフトビールだと言えます。

ほんと、あんまり期待していなかったのですが、意外な味わいにびっくりしています。

ただ、他の缶ビールに比べると結構高いんですよね。

ま〜、ビール工場で味わうようなクラフトビールの味わいを楽しめるので、高いのは当たり前。

工場直送、定期購入で毎月の自分へのご褒美といういいわけで贅沢するのも一つの手です。

初回限定で50%で、いつでも解約可能なので、初回お試しで頼んでみるのもいいかもしれませんよ〜!

↓こちら↓
Python Udemy クラフトビールPython Udemy クラフトビール

それは、今日もPython学習をはじめましょう!

昨日の復習

昨日は、modelフォルダに格納する対話をコントロールするためのrobot.pyについて学習しました。

対話は、実際に目に見える部分になるので、robot.pyは、Jarvisのメインファイルといっても過言ではありませんし、取得するデータの内容によって、条件分岐を入れたり、デコレーターを使ったりして、これまで学習してきたスキルを存分に使うシーンがたくさんありました。

詳しいrobot.pyのコードは、昨日の記事で解説しているので、復習に活用してください。

それでは、Jarvisの内部基盤製作の最終パーツといえるテキストを格納したtemplatesのフォルダの中身を確認しましょう

hello.txt

hello.txtは、最初に挨拶をして、ユーザーの名前を取得するための会話になります。

ファイルの中身をみてみましょう。

こんにちは!私は$robot_nameです。あなたの名前を教えてください。

Jarvisが話す会話の中に、このテキストファイルhello.txtが読み込まれたモジュールで定義されているrobot_nameが代入されます。

このhello.txtは、対話アプリJarvisの対話処理を担当するrobot.pyに読み込まれるので、robot.py内で定義されている変数robot_nameが、文章内の$robot_nameに代入されています。

recommend.txt

次のファイルは、おすすめのスポーツが好きかどうかを聞く文章が保存されています。

私のおすすめのスポーツは、$sportです。
このスポーツは好きですか? [Yes/No]

$sportには、rankingモジュールのRankingModelオブジェクトで定義されているget_most_popular関数を使ってranking.csvから取り出したスポーツの名前を代入することになります。

質問に対する回答がYesNoかによってループを繰り返して、$sportの値を入れ替えながら表示することになります。

like.txt

like.txtでは、ユーザの好きなスポーツを尋ねる文章が保存されています。

$user_nameさん。あなたの好きなスポーツは何ですか?
英語で答えてください。

こちらの文章の$user_nameには、Jarvisが最初の挨拶の際に取得したユーザの名前が<代入されます。

英語で回答を求めているのは、日本語だとひらがな、カタカナ、漢字で同じスポーツでもパターンが複数あって、処理が難しくなるからです。

goodby.txt

goodby.txtは、最後のあいさつの文章です。

$robot_name: $user_nameさん。回答ありがとうございました。
良い1日をお過ごしください。

この文章には、ロボットの名前とユーザーの名前がそれぞれ$robot_name$user_nameに代入されます。

他の文章も追加可能

templatesフォルダに収められたファイルはすべてテキストファイルで、この中身を変更したり、追加でファイルを作成して他のモジュールに読み込んで活用することが可能です。

もしも、このtemplatesフォルダにテキストファイルを入れずにJarvisを作るとなると、文章を変更する場合にプログラムのコードを直接書き換える必要が出てくるので、間違ってコードをいじってしまう可能性が出てきます。

このようなリスクを避けるために、文章はテンプレートとして切り分けておいたほうが良いということですね。

今回のテンプレート作成で、対話ロボットJarvisはほぼ完成です。

あとは、どの動作をさせるか指定したあと、電池を入れてスイッチを押すだけ。

明日は、MVCモデル最終のコントローラーのパーツで、Jarvisにさせる動作を指定します。

それでは、明日もGood Python!