Бот не отвечает на команду

Что делать если бот не отвечает на команду? Делаю чат-бота с обучением. Типо если он не знает какой-то команды, то он спрашивает что ему отвечать, и если эту команду написать потом, то он ответит то, что я ему сказал.

cmds = []

ans = []

inp = input()

ln = len(cmds)

while inp == cmds:
  f = cmds.index(inp)
  print(f'{ans[f]}')
  inp = input()
else:
  print('Я не знаю этой команды. Что мне отвечать?')
  otv = input()
  cmds.insert(ln, inp)
  ans.insert(ln, otv)
  inp = input()

И если я ввожу что ему отвечать, и потом ввожу эту команду, то процесс программы просто заканчивается, и никаких ошибок даже не выводит. Что делать?


Ответы (1 шт):

Автор решения: Сергей Шашко

Проганите ваш код через по шаговый визуализатор кода Пайтон может поймете в чем вы ошиблись.

cmds = ['Спать']
ans = ['Приятных снов, хозяин.']

while True:
    inp = input('Чего изволите,хозяин?')
    if inp == '0':
        print(ans[0])
        break
    if inp in cmds:
        f = cmds.index(inp)
        print(ans[f])
        if f == 0:
            break

    else:
        otv = input('Я не знаю этой команды, хозяин. Что мне делать?')
        if inp == '0':
            print(ans[0])
            break
        cmds.append(inp)
        ans.append(otv)

→ Ссылка