Python|文字列の中で特定の文字をカウントする

1. はじめに

Pythonで文字列操作を行う際、「特定の文字が文字列の中にいくつあるかを数えたい」という場面は頻繁にあります。本記事では、Pythonで文字列の中で特定の文字をカウントする方法について、初心者にもわかりやすく解説します。

この方法を習得すれば、ログ解析・文字数制限チェック・文章分析など、実務にも応用できる技術を身につけることができます。

 

2. Pythonで文字列中の特定の文字をカウントする方法

2-1. count()メソッドとは?

Pythonの文字列型(str)には、文字や部分文字列をカウントするためのcount()メソッドが用意されています。

# 文字列中の「a」の数をカウントする
text = "apple banana avocado"
count_a = text.count("a")
print("aの数:", count_a)

実行結果:

aの数: 6

count()メソッドは、str.count(sub[, start[, end]])の形式で使用できます。
オプションでstartendを指定すると、特定の範囲に限定してカウントも可能です。

2-2. 複数の文字を同時にカウントしたい場合

例えば「a」と「e」をそれぞれ数えたいときは、count()を複数回使います。

text = "elementary experience"

count_a = text.count("a")
count_e = text.count("e")

print("aの数:", count_a)
print("eの数:", count_e)

実行結果:

aの数: 1
eの数: 5

 

3. よくある使い方・応用例

3-1. 入力された文字列中の母音の数をカウント

ユーザーから文字列を受け取り、母音(a, i, u, e, o)の数をすべてカウントしてみましょう。

# 母音の出現回数をカウントする
text = input("文字列を入力してください:")

vowels = "aiueo"
for vowel in vowels:
    count = text.count(vowel)
    print(f"{vowel} の数:{count}")

実行結果(例):

文字列を入力してください:Pythonは楽しいよ
a の数:0
i の数:0
u の数:1
e の数:0
o の数:1

3-2. 複数行テキストの中での特定文字の出現数

文章中に特定の文字(例:「。」「、」)が何回使われているかを調べるのにも便利です。

text = """Pythonは初心者にも優しい言語です。
その文法はシンプルで、直感的に書ける点が特徴です。"""

# 句点と読点のカウント
count_period = text.count("。")
count_comma = text.count("、")

print("句点(。)の数:", count_period)
print("読点(、)の数:", count_comma)

実行結果:

句点(。)の数: 2
読点(、)の数: 1

3-3. ファイルの中から特定の文字数をカウント

ファイルを開いて、その中に含まれる特定の文字を数えることも可能です。

# ファイル内の「e」の数をカウント
with open("sample.txt", "r", encoding="utf-8") as f:
    content = f.read()

count_e = content.count("e")
print("eの数:", count_e)

実行結果(例):

eの数: 42

 

4. 注意点・エラー対策

4-1. 大文字と小文字は区別される

count()メソッドは、大文字・小文字を区別します。そのため「A」と「a」は別物としてカウントされます。

text = "Apple and avocado"

print("A の数:", text.count("A"))
print("a の数:", text.count("a"))

実行結果:

A の数: 1
a の数: 1

すべて小文字に統一したい場合はlower()を使います。

4-2. NoneTypeエラーやファイル読み込みエラーに注意

変数が文字列でない場合、AttributeErrorが出ることがあります。またファイル読み込み時は、ファイルパスや文字コードに注意してください。

# 安全なファイル読み込みの例
try:
    with open("sample.txt", "r", encoding="utf-8") as f:
        text = f.read()
        print("e の数:", text.count("e"))
except FileNotFoundError:
    print("ファイルが見つかりません")

実行結果(例):

ファイルが見つかりません

 

5. まとめ

今回は、Pythonで文字列中の特定の文字をカウントする方法を中心に、基本的なcount()メソッドの使い方から、応用例、注意点まで幅広く解説しました。

  • count()を使えば簡単に任意の文字数を取得できる
  • 実務ではログ解析やデータ分析にも活用できる
  • 大文字小文字やファイルエンコーディングには注意が必要

たとえば「入力文に禁止文字が含まれているか」「日本語の文章で読点の数を数える」といった場面でも使える便利な機能です。Python初心者の方は、ぜひ実際にコードを動かしながら理解を深めてください。

タイトルとURLをコピーしました