@megasaur

Ошибки нет но программа не работает, почему?

key_word = ''
add_word = ''
tbr = ['скажи','подскажи','напомни']
jobs = {
	'search':["найди","Что такое"],
	'no':["Все","Хватит","Ничего","Никак"],
	'calc':["посчитай","сосчитай"],
	'wether':["Погода","Какая погода","Какая температура","Как на улице","Как одется","Скажи погоду","Подскажи погоду","погода","какая погода","какая температура","как на улице","как одется","скажи погоду","подскажи погоду"]
}
job = input("Что я могу для тебя сделать?")
job1 = job.split(' ')
while True:
	for el in job1:
		if el in tbr:
				job1.remove(el)
		for key in jobs:
			if el in jobs[key]:
				key_word = key
			else:
				el = add_word

программа не записывает в переменную key_word и add_word значения. хотя в списке они остаются(там сверху словарь для key word и список слов которые нужно убрать из строки. add_word - дополнительное слово)
  • Вопрос задан
  • 185 просмотров
Пригласить эксперта
Ответы на вопрос 1
@kunjut19
потому что у вас цикл бесконечный, и ничем не прерывается

P.S. почему ничего не происходит, если переменная не из первого словаря? Смотрите:
вот вы перебираете key в jobs

for key in jobs:

содержит ли jobs[key] ключевое слово?
if el in jobs[key]:
    key_word = key

если вы написали слово из search - все работает. Правильно?
если вы написали слово из wether (погода будет weather) или calc, то вот тут:
else:
    el = add_word

вы меняете el на пустую строку add_word. Теперь, если ключевое слово не принадлежит search, то вы по сути ищите пустую строку в calc, wether и no. Поэтому ничего и не присваивается.

Попробуйте так:
else:
    add_word = el
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы