シンプルなチャットプログラム


今日は私の9日目の午前9時のコードで、昨日は新年だったので休暇を取った.
今日はfreecodecampからCSSのより多くのプロパティについて学びました.また、Pythonプリミティブデータ構造を使用して簡単なチャットコードを書きました.

単純チャットプログラム
プログラムは、日付と時刻を得るために乱数とrandomを得るためにdatetimeのような依存関係をインポートすることによって起動します.その後、我々はチャットの知識の行を格納する空のリストを作成します.ファイルchatdata.txtは以下のようなものです.
# Query
## Greet
Hi
Hello
Greetings
Hola
Hey
## Bye
Bye
Good Bye
Talk to you later.
Take care.
See you.

# Reply
## Greet
Hey, whats up!
How are you?
Hello.
## Bye
Bye buddy.
Take care.
Farewell.
import random
import datetime
最初のプログラムでは、最初に行を読んでデータを格納するリストを作成します.
data = []

with open("chatdata.txt") as fp:
    data = [line.strip() for line in fp.readlines()]
ここで、私は2つの辞書カレンツェキーとCurrChoraキーを初期化します.値を格納するリストを作ります.ループを開始する
chat_data = {}
temp_dict = {}

curr_key = None
curr_sub_key = None
curr_value = []
for line in data:
    sdata = line.split(" ")
    #print(line)
    if line == "":
        temp_dict[curr_sub_key] = curr_value
        curr_value = []
        chat_data[curr_key] = temp_dict
        curr_key = None
        temp_dict = {}

    if sdata[0] == "#":
        curr_key = sdata[1]        
    elif sdata[0] == "##":
        if len(curr_value) > 0:
            temp_dict[curr_sub_key] = curr_value
            curr_value = []
        curr_sub_key = sdata[1]

    else:
        curr_value.append(line)

temp_dict[curr_sub_key] = curr_value
chat_data[curr_key] = temp_dict
chat_data
queries = [l for v in chat_data["Query"].values() for l in v]


chat = True
while chat:
    q = input("You: ").strip()
    reply = "I dont understand it. Please retype it clearly."
    if q in queries:
        for k, v in chat_data["Query"].items():
            if q in v or q.title() in v:
                reply_v = chat_data["Reply"][k]
                ind = random.randint(0, len(reply_v)-1)
                reply = reply_v[ind]

                if  q == "Bye":
                    chat = False


    print(f"Bot: {reply}")