Python

Помогите решить задачу на python!

Задача 6. Словарь синонимов

Одна библиотека поручила вам написать программу для оцифровки словарей слов-синонимов. На вход в программу подаётся N пар слов. Каждое слово является синонимом к парному ему слову.

Реализуйте код, который составляет словарь слов-синонимов (все слова в словаре различны), затем запрашивает у пользователя слово и выводит на экран его синоним. Обеспечьте контроль ввода: если такого слова нет, то выведите ошибку и запросите слово ещё раз. При этом проверка не должна зависеть от регистра символов.



Пример:

Введите количество пар слов: 3

1 пара: Привет - Здравствуйте

2 пара: Печально - Грустно

3 пара: Весело - Радостно



Введите слово: интересно

Такого слова в словаре нет.

Введите слово: здравствуйте

Синоним: Привет
couple_words = int(input('Введите количество пар слов: '))
main_dict = {}

for i_num in range(couple_words):
word_fst, snd_word = input(f'{i_num + 1} пара: ').split()
main_dict[word_fst] = snd_word

synonim = input('\nВведите слово: ').lower()

print('Синоним:', main_dict.get(synonim) or ''.join([word_fst \
for word_fst, snd_word in main_dict.items() if snd_word == synonim]) or 'Такого слова в словаре нет')
RS
Roman Starikov
493
Лучший ответ
num = int(input('Введите количество пар слов: '))
dict = dict()

for i_num in range(num):
word_list = input(f'{i_num + 1} пара: ').split()
dict[word_list[0]] = word_list[2]
while True:
word = input('\nВведите слово: ').title()
for i_word in dict.items():
if word in i_word[0]:
print('Синоним -', i_word[1])
break
elif word in i_word[1]:
print('Синоним -', i_word[0])
break
else:
print(f'\nТакого слова <{word}> в словаре нет.\nНапишите другое слово')
count_input = int(input('Введите количество пар слов: '))
synonims = dict()
for i in range(1, count_input + 1):
couples = input(f'{i} пара: ').split(' - ')
for couple in couples[:1]:
synonims[couple] = couples[1]
word = input('Введите слово: ').title()
for synonim in synonims:
if word == synonim.title():
print(f'Синоним: {synonims[synonim]}')
break
elif word == synonims[synonim].title():
print(f'Синоним: {synonim}')
break
else:
print('Такого слова в словаре нет')
def dorin(i):
a1 = ('','Первая','Вторая','Третья','Четвертая','Пятая')
if i > 0 and i < 20:
return (a1[i])

count = int(input('Введите количество пар слов: '))
text_dict = dict()

for i in range(1, count + 1):
text = input(f'{dorin(i)} пара: ').lower().split(' - ')
text_dict[text[0].strip()] = text[1].strip()
text_dict[text[1].strip()] = text[0].strip()
# print(text_dict)

while True:
word = input('\nВведите слово: ').lower().strip()
if word == 'end':
break
elif word in text_dict:
print('Синоним:', text_dict[word])
else:
print('Такого слова в словаре нет.')
def main():
words_count = int(input("Введите количество пар слов: "))
words_dict = get_words_dict(words_count)
get_synonym(words_dict)


def get_words_dict(count):
print("Начните ввод слов по принципу: слово1 - слово2")
words_dict = {}
index_start = 1
for _ in range(count):
word = input("{} пара слов: ".format(index_start)).lower()
word_list = word.split(" - ")
words_dict[word_list[0]] = word_list[1]
index_start += 1
return words_dict


def get_synonym(words_dict):
val_list = list(words_dict.values())
key_list = list(words_dict.keys())
flag = True
while flag:
word = input("Введите слово: ").lower()
if word in words_dict.keys() or word in words_dict.values():
if word in val_list:
key_position = val_list.index(word)
print(key_list[key_position])
flag = False
else:
print(words_dict.get(word))
flag = False

else:
print("Такого слова в словаре нет.")


main()
*lil* *tim*
*lil* *tim*
182
N = int(input('Введите количество пар слов: '))

pair_dict = dict()

flag = True


for _ in range(N):

pair = input(f'\n{_ + 1} пара: ').split(' - ')

pair_dict[_] = [pair[0], pair[1]]


while flag:

word = input('\nВведите слово: ').lower()

for key in pair_dict:

for i_word in pair_dict.get(key):

if i_word.lower() == word:

print(f'\nСиноним: {pair_dict.get(key)[(pair_dict.get(key).index(i_word) + 1) % len(pair_dict.get(key))]}')

flag = False

break



if flag:

print('\nТакого слова в словаре нет.')
Александр Жданов break забыл внутри if-а, а так твой код лучше