Вопрос задан 15.07.2023 в 02:09. Предмет Информатика. Спрашивает Коробьев Влад.

Реализовать на Python Дан список слов, и одно слово. Список слов можно задать в любом виде:

прочитать из файла (тогда нужно указать формат файла, или приложить его пример), ввести с клавиатуры, задать константой, и т.д. Слово должно вводиться с клавиатуры. Проверить, присутствуют ли в списке слова, состоящие из тех же букв (или их части), из которых состоит слово. Порядок букв не имеет значения. В искомых словах может быть меньше букв, чем в исходном. Как по количеству, так и по разнообразию. То есть, нельзя искать слова с тремя буквами "е", если в слове их только две, но можно с двумя и с одной. Пример: Список слов: рыба, рак, щука, лебедь, карась, пескарь, баня, бубен, столб, баян, барыня. Слово: рабыня Вывод программы: рыба, баня, баян, барыня
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Мазярук Богдан.

Пояснение:

Если ввод осуществляется через файл, то он должен называть "Слова.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
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот пример кода на Python, который реализует данную задачу:

python
def check_words(word_list, target_word): target_word = sorted(target_word.lower()) matching_words = [] for word in word_list: sorted_word = sorted(word.lower()) if all(char in sorted_word for char in target_word): matching_words.append(word) return matching_words word_list = ["рыба", "рак", "щука", "лебедь", "карась", "пескарь", "баня", "бубен", "столб", "баян", "барыня"] target_word = input("Введите слово: ") result = check_words(word_list, target_word) print("Результат:", ", ".join(result))

В этом коде функция check_words принимает список слов word_list и искомое слово target_word. Она проходит по каждому слову в списке, приводит их к нижнему регистру и сортирует буквы. Затем она проверяет, содержатся ли все буквы из target_word в отсортированном слове. Если да, то это слово добавляется в список matching_words.

В конце кода просто вводится список слов и искомое слово, вызывается функция check_words и выводятся найденные совпадения.

Пример вывода:

makefile
Введите слово: рабыня Результат: рыба, баня, баян, барыня
0 0

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

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос