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

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

Пояснение:
Если ввод осуществляется через файл, то он должен называть "Слова.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))
Текст для документа:
рыба, рак, щука, лебедь, карась, пескарь, баня, бубен, столб, баян, барыня



Вот пример кода на Python, который реализует данную задачу:
pythondef 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Введите слово: рабыня
Результат: рыба, баня, баян, барыня


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili