Python日記7 昨日の続き

こんばんは。Python日記7日目です。

 

<今日やったこと>

Lesson35 ファイルのエンコーディング

Lesson36 コマンドと数字の組み合わせ

Lesson37 関数の作成(あまり理解できなかった。明日もう一度。)

 

<昨日の続き>

bot_dict = {
    'こんにちは': 'コンニチハ',
    'ありがとう': 'ドウイタシマシテ',
    'さようなら': 'サヨウナラ',
    }

while True:
    command = input('pybot> ')
    response = '' 
    for message in bot_dict:
        if message in command:
            response = bot_dict[message] 
            break
    if not response: 
        response = '何ヲ言ッテルカ、ワカリマセン' 
    print(response) 

    if 'さようなら' in command:
        break 

このコードの理屈がやっと分かりました。
if message in command:
この文が①Trueの時、②Falseの時でまず場合が分かれる。

①の時、すなわち辞書のkey部分の文字列が入力されたとき、
辞書のkeyに対するvalueの文字列がprintされる。
入力される文字列が「こんにちは」「ありがとう」の場合は、
print実行後、ループで最初に戻る。
入力される文字列が「さようなら」の場合は、
print実行後、breakでプログラム終了。

②の時、if not response:がTrueとなり、
「何を言ってるか分かりません」がprintされ、ループで最初に戻る。


Chapter6に入ってから難しいことが多いです。
分からないことにぶつかることもあれば、急に分かることもある。
なんかおもろい。