Форум сайта python.su
0
Ребят, помогите новичку, пишу наподобие помощника бота для универа.
Проблема вот в чем, есть база определенных слов к примеру
keys = { 0: {'name': 'keys_hello', 'keys': { u'привет', u'здравствуйте', u'ку', u'здрасте', u'куку', }, 'answers': { u'Приветствую вас' }, 'type': { u'0', }, }, 1: {'name': 'keys_zachety', 'keys': { u'зачеты', u'когда зачет', u'когда зачеты', u'какие зачеты', u'список зачетов 1 курс', u'список зачетов', }, 'answers': { u"Зачеты 1 курс, 2 курс, 3 курс, 4 курс", }, }, 1: {'name': 'keys_nomer', 'keys': { u'1', u'2', u'3', u'4', u'5', }, 'answers': { u"выбрали номер", }, }, }
text= 'список зачетов 1 курс' words = text.split() unknow = 1 for word in range(len(words)): for i in range(len(keys)): if words[word].lower() in keys[i]['keys']: print = random.sample(keys[i]['answers'], 1)
Офлайн
857
У тебя в словаре два одинаковы ключа 1. Словарь может только разные ключи содержать, потому что устроен, как обычное множество, где к каждому элементу привязано значение. Словарь - это нагруженное множество (есть такая динамическая структура в программировании). А множество (математическое) содержит разные элементы.
Отредактировано py.user.next (Март 31, 2017 01:58:45)
Офлайн
0
Подскажите, а как можно сделать чтобы выполнял конкретную команду к примеру
список зачетов 1 курс - ответ 1
список зачетов 2 курс - ответ 2
Офлайн
857
Опиши словами работу этой программы, которая должна получиться в итоге. Только когда у тебя будет словесное описание всей программы, тогда и можно начинать писать код. А наборот нельзя делать, если ты не программист, у которого программа в голове пишется в виде словесного описания, а потом блок-схемы, а потом псевдокода. Иначе вот такая мешанина получается, как у тебя, в котороый ты потом сам не можешь разобраться. Это ошибка новичков, которые думают, что если программу быстрее писать начать, то она сама же и напишется “как-нибудь типа получится сама собой”.
Поэтому совершенно не ясно, с чего ты взял, что структура для хранения данных должна быть именно такой. Чем ты её обосновал? Ничем, просто на ходу придумал, а теперь ловишь глюки.
Офлайн
0
Смысл программы такой работает с ВК api берет сообщение и отправляет ответ. Необходимо что бы в зависимости от заложенных фраз отправлялся один определенный ответ. К примеру к сообщениям:
'зачеты', ‘когда зачет’,'когда зачеты','какие зачеты','список зачетов'
Отправлялся ответ “в январе"
Офлайн
0
решил свою проблему изменив как и думал split() на splitlines()
Офлайн
857
moorisА где тут курс?
Смысл программы такой работает с ВК api берет сообщение и отправляет ответ. Необходимо что бы в зависимости от заложенных фраз отправлялся один определенный ответ. К примеру к сообщениям:
'зачеты', ‘когда зачет’,'когда зачеты','какие зачеты','список зачетов'
Отправлялся ответ “в январе"
mooris
Подскажите, а как можно сделать чтобы выполнял конкретную команду к примеру
список зачетов 1 курс - ответ 1
список зачетов 2 курс - ответ 2
moorisВыигранное сражение - ещё не выигранная война. :)
решил свою проблему изменив как и думал split() на splitlines()
Отредактировано py.user.next (Апрель 1, 2017 03:15:11)
Офлайн