比較以外の条件式 では、
- 文字列が数字なら「〇〇〇は数字です」と出力します。
- そうでなければ「〇〇〇は数字ではありません」と出力します。
という処理を作成しました。
ここでは、もう少し機能を追加して、文字列がアルファベットかどうかも判定してみましょう。
- 文字列が数字なら「〇〇〇は数字です」と出力します。
- 数字でなければ、アルファベットかどうかを判定し、アルファベットなら「○○○はアルファベットです」と出力します。
- そうでなければ「〇〇〇は数字でもアルファベットでもありません」と出力します。
アルファベットかどうかの判定は、文字列の isalpha() メソッドで判定します。isalpha() メソッドは、文字列がアルファベットであれば True を、そうでなければ False を返します。
print("123はアルファベットですか?", "123".isalpha())
print("abcはアルファベットですか?", "abc".isalpha())
"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節の処理が実行され、数字でもアルファベットでもありません とメッセージを出力します。
string = input("文字列を入力してください:")
if string.isdecimal():
print(string, "は数字です")
elif string.isalpha():
print(string, "はアルファベットです")
else:
print(string, "は数字でもアルファベットでもありません")
いろいろな数字や文字を入力して、結果を試してみてください。isapha() メソッドは、英字のアルファベット(a, bなど)だけでなく、日本語のひらがなやカタカナもアルファベットとして判定します。