【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOTでプログラミング(前編)

2018年12月4日

そろそろ本格的にプログラミングをはじめてみたいです。
なかでも、機械学習やAIで話題のpythonに触れてみたいです。
この記事は、そんな方へ向けて書いています。
大好きなCodeMonkey(コードモンキー)の、「コードの時間PYTHON CHATBOT」を紹介します。

【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOTでプログラミング

【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOT

CodeMonkey(コードモンキー)の特徴

CodeMonkey(コードモンキー)はイスラエルで開発された、おさるのモンタがバナナを取っていくというゲームを通してプログラミングを学習するサイトです。
STEM教育先進国のイスラエルの1700校が導入。
今では、世界中で600万人のユーザーが CodeMonkey でプログラミングを学んでいるそう。
年齢層は小学生から70歳まで実に様々。
その功績からアメリカのプログラミング教育推進団体であるCode.orgのイベントにも毎年参画しています。
CodeMonkeyはブラウザ上で動作するので、PCやタブレットにソフトウェアなどをインストール不要。
CodeMonkeyのチャレンジはそれぞれ3〜5分程度に設計されているので、空いた時間にでもプログラミングが学べます。

【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOTで学べる知識

  • 関数
  • 引数のない関数
  • 辞書
  • 演算子
  • 条件文(もし〇〇なら)
  • 繰り返し(ループ)

Hour of Codeの公式サイト

さぁ、【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOTでプログラミングをはじめよう。

PYTHON CHATBOT 1/16

まずは、Hour of CodeのPYTHON CHATBOTのサイトの「START PLAYING(訳:演奏を始める)」(青色のボタン)をクリックし、スタートします。
左側に説明や問題が示されています。
指示に従って、中央のコードを直していきます。
手順は、①コードを修正し、②左下の緑色のチェックをクリックし、OKが出ると、③右のTESTボタンが押せるようになりますので、クリックし出来たか確認します。

英語の勉強も必要です。
分からないところは、その都度、右クリックしページ全体を翻訳することで足りると思います。

【コードモンキー】PYTHON CHATBOT1/16

1問目は、黄色の星印を見ますと、chatbot.pyの”Hello friends”を、”What’s your favorite trivia topic?”に変えれば良いようです。
変え終わったら、チェックをクリックし、チェックマークが変わり、その下の「TESTしてね」に星印が移ったことを確認します。
では、TESTしてみましょう。
自分が入力したメッセージをCHATBOTが言っています。

【コードモンキー】PYTHON CHATBOT1/16

どうしてもわからないときは、この動画が教えてくれます。

CodeMonkeyのヘルプ(解説)

PYTHON CHATBOT 2/16

関数read_messageはユーザーの答えを返します。この関数には引数はありません。
後でコード内で使用するには、戻り値を変数に格納する必要があります。

今度は、foodに代わりに(instead of “food”)read_message()を入力します。

【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOT2/16

【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOT2/16

日本語に訳すと、CHATBOTは現在、こんな感じで動きます。

PYTHON CHATBOT 3/16

まずは、「間違った状態のまま、TESTして!」といっています。
間違ったままなので、予想どおり失敗してしまいました。

【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOT3/16

では、どこが間違っていたのでしょうか?
「Expected:」を見ますと、loveとすべきところが、dislikeと全く逆の返答をしてしまっています。
loveに変えることで、会話が上手く進んでいます。

PYTHON CHATBOT 4/16

Pythonでは、各ステートメントは1行に記述する必要があります。しかし、長いコード行を書くときは、必ずしもこのことが可能ではありません。\文字を使用すると、行が途切れることがあります。これは、この文字が前の行が以前の行の続きであることを示すためです。コードを複数の行に記述していますが、Pythonはそれを1行として解釈します。文字列を分割するときは、引用符を使用して各行を開始および終了する必要があります。

ですので、バックスラッシュを上手く使って、うまく一文になるように見せましょう。
間に空白セルがあると、上手くいきません。
何度も試行錯誤しながら、やってみることも大切です。

次に、send_message引数welcomeを指定して関数を呼び出します。

【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOT4/16

【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOT4/16

PYTHON CHATBOT 5/16

ここでは、辞書を習います。
キーがanswer(答え)のところが間違っているようです。
バスケットボールの代わりに(instead of “basketball”)、footballを入力します。

そして、send_messageトリビアの質問を送信した後、トリビアの回答を送信する関数を呼び出します。
やり方は、質問のところと同じです。

【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOT5/16

【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOT5/16

PYTHON CHATBOT 6/16

条件式if文を勉強します。
レスポンスが答えと等しいかどうか、==演算子を使います。

【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOT6/16

【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOT6/16

PYTHON CHATBOT 7/16

条件文elseを勉強します。
ここは、if文の復習のような感じなので、カンタンですね。

【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOT7/16

PYTHON CHATBOT 8/16

テキストを書式設定する別の方法は、文字列内の変数にプレースホルダを使用することです。%s は、テキスト内で文字列のプレースホルダとして使用されます。例のように、文字列の最後に%が追加され、その後に変数がリストされます。

例のように、elseのところを、正しい答えを持つ変数を加えます。
is %s” % trivia[“answer”]) としました。

%s 文字列 (Python オブジェクトを str() で変換します)。
文字列内で %s とし、% に続いて変換したい値を後ろに記述します。
例:print(‘Hello, %s’ % ‘world!’) >>>Hello, world!

4.組み込み型 pythonドキュメンテーション

【CodeMonkey(コードモンキー)】コードの時間PYTHON CHATBOT8/16

最初は誰だって初心者です。
やりながら順番に覚えていきましょう。
さぁ、プログラミングをはじめましょう。