比較以外の条件式 では、
- 文字列が数字なら「〇〇〇は数字です」と出力します。
- そうでなければ「〇〇〇は数字ではありません」と出力します。
という処理を作成しました。
ここでは、もう少し機能を追加して、文字列がアルファベットかどうかも判定してみましょう。
- 文字列が数字なら「〇〇〇は数字です」と出力します。
- 数字でなければ、アルファベットかどうかを判定し、アルファベットなら「○○○はアルファベットです」と出力します。
- そうでなければ「〇〇〇は数字でもアルファベットでもありません」と出力します。
アルファベットかどうかの判定は、文字列の 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など)だけでなく、日本語のひらがなやカタカナもアルファベットとして判定します。