[解決済み] 文字列が数値(float)であるかどうかを確認するにはどうすればよいですか?
2022-03-15 17:43:11
質問
Pythonで文字列が数字として表現できるかどうかを確認するための最良の方法は何ですか?
今現在、私が持っている関数は
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
これは、醜くて遅いだけでなく、不格好に見えます。しかし、私はより良い方法を見つけられていません。
float()
をmain関数内で使用することは、さらに悪いことです。
解決方法は?
<ブロッククオート醜くて遅いだけでなく
どちらも異論があります。
正規表現など文字列のパース方法は、より醜く、より遅くなります。
上記より速くなるものはあまりないかと思います。 これは、関数を呼び出して返します。 Try/Catchは、最も一般的な例外はスタックフレームを広範囲に検索することなく捕捉されるため、それほどオーバーヘッドを生じさせません。
問題は、どんな数値変換関数も2種類の結果を持つということです。
- 数字(数字が有効である場合
- 有効な数値が解析できなかったことを示すステータスコード(例:errno経由)または例外。
C言語では(例として)様々な方法でこれを回避することができます。 Pythonはそれを明確かつ明示的に示しています。
これを行うためのあなたのコードは完璧だと思います。
関連
-
[解決済み】Python elifの構文が無効です【終了しました
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] 文字列をfloatやintにパースするにはどうしたらいいですか?
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] 文字列が空かどうかを確認する方法は?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python string splicing.join()とsplitting.split()の説明
-
Python jiabaライブラリの使用方法について説明
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み】ValueError: xとyは同じサイズでなければならない