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

Pythonで文字列内の小文字の数をカウントする方法【islower活用】

文字列内の小文字の数を数えるには

Pythonで文字列に含まれる小文字の数を数えたい場合、文字列メソッドのislower()と、シンプルなforループを組み合わせることで簡単に実装できます。

islower()は、対象の文字が小文字のアルファベットであるかどうかを判定するメソッドです。このメソッドを文字列の各文字に対して適用し、条件を満たす文字をカウントしていくのが基本的なアプローチとなります。

サンプルコード

my_string = "Hi there how are you"
print("文字列は以下の通りです:")
print(my_string)
my_counter = 0

for i in my_string:
    if i.islower():
        my_counter = my_counter + 1
print("文字列内の小文字の数は:")
print(my_counter)

実行結果

文字列は以下の通りです:
Hi there how are you
文字列内の小文字の数は:
15

コードの解説

  • まず、対象となる文字列を定義し、コンソールに表示します。
  • カウント用の変数my_counter0で初期化します。
  • forループで文字列を1文字ずつ取り出し、islower()メソッドを使ってその文字が小文字かどうかを判定します。
  • 小文字であった場合はカウンターを1ずつ加算し、文字列の末尾までこの処理を繰り返します。
  • 最終的なカウント結果をコンソールに出力します。

この例では、スペースや大文字はカウント対象外となるため、"Hi there how are you"のうち小文字は15文字という結果になります。

別の方法:sum関数を使った簡潔な記述

ループを明示的に書かずに、ジェネレータ式とsum()関数を組み合わせることで、より簡潔に同じ処理を実現することもできます。

my_string = "Hi there how are you"
count = sum(1 for c in my_string if c.islower())
print("文字列内の小文字の数は:", count)  # 15

この書き方であれば、カウンター変数の初期化や加算処理を自分で管理する必要がなく、コードの意図も明確になります。状況に応じて、可読性の高い方を選択するとよいでしょう。

まとめ

文字列内の小文字を数える基本は、islower()による判定とループ処理の組み合わせです。Pythonの組み込み関数を活用すれば、わずか数行でこの処理を記述できるため、テキスト解析や入力値のバリデーションなど、さまざまな場面で応用できます。

  1. Pythonで文字列の異なる部分文字列の個数を数える方法(トライ木による解法)

    文字列 s が与えられたとき、その中に含まれる「空でない異なる部分文字列」が何種類あるかを求める問題を考えてみましょう。例えば、入力が s = abaa の場合、出力は 8 になります。これは、部分文字列として [a, b, ab, ba, aa, aba, baa, abaa] の8種類が存在するためです。解法のアプローチ:トライ木(Trie)を使うこの問題は、トライ木と呼ばれるデータ構造を使うことで効率的に解くことができます。トライ木とは、文字列の集合を木構造で表現したもので、共通の接頭辞を持つ文字列同士が同じ経路を共有できるのが特徴です。これにより、重複する部分文字列を自動的にまとめて管

  2. Pythonで括弧の各深さごとの文字数をカウントするプログラムの作成方法

    文字列 s が与えられます。この文字列は「X」「(」「)」の3種類の文字のみで構成されており、括弧は必ずバランスが取れていて、その間に「X」が含まれています。また、括弧は再帰的にネストしている場合もあります。 この課題では、最も浅い深さから最も深い深さへ向かって、各括弧の深さごとに「X」の個数を求めます。 入力例と出力例 たとえば、入力が s = (XXX(X(XX))XX) の場合、出力は [5, 1, 2] になります。 深さ0(最も外側の括弧の中)には「X」が5個 深さ1には「X」が1個 深さ2(最も内側の括弧の中)には「X」が2個 解き方のアプローチ この問題は、次の手順で解くこと