Вы проходите стажировку в отделе анализа данных. Работая с объемными текстами, вы выделили для себя несколько несколько подзадач, которые нужно реализовать в виде функций. Одна из них анализирует текст и составляет список всех слов, встретившихся в этом тексте.
Для решения задачи реализуйте две функции:
is_word(s) проверяет, является ли фрагмент текста словом, возвращая True или False в зависимости от результата;
filter(func, text) принимает на вход список, фильтрует его при помощи функции func и возвращает новый список.
Важно! На проверку отправляем только функции.
Формат входных данных
С клавиатуры вводится список строк, разделенных между собой пробелами.
Формат выходных данных
Требуется вывести результат фильтрации списка.
Примечания
Словом считается последовательность подряд идущих букв, причем если после такой последовательности стоит знак препинания (точка или запятая), то такая конструкция тоже считается словом.
входные данные выходные данные
у меня 5 котиков
у меня котиков
1 плюс 2 равно три.
плюс равно три.
Python
ПОМОГИТЕ СРОЧНО РЕШИТЬ !
filter есть встроенный, можно обернуть его своей функцией.
Для удаления символов с конца есть встроенный метод.
И задание предписывает прислать только функции, а ответ бота содержит ещё и импорты. Поэтому надо сделать импортозамещение, хе-хе.... в общем, импорты нужно включать в тело функции, иначе тест не пройдёт.
Для тестирования:
Для удаления символов с конца есть встроенный метод.
И задание предписывает прислать только функции, а ответ бота содержит ещё и импорты. Поэтому надо сделать импортозамещение, хе-хе.... в общем, импорты нужно включать в тело функции, иначе тест не пройдёт.
def filter(f, lst):
import builtins
return list(builtins.filter(f, lst))
def is_word(s):
from string import punctuation
return s.rstrip(punctuation).isalpha()
Для тестирования:
print(*filter(is_word, input().split()))
Для решения данной задачи вы можете воспользоваться следующим кодом:
```python
import string
def is_word(s):
"""
Функция проверяет, является ли фрагмент текста словом.
"""
if s[-1] in string.punctuation: # Проверяем, является ли последний символ знаком препинания
s = s[:-1] # Удаляем знак препинания, чтобы проверить, состоит ли оставшаяся часть только из букв
return s.isalpha() # Возвращаем результат проверки наличия только букв
def filter(func, text):
"""
Функция фильтрует список при помощи заданной функции и возвращает новый список.
"""
return [word for word in text if func(word)] # Возвращаем только те слова, для которых функция func возвращает True
# Считываем входные данные
input_text = input().split()
# Фильтруем список, оставляя только слова
filtered_text = filter(is_word, input_text)
# Выводим результат фильтрации
print(' '.join(filtered_text))
```
После запуска программы введите входные данные и нажмите Enter. Программа отфильтрует список и выведет результат.
Пример использования:
```
У меня 5 котиков
```
Вывод:
```
У меня котиков
```
```
1 плюс 2 равно три.
```
Вывод:
```
плюс равно три
```
Обратите внимание, что данное решение предполагает, что каждое слово во входном тексте разделено пробелом. Также оно учитывает только знаки препинания из модуля `string.punctuation` (точка и запятая). Если в вашей задаче требуется учесть другие знаки препинания или особые условия для слов, то код может потребовать некоторых модификаций.
```python
import string
def is_word(s):
"""
Функция проверяет, является ли фрагмент текста словом.
"""
if s[-1] in string.punctuation: # Проверяем, является ли последний символ знаком препинания
s = s[:-1] # Удаляем знак препинания, чтобы проверить, состоит ли оставшаяся часть только из букв
return s.isalpha() # Возвращаем результат проверки наличия только букв
def filter(func, text):
"""
Функция фильтрует список при помощи заданной функции и возвращает новый список.
"""
return [word for word in text if func(word)] # Возвращаем только те слова, для которых функция func возвращает True
# Считываем входные данные
input_text = input().split()
# Фильтруем список, оставляя только слова
filtered_text = filter(is_word, input_text)
# Выводим результат фильтрации
print(' '.join(filtered_text))
```
После запуска программы введите входные данные и нажмите Enter. Программа отфильтрует список и выведет результат.
Пример использования:
```
У меня 5 котиков
```
Вывод:
```
У меня котиков
```
```
1 плюс 2 равно три.
```
Вывод:
```
плюс равно три
```
Обратите внимание, что данное решение предполагает, что каждое слово во входном тексте разделено пробелом. Также оно учитывает только знаки препинания из модуля `string.punctuation` (точка и запятая). Если в вашей задаче требуется учесть другие знаки препинания или особые условия для слов, то код может потребовать некоторых модификаций.
Похожие вопросы
- Помогите срочно решить эту задачу
- Помогите, пожалуйста, решить задачу Python
- Задача питон помогите срочно
- Помогите пожалуйста решить задачи на питоне:
- ПОМОГИТЕ СРОЧНО ПЖ!!
- Домашнее задание по программированию, помогите срочно!
- Задание по программированию помогите срочно!!!
- Помогите, срочно Задача Python
- Python! Пожалуйста, помогите, срочно!!!
- Помогите пожалуйста решить задачу "Ход конём" в Python.