В чем заключается ошибка в алгоритме работы программы и как ее исправить?

введите сюда описание изображения

Ввод:

print_long_words('Как и в прочих заданиях этого урока, в вашем решении функция должна быть определена, но не должна вызываться.')

вывод:

заданиях
 
решении

определена

вызываться

вот мой код:

def print_long_words(s):
    [print(i.lower()) for i in s.replace('.', '').replace(',', '').replace(';', '').replace('!', '').replace('?', '').replace(':', '').split()if sum(i.count(j)for j in'аоэиуыеёюяaeiouy') > 3]

не работает при таких входных данных:

Ввод

print_long_words("""whatever.wherever1solution;solut1onal""")

Ожидаемый результат

solution

Вывод

whateverwherever1solutionsolut1onal

UPDATE:

Номер теста

9

Ввод

print_long_words('Как и в прочих заданиях этого урока, в вашем решении функция должна быть определена, но не должна вызываться.'.swapcase())

Ожидаемый результат

заданиях
решении
определена
вызываться

Ответы (1 шт):

Автор решения: Игорь Игоряныч
import re

text = 'Как и в прочих заданиях этого урока, в вашем решении функция должна быть определена, но не должна вызываться.'

rus = 'аоэиуыеёюя'
eng = 'aeiouy'

def print_long_words(data):
    for word in re.split('\s+|\.|;|,|!|1|2|3|4|5|6|7|8|9|0', data):
        word = word.lower()

        if sum([l in rus for l in word]) >= 4:
            print(word)
        if sum([l in eng for l in word]) >= 4:
            print(word)
       
print_long_words(text)
→ Ссылка