Python学習【365日チャレンジ!】114日目のマスターU(@Udemy11)です。
クラフトビールのサンプルが当たったので、早速飲んでみました。
クラフトビールを缶ビールで飲んだことはありましたが、あんまり香りも良くなくて、いまいちだな〜と思っていたのですが、このクリスタルIPAは非常に香りが良くて、フルーティーな味わいなので、苦味が苦手な女性にピッタリなクラフトビールだと言えます。
ほんと、あんまり期待していなかったのですが、意外な味わいにびっくりしています。
ただ、他の缶ビールに比べると結構高いんですよね。
ま〜、ビール工場で味わうようなクラフトビールの味わいを楽しめるので、高いのは当たり前。
工場直送、定期購入で毎月の自分へのご褒美といういいわけで贅沢するのも一つの手です。
初回限定で50%で、いつでも解約可能なので、初回お試しで頼んでみるのもいいかもしれませんよ〜!
それは、今日も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
から取り出したスポーツの名前を代入することになります。
質問に対する回答がYes
かNo
かによってループを繰り返して、$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!