С использованием библиотек
import pyphen
def split_into_syllables(word):
dic = pyphen.Pyphen(lang='ru')
syllables = dic.inserted(word).split('-')
return syllables
word = "автоэлектростеклоподъемники"
syllables = split_into_syllables(word)
print(syllables)
Вывод:
['ав', 'то', 'элек', 'тро', 'стек', 'ло', 'подъ', 'ем', 'ни', 'ки']
Без использования библиотек
def split_into_syllables(word):
vowels = ['а', 'е', 'ё', 'и', 'о', 'у', 'ы', 'э', 'ю', 'я'] # список гласных букв
syllables = [] # список слогов
current_syllable = '' # текущий слог
for letter in word:
if letter.lower() in vowels: # если буква - гласная
current_syllable += letter # добавляем ее к текущему слогу
if len(current_syllable) == 2: # если текущий слог состоит из двух букв
syllables.append(current_syllable) # добавляем его в список слогов
current_syllable = '' # обнуляем текущий слог
else: # если буква - согласная
current_syllable += letter # добавляем ее к текущему слогу
if current_syllable: # если остался непустой текущий слог
syllables.append(current_syllable) # добавляем его в список слогов
return syllables
word = "машина"
syllables = split_into_syllables(word)
print(syllables)
Вывод:
['ма', 'ши', 'на']
Функция достаточно неточная, и на сложный словах может выдавать не верные результаты, но мы в любом случае неизбежно столкнёмся с тем, что код будет монструозным т. к. русский язык совсем не прост.