ゼロからのPython入門講座条件式と分岐 elif 節

条件式と分岐比較演算子文字列の比較if 文 による条件分岐else 節比較以外の条件式elif 節

比較以外の条件式 では、

  1. 文字列が数字なら「〇〇〇は数字です」と出力します。
  2. そうでなければ「〇〇〇は数字ではありません」と出力します。

という処理を作成しました。

ここでは、もう少し機能を追加して、文字列がアルファベットかどうかも判定してみましょう。

  1. 文字列が数字なら「〇〇〇は数字です」と出力します。
  2. 数字でなければ、アルファベットかどうかを判定し、アルファベットなら「○○○はアルファベットです」と出力します。
  3. そうでなければ「〇〇〇は数字でもアルファベットでもありません」と出力します。

アルファベットかどうかの判定は、文字列の isalpha() メソッドで判定します。isalpha() メソッドは、文字列がアルファベットであれば True を、そうでなければ False を返します。

In [32]:
print("123はアルファベットですか?", "123".isalpha())
print("abcはアルファベットですか?", "abc".isalpha())
123はアルファベットですか? False
abcはアルファベットですか? True

"123"という文字列はアルファベットではありませんので、"123".isalpha() という式は、False となります。また、"abc"という文字列はアルファベットですので、"abc".isalpha() という式は、True となります。

if 文には、if文で指定した条件が満たされなかった時に検査する条件を、次のように elif 〜: で指定できます。

if 条件式1:
    処理1
    ...
elif 条件式2:
    処理2
    ...
elif 条件式3:
    処理3
    ...
else:
    処理n
    ...

elif 〜 で追加された条件の部分を、elif節 といいます。

このプログラムを実行すると、まず 条件式1 を判定し、条件が満たされなければ最初の elif 節の 条件式2 を判定します。条件式2 が満たされていれば、処理2を実行します。条件式2が満たされなければ、以降の elif 節にある 条件式3条件式4、... を次々に判定します。すべての条件が満たされなければ、else節の処理を実行します。

elif 節も、最後に : が必要ですので、忘れないようにしてください。

次のプログラムは、if文の isdecimal() メソッドで、入力された文字が数字かどうかをチェックします。数字だった場合は、数字です とメッセージを出力します。

入力された文字が数字ではなく、isdecimal() の結果が False となった場合は、elif節の isalpha() メソッドを呼び出し、入力文字がアルファベットかどうかをチェックします。アルファベットだった場合、アルファベットです とメッセージを出力します。

入力文字がアルファベットではなく、isalpha() の結果が False だった場合は、else節の処理が実行され、数字でもアルファベットでもありません とメッセージを出力します。

In [3]:
string = input("文字列を入力してください:")
if string.isdecimal():
    print(string, "は数字です")
elif string.isalpha():
    print(string, "はアルファベットです")
else:
    print(string, "は数字でもアルファベットでもありません")
文字列を入力してください: abcdeg
abcdeg はアルファベットです

いろいろな数字や文字を入力して、結果を試してみてください。isapha() メソッドは、英字のアルファベット(a, bなど)だけでなく、日本語のひらがなやカタカナもアルファベットとして判定します。

Copyright © 2001-2021 python.jp Privacy Policy python_japan
Amazon.co.jpアソシエイト
Amazonで他のPython書籍を検索