Python: Дана строка. Вывести все слова, начинающиеся ** букву "а" и слова оканчивающиеся...

+235 голосов
2.2m просмотров

Python: Дана строка. Вывести все слова, начинающиеся на букву "а" и слова оканчивающиеся на букву "я". есть код, но я не знаю как вводить слова с клавиатуры: words=['машина', 'яна', 'аня'] print(*filter(lambda x: x.startswith('а'), words)) print(*filter(lambda x: x.endswith('я'), words))


Информатика (25 баллов) | 2.2m просмотров
Дан 1 ответ
+52 голосов

Ответ:

То есть вы знаете, что такое filter, что такое лямбда-выражения, для чего нужен префикс " * ", но при этом не знаете, как считывать какие либо данные с клавиатуры?)))

Если вам нужно считывать слова по одному, вы можете воспользоваться генератором списков:

words = [input() for _ in range(N)] #где N - произвольная длина вводимого списка

Если вы хотите ввести все слова, которые нужно обработать, разом в одну строку, используйте строковый метод .split(sep) и вводите слова разделяя каким либо уникальным символом (обычно это просто пробел)

words = input().split(' ')

Если у вас есть сомнения по поводу вводимого текста, или в задании обговорено, что вводимый текст может быть хоть статьёй из газеты, используйте модули string и re, что бы удалить из текста всякую шелуху и уже потом с ним работать

import re

import string

rawInput = input()

CleanText = re.sub(r' +', ' ', re.sub(rf'[{string.punctuation}]|\n', '', rawInput)) #Это удалит из введённого текста повторяющиеся пробелы, знаки препинания и символы переноса строки

words = CleanText.split(' ')

(1.6k баллов)