Pythonで文字列が有効な数値かどうかを判定する方法
数値や小数点を含む文字列が与えられたとき、その文字列が実際に数値として有効かどうかを判定する方法を解説します。例えば、入力が「2.5」であれば結果は True となり、「xyz」のような文字列であれば False となります。
解決のアプローチ
この問題を解決するには、以下の手順に従います。
- プログラミング言語が持つ文字列パース(型変換)の仕組みを利用します。
- 文字列を数値に変換しようと試みます。変換が成功して例外が発生しなければ、その文字列は数値として有効です。
- 逆に、変換時に例外(
ValueErrorなど)が発生した場合は、数値ではないと判断できます。
実装例
以下のコードは、float() 関数と例外処理(try-except)を使ったシンプルな実装です。
def isNumeric(s):
s = s.strip() # 前後の空白を削除
try:
s = float(s) # 数値への変換を試みる
return True
except:
return False
print(isNumeric("0.2"))
print(isNumeric("xyz"))
print(isNumeric("Hello"))
print(isNumeric("-2.5"))
print(isNumeric("10"))入力
"0.2" "abc" "Hello" "-2.5" "10"
出力
True False False True True
コードのポイント
s.strip():文字列の前後にある余分な空白を取り除くことで、「 10 」のような入力も正しく判定できるようにしています。float(s):整数だけでなく小数や負の数(例:「-2.5」)にも対応した汎用的な判定が可能です。try-except:変換に失敗した場合にプログラムがクラッシュするのを防ぎ、安全にFalseを返します。
この手法は、ユーザー入力のバリデーションやCSVデータの数値チェックなど、さまざまな場面で活用できる基本的かつ実用的なテクニックです。
-
Pythonで文字列がパングラムかどうかを判定するプログラムの作成方法
本記事では、与えられた文字列がパングラムであるかどうかを判定するPythonプログラムの解法とアプローチについて詳しく解説します。 問題の概要 文字列入力が与えられたとき、その文字列がパングラムであるかどうかを判定するPythonプログラムを作成します。 パングラムとは? パングラムとは、英語のアルファベット26文字すべてを少なくとも1回ずつ含む文章や一連の単語のことです。有名な例として「The quick brown fox jumps over the lazy dog」があります。 解法のアプローチ この問題は、以下の手順で解くことができます。 アルファベット全体を表す基準となる文字列
-
Pythonで与えられた数値がフィボナッチ数かどうかを判定する方法
本記事では、与えられた数値がフィボナッチ数であるかどうかを判定する問題の解決策について解説します。 問題の定義 ある数値 n が与えられたとき、その数値がフィボナッチ数であるかどうかを判定します。 第 n 項のフィボナッチ数は、直前の2つのフィボナッチ数の和として定義されることは広く知られています。しかし、フィボナッチ数列には漸化式以外にも興味深い数学的性質があります。 フィボナッチ数の判定条件 ある数値 n がフィボナッチ数であるのは、「5×n² + 4」または「5×n² − 4」のいずれかが完全平方数であるとき、かつそのときに限る この性質を利用すれば、フィボナッチ数列を実際に生成しなくて