Задача 494 – пошук даних

Голосні

https://www.e-olymp.com/uk/problems/494

 

До голосних літер в латинському алфавіті відносяться літери AEIOU і Y. Інші літери вважаються приголосними. Напишіть програму, яка підраховує кількість голосних літер в тексті.

Вхідні дані

У вхідному файлі міститься один рядок тексту, який складається лише із заглавних латинських літер та проміжків. Довжина рядка не перевищує 100 символів.

Вихідні дані

У вихідний файл вивести одне ціле число – кількість голосних у вхідному тексті.

 

Вхідні дані

COBRA

Вихідні дані

2

 


 

Для розв’язання даної задачі можна скористатися функцією in

Загальна ідея така: Пробіл в тексті також вважаємо буквою (власне, так воно і є). Перебираємо по черзі всі букви тексту. Якщо вибрана буква є серед голосних, то загинаємо палець. Після перевірки всіх букв тексту виводимо кількість загнутих пальців.

В даному випадку доцільно текст і голосні ввести в текстові змінні:

golosni = 'AEIOUY'

 

Перебір букв тексту проводимо за допомогою циклу, функція in повертає True у випадку, коли буква тексту знайдена серед голосних:

 

for x in txt:

    if x in golosni:

     kilkist += 1  

 

Зверніть увагу на конструкцію kilkist+=1 Це і є загинання пальців. Тобто після виконання даної операції значення змінної kilkist збільшується на одиницю. Але якщо до виконання цієї операції змінна kilkist не використовувалась, то ми отримаємо помилку. Тому перед перебиранням букв тексту давайте зробимо так:

 

kilkist = 0

 

Так ми і заявимо, що у нас є така змінна (ініціалізуємо її) і встановимо цій змінній початкове значення.

 

ps. А чи багато, на вашу думку, треба змінити в програмі, щоб вона рахувала не кількість голосних, а кількість пробілів? І чи можна в такому випадку обійтися без функції in ? А яка, на вашу думку, програма буде працювати швидше на одному і тому тексті - та, що рахує кількість голосних чи та, що рахує кількість пробілів?

 


 

Вхід для зареєстрованих відвідувачів