Pythonでisdecimalメソッドを使って、文字列が数字の形をしているか調べる方法

スポンサーリンク
スポンサーリンク

イントロダクション

この記事では python の isdecimal() メソッドを紹介します。

与えられた文字列が数字、特に10進数を含むかどうかをチェックしたい場合はどうしたらよいでしょうか。

これは、文字列を整数や浮動小数点数などの他の数値型に変換する必要がある場合に起こり得ます。

この問題を解決するために、Pythonには isdecimal() というチェックメソッドが組み込まれています。

このメソッドを詳しく調べて、メソッドがどのように動作し、どのように使用できるかを理解しましょう。

Python isdecimal() メソッドの基礎知識

一般に、Python の isdecimal() メソッドは、指定された文字列のすべての文字が10進数かどうかを直接チェックします。

もしそうなら、このメソッドは true を返し、そうでないなら false を返します。

Python isdecimal() メソッドの構文

Python の isdecimal() メソッドの構文とその使い方について説明します。

status = str.isdecimal( )

ここで

  • ここで、 str は10進文字のみから構成されているかどうかを調べる文字列です。
  • status には isdecimal() メソッドが返す値が格納される。これは、すべての10進文字に対して真であり、そうでない場合は偽です。

注意: ここでは、status は単に true か false のどちらかを保持するので、 bool という型になります。

isdecimal() メソッドの基本的な例

ここでは、Python の文字列に対する isdecimal() メソッドの使い方を説明します。

string1="1010"
print("String is: ",string1)
print("Result: ",string1.isdecimal())
 
string2="a10101"
print("String is: ",string2)
print("Result: ",string2.isdecimal())

結果は以下の通りです。

String is1010
Result:  True
String is:  a10101
Result:  False

ここで

  • String1 はすべて 10 進文字で構成されています。したがって、 string1.isdecimal() 文は True という結果を返します。
  • 一方、string2 には ‘a’ という文字が含まれています。一方、string2 には ‘a’ という文字があります。string2 はすべての 10 進文字で構成されていないため、この場合の結果は False です。

注意:Python の isdecimal() メソッドは、分数、下付き文字、上付き文字、その他の Unicode で実装された文字を 10 進文字または数字文字として考慮しません。

したがって、文字列中にこれらの数値文字が存在する場合、このメソッドは False を返します。

Python isdecimal() の動作について

Python の文字列を扱うメソッド isdecimal() がどのように動作し、何を返すかを説明します。

# . is not considered as decimal character
string1="55.55"
print("String is: ",string1)
print("Result: ",string1.isdecimal())
 
#Pure character string
string2="Python"
print("String is: ",string2)
print("Result: ",string2.isdecimal())
 
#U+2082 unicode for subscript 2
string3="222u2082"
print("String is: ",string3)
print("Result: ",string3.isdecimal())
 
#U+2074 unicode for superscript 4
string4="34u2074"
print("String is: ",string4)
print("Result: ",string4.isdecimal())
 
#U+2152unicode for 1/10 fraction
string5="10u2152"
print("String is: ",string5)
print("Result: ",string5.isdecimal())
 
#@ not considered as decimal character
string6="@1234"
print("String is: ",string6)
print("Result: ",string6.isdecimal())

結果は以下の通りです。

Isdecimal Example
isdecimal() Example Output

上のコードでは

  • 文字列1に対して、 isdecimal() メソッドは false を返します。これは、数字の間にドット(.)文字があるためです。このメソッドは、この文字を10進文字ではないと判断します。
  • 文字列2についても、文字列は完全に、あるいは純粋に文字だけで構成されているため、このメソッドは false という結果を返します。
  • 文字列3、文字列4、文字列5のすべての文字列についてです。これらの文字列はすべて、数字以外の文字に対応する Unicode 値を含んでいるので、 isdecimal() メソッドは false を返します。
  • これは、文字列が ‘@’ 文字を含んでおり、それがまた非十進文字であるためです。

まとめ

この記事では、Python の組み込み文字列 isdecimal() メソッドについて、その使用方法と動作について学びました。

何か質問があれば、以下にコメントしてください。

タイトルとURLをコピーしました