Подсчет слогов в Python

Lakshay Kapoor 30 Январь 2023 13 Июль 2021
  1. Используйте оператор if в Python для подсчета слогов
  2. Использование словаря и понимания списков в Python для подсчета слогов
  3. Используйте словарь с помощью функции fromkeys() в Python для подсчета слогов
  4. Используйте функции str() и set() в Python для подсчета слогов
Подсчет слогов в Python

Подсчет слов, фраз, букв и некоторых конкретных символов - обычная задача в программировании. Во всех этих задачах пользователь часто делает подсчет слогов в слове или предложении.

В этом руководстве мы увидим различные методы, с помощью которых мы можем подсчитывать слоги в Python.

Используйте оператор if в Python для подсчета слогов

В этом методе мы вводим строку с помощью функции input(), встроенной в Python.

Пример:

word=input("Enter the word:")
syllable_count=0
for w in word:
      if(w=='a' or w=='e' or w=='i' or w=='o' or w=='u' or w=='A' or w=='E' or w=='I' or w=='O' or w=='U'):
            syllable_count=syllable_count+1
print("The number of syllables in the word is: ")
print(syllable_count)

Здесь пользователь может ввести любое слово для использования функции input(). Счетчик слогов изначально был установлен на 0, и все слоги, которые должны быть возвращены из слова, были упомянуты с использованием цикла for. Обратите внимание, что все слоги были даны как в нижнем, так и в верхнем регистре.

Выход:

Enter the word: Beautiful
The number of syllables in the word is: 5

Использование словаря и понимания списков в Python для подсчета слогов

В понимании списка новый список создается на основе элементов в существующем списке. После использования понимания списка вывод приходит в виде словаря.

Словарь в Python - это набор элементов, которые хранятся в произвольном порядке. Каждый элемент в словаре имеет собственное значение. Значение элемента можно узнать, если известно имя элемента.

Пример:

sentence = 'Hello, Let us see how many syllables are there in this sentence'
sentence = sentence.casefold()


vowel_count = {s:sum([1 for letter in sentence if letter == x]) for s in 'aeiou'}

print(vowel_count)

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

Кроме того, метод sum(), используемый в приведенном выше коде, вычисляет общую сумму значений каждого элемента в списке.

Выход:

{'a': 3, 'e': 11, 'i': 2, 'o': 2, 'u': 1}

Вы можете видеть, что возвращаемый результат представляет собой словарь, в котором есть разные элементы в виде слогов с указанным значением.

Используйте словарь с помощью функции fromkeys() в Python для подсчета слогов

С помощью функции fromkeys() можно составить словарь с разными элементами и их заданным значением.

В этом методе мы также используем функцию casefold(), чтобы данный набор строк преобразовывался в нижний регистр, и мы могли принимать ввод от самого пользователя. Кроме того, даже в этом методе мы инициализируем счетчик слогов с 0.

Пример:

syllables = 'aeiou'

word = input("Enter a word or a sentence: ")
word = word.casefold()


syllable_count = {}.fromkeys(syllables,0)

for w in word:
   if w in syllable_count:
       syllable_count[w] += 1

print(syllable_count)

Выход:

Enter a word or a sentence: Hello, Let Us See How Many Syllables Are There In This Sentence
{'a': 3, 'e': 11, 'i': 2, 'o': 2, 'u': 1}

Используйте функции str() и set() в Python для подсчета слогов

Функция set() используется для возврата заданного объекта, в котором все элементы не расположены в определенном порядке. Эта функция также удаляет повторяющиеся элементы в наборе.

С помощью функции str() любое значение или объект можно преобразовать в строку.

В этом методе слоги будут аргументом функции set, что означает создание набора слогов.

Пример:

def syllable_count(str):
    count = 0
    
    syllables = set("AEIOUaeiou")
    
    for letter in str:
        if letter in syllables:
            count = count + 1
      
    print("Total no. of syllables :", count)

str = 'beautiful'

syllable_count(str)

Выход:

Total no. of syllables : 5
Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn