В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
nicorobincom
nicorobincom
31.01.2023 21:31 •  Информатика

Реализовать на python

дан список слов, и одно слово.

список слов можно задать в любом виде: прочитать из файла (тогда нужно указать формат файла, или приложить его пример), ввести с клавиатуры, задать константой, и т.д.

слово должно вводиться с клавиатуры.

проверить, присутствуют ли в списке слова, состоящие из тех же букв (или их части), из которых состоит слово. порядок букв не имеет значения. в искомых словах может быть меньше букв, чем в исходном. как по количеству, так и по разнообразию. то есть, нельзя искать слова с тремя буквами "е", если в слове их только две, но можно с двумя и с одной.

пример:

список слов: рыба, рак, щука, лебедь, карась, пескарь, баня, бубен, столб, баян, барыня.

слово: рабыня

вывод программы: рыба, баня, баян, барыня

Показать ответ
Ответ:
дяья928
дяья928
11.10.2020 02:54

Пояснение:

Если ввод осуществляется через файл, то он должен называть "Слова.txt" и находиться в одной директории с исполняемым файлом. Выбрать нужный вариант ввода можно просто введя цифру в перовом input.

Код:

# -*- coding: utf-8 -*-

format = int(input("Считать слова из файла (введите 1)\nВводить слова в консоль (введите 2)\nВвести слова в одну строку(введите 3)\nВыбор: "))

words = []

answer = []

if format == 1:

  f = open('Слова.txt', "r", encoding='utf-8')

  line = f.readline()

  while line:

      for i in line.split(", "):

          words.append(i)

      line = f.readline()

  f.close()

elif format == 2:

  n = int(input("Введите кол-во слов - "))

  for i in range(n):

      words.append(input("Вв. слол - "))

elif format == 3:

  n = input("Введите строку - ")

  for i in n.split(", "):

      words.append(i)

else:

  print("Неправильно введен номер ответа")

word = input("Введите поисковое слово - ")

for i in words:

  for j in list(word):

      if len(set(word).intersection(set(i))) == len(i):

          answer.append(i)

          break

print(", ".join(answer))

Текст для документа:

рыба, рак, щука, лебедь, карась, пескарь, баня, бубен, столб, баян, барыня

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота