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

文字列がすべて母音で構成されているか判定するPythonプログラム

プログラミングをしていると、特定の条件を満たす入力だけを受け付けたい場面に出くわすことがあります。この記事では、その一例として母音のみで構成された単語だけを受け入れるプログラムを作成し、入力が有効かどうかを判定して結果を表示する方法を解説します。

アプローチの流れ

まず、処理の手順を段階的に確認しておきましょう。

  • 母音のリスト ['A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u'] を定義する
  • 判定対象となる単語または文を用意する
  • 単語や文を1文字ずつ走査し、その文字が母音リストに含まれているかどうかを確認する
3.1. 母音以外の文字が見つかった場合は、ループを抜けて「Not accepted」と表示する
  • すべての文字が母音であれば「Accepted」と表示する

コード例

それでは、上記の手順を実際のPythonコードに書き起こしてみましょう。

def check_vowels(string):
   # 母音のリスト
   vowels = ['A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u']
   # 文字列を1文字ずつ走査
   for char in string:
      if char not in vowels:
         print(f"{string}: Not accepted")
         break
   else:
      print(f"{string}: Accepted")
if __name__ == '__main__':
   # 判定する文字列を用意
   string_1 = "tutorialspoint"
   string_2 = "AEiouaieeu"
   # 文字列のチェックを実行
   check_vowels(string_1)
   check_vowels(string_2)

実行結果

上記のコードを実行すると、以下のような出力が得られます。

tutorialspoint: Not accepted
AEiouaieeu: Accepted

ポイント解説:for-else構文

このプログラムで注目したいのは、for文とelseを組み合わせた「for-else」構文です。Pythonでは、ループがbreakによって中断されずに最後まで完走した場合に限り、elseブロックが実行されます。これにより、「文字列中のすべての文字が母音だった場合」だけAcceptedと表示できる仕組みになっています。

まとめ

今回紹介した考え方は、母音の判定に限らず応用できます。たとえば「数字のみの文字列」「アルファベットのみの文字列」など、さまざまな条件に基づいて入力を検証するプログラムに発展させることが可能です。本チュートリアルについて不明な点がありましたら、ぜひコメント欄でお知らせください。

  1. 【Python】文字列がすべてユニークな文字で構成されているか判定する方法

    本記事では、与えられた文字列に含まれる文字がすべて一意(ユニーク)であるかどうかを判定するPythonプログラムについて、その解法とアプローチをわかりやすく解説します。 問題の概要 文字列が入力として与えられたとき、その文字列に含まれるすべての文字が重複なく一意であるかどうかを判定します。たとえば「abcde」はすべて異なる文字で構成されているためTrue、「tutorialspoint」のように同じ文字が複数回出現する場合はFalseとなります。 アプローチ この問題は、以下のような手順で効率的に解くことができます。 ブール値の配列を用意する: 各インデックス i が「アルファベット(AS

  2. Pythonでリスト内のすべての数値を乗算するプログラムの書き方

    この記事では、Pythonを使ってリスト内のすべての数値を掛け合わせる(乗算する)方法を解説します。まず、ユーザーからの入力を受け取るためのリストを3つ作成し、ここでは「走査(トラバース)」という手法を利用します。 基本的な考え方はシンプルです。積を表す変数の初期値を 1 に設定し、リストの先頭から末尾まで要素を順にたどりながら、各数値をひとつずつ積に掛けていきます。すべての要素を処理し終えた時点で、変数にはリスト全体の積が格納されています。 実行例 入力: A=[5,6,3] 出力: 90 説明: 5×6×3 アルゴリズム ステップ1: すべての数値をリスト(lst)に入力する。 ステ