Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで文字列内の母音の数を数える方法をわかりやすく解説

Pythonで文字列内の母音の数を数える基本手順

Pythonでは、シンプルなループ処理を使うことで、文字列に含まれる母音(a、e、i、o、u)の数を簡単に数えることができます。ここでは、初心者にもわかりやすいように、基本的な実装手順を順を追って解説します。

ステップ1:母音をまとめた文字列を用意する

まず、すべての母音を格納した文字列オブジェクトを宣言します。

>>> vowels = 'aeiou'

ステップ2:カウント用の変数を初期化する

次に、母音の出現回数を記録するための変数を0で初期化します。

>>> count = 0

ステップ3:文字列を走査して母音を判定する

対象となる文字列の各文字をforループで1文字ずつ取り出し、その文字が母音の文字列「vowels」に含まれているかどうかをin演算子で判定します。含まれていれば、カウントを1つ増やします。

>>> string = 'Hello How are you?'
>>> for s in string:
...     if s in vowels:
...         count = count + 1

ステップ4:結果を表示する

ループが終了したら、count変数の値を出力します。

>>> print(count)
7

この例では、「Hello How are you?」という文字列に7つの母音(e、o、o、a、e、o、u)が含まれているため、結果は7になります。

大文字・小文字を区別しない方法

上記のコードは小文字の母音のみを判定するため、大文字が混在する文字列には対応できません。大文字も含めて数えたい場合は、str.lower()メソッドで文字列をあらかじめ小文字に変換しておくのがおすすめです。

>>> string = 'Hello How Are You?'.lower()
>>> vowels = 'aeiou'
>>> count = 0
>>> for s in string:
...     if s in vowels:
...         count += 1
>>> print(count)
8

より簡潔な書き方:sum()とジェネレータ式

Pythonらしい書き方として、sum()関数とジェネレータ式を組み合わせると、同じ処理を1行で実現できます。

>>> string = 'Hello How are you?'
>>> count = sum(1 for s in string if s in 'aeiou')
>>> print(count)
7

さらに、collections.Counterを利用すれば、各母音ごとの出現回数をまとめて取得することも可能です。

>>> from collections import Counter
>>> c = Counter(s for s in 'Hello How are you?' if s in 'aeiou')
>>> print(c)
Counter({'e': 2, 'o': 3, 'a': 1, 'u': 1})
>>> print(sum(c.values()))
7

まとめ

文字列内の母音を数える基本的な流れは、「①母音文字列の準備 → ②カウンタの初期化 → ③ループによる判定と加算 → ④結果の出力」です。まずはforループを使った基本形をしっかり理解し、慣れてきたらsum()関数やCounterを使った簡潔な書き方にも挑戦してみましょう。

  1. C++とOpenCVを使って画像内の顔の数を数える方法

    OpenCVを利用すれば、画像に写っている顔の数を数えるのはとても簡単です。実は、前章で作成した顔検出プログラムには、すでに検出した顔の数の情報が含まれています。その情報は faces.size() というコードで取得でき、このコードは整数値(int型)を返します。例えば、int x = faces.size(); と記述すれば、変数 x には画像から検出された顔の数が格納されます。以下のプログラムは、指定した画像から顔の数を計算し、その結果をコンソール画面に表示するものです。サンプルコード#include<iostream> #include<opencv2/highgui

  2. セットを使って文字列内の母音の数をカウントするPythonプログラム

    本記事では、Pythonを使って文字列内に含まれる母音の数をカウントする方法について解説します。セット(set)を活用した効率的な実装を中心に、初心者の方にもわかりやすく説明していきます。 問題の概要 問題文:任意の文字列が与えられたとき、その文字列に含まれる母音の数をセットを使って数えます。 基本的なアプローチとしては、文字列全体を先頭から順に走査し、各文字が母音であるかどうかを判定します。母音であればカウントを1ずつ増やしていき、最終的な合計を出力します。 実装例 def vowel_count(str_): count = 0 # 母音をセットとして定義 vowe