Python 正規表現 - 入力が float かどうかを確認します

WBOY
リリース: 2023-09-15 16:09:03
転載
1076 人が閲覧しました

Python正则表达式 - 检查输入是否为浮点数

浮動小数点数は、数学的計算からデータ分析まで、さまざまなプログラミング タスクにおいて重要な役割を果たします。ただし、ユーザー入力または外部ソースからのデータを扱う場合は、入力が有効な浮動小数点数であることを確認することが重要になります。 Python は、この課題に対処するための強力なツールを提供します。その 1 つが正規表現です。

この記事では、Python で正規表現を使用して入力が浮動小数点数かどうかを確認する方法を説明します。正規表現 (正規表現とも呼ばれます) は、パターンを定義し、テキスト内の一致を検索するための簡潔かつ柔軟な方法を提供します。正規表現を活用することで、浮動小数点形式に正確に一致するパターンを構築し、それに応じて入力を検証できます。

この記事では、Python で正規表現を使用して入力が浮動小数点数かどうかを確認する方法を説明します。正規表現 (正規表現とも呼ばれます) は、パターンを定義し、テキスト内の一致を検索するための簡潔かつ柔軟な方法を提供します。正規表現を活用することで、浮動小数点形式に正確に一致するパターンを構築し、それに応じて入力を検証できます。

浮動小数点数について理解する

浮動小数点数は、コンピュータ システムで実数を表すために使用されるデータ型です。小数点は「浮動小数点」でさまざまなサイズの数値を表すことができるため、「浮動小数点」と呼ばれます。 Python では、浮動小数点数は float データ型を使用して表現されます。

浮動小数点数は整数部分と小数部分の両方を持つことができ、正または負の値をとることができます。これらは通常、m.n の形式で書かれます。ここで、m は整数部分を表し、n は小数部分を表します。たとえば、3.14 と -0.5 は有効な浮動小数点数です。

ただし、コンピュータのハードウェアの制限により、すべての 10 進表現を浮動小数点数として正確に表現できるわけではないことに注意してください。これにより、浮動小数点数を含む計算で予期しない結果が生じる場合があります。したがって、入力を検証し、期待される形式に準拠していることを確認することが重要になります。

次のセクションでは、正規表現を検討し、正規表現を使用して入力が有効な浮動小数点数であるかどうかを確認する方法を学びます。

正規表現の概要

正規表現 (正規表現と略されることが多い) は、パターン マッチングとテキスト操作のための強力なツールです。これらは、パターンを定義し、文字列内の特定の文字シーケンスを検索するための簡潔かつ柔軟な方法を提供します。

Python では、re モジュールは正規表現を使用するための関数とメソッドを提供します。正規表現の力を利用して、入力が有効な浮動小数点数であるかどうかを確認できます。

正規表現を使用して浮動小数点数を検証するには、予期される形式と一致するパターンを定義する必要があります。以下はパターンの主要なコンポーネントです。

  • オプションの記号 数値は、オプションの正符号 ( ) または負符号 (-) で始めることができます。

  • 整数部分 数値には、1 つ以上の数字で構成されるオプションの整数部分を含めることができます。

  • オプションの小数点 数値には、整数部分と小数部分を区切るために、オプションの小数点 (.) を含めることができます。

  • 小数部 数値には、1 つ以上の数字からなるオプションの小数部を含めることができます。

  • 指数 数値には、文字「e」または「E」で表されるオプションの指数部があり、その後にオプションの記号と 1 つが続きます。またはそれ以上の数。

これらのコンポーネントを含む正規表現パターンを構築することで、入力文字列が浮動小数点パターンと一致するかどうかを効果的にチェックできます。

次のセクションでは、正規表現を使用して浮動小数点数をチェックする Python プログラムの実装について詳しく説明します。

浮動小数点数をチェックするための Python プログラム

Python の正規表現を使用して、指定された入力が浮動小数点数であるかどうかを確認するには、次の手順に従います。-

  • re モジュールのインポート まず、正規表現を使用するための関数とメソッドを提供する re モジュールをインポートします。

  • 正規表現パターンを定義する 浮動小数点数の予期される形式と一致する正規表現パターンを作成します。このモードは入力を検証するために使用されます。

  • 関数の作成 入力文字列をパラメータとして受け取る関数を is_float と呼びます。

  • パターンの一致 re.match() 関数を使用して、入力文字列を正規表現パターンと一致させます。この関数は、パターンが文字列と一致する場合は match オブジェクトを返し、一致しない場合は None を返します。

  • 一致するかどうかを確認する if ステートメントを使用して、一致するオブジェクトが None でないかどうかを確認します。 None でない場合、入力文字列は有効な浮動小数点数です。

  • #戻り結果 if ステートメントで True を返すということは、入力が浮動小数点数であることを意味します。それ以外の場合は False を返します。

それでは、すべてをまとめて、正規表現を使用して浮動小数点数をチェックする Python コードを作成してみましょう

- リーリー

上記のコードでは、正規表現パターン r'^[- ]?[0-9]*\.?[0-9] ([eE][- ]?[0-9 ] )? を定義します。 $' は、浮動小数点数の予期される形式と一致します。 re.match() を使用して入力文字列をパターンと照合し、一致する場合は True を返します。

次のセクションでは、いくつかの入力例を使用して is_float() 関数をテストし、それがどのように機能するかを確認します。

テストプログラム

試せるテストケースをいくつか紹介します -

  • テスト ケース 1

    • 「3.14」

      と入力します。
    • 期待される出力 正解

    • #説明

      入力は有効な浮動小数点数です。

  • テスト ケース 2

    • 入力

      「-0.5」

    • 预期输出 正确

    • 说明 输入是有效的浮点数。

  • 测试用例 3 

    • 输入  “10”

    • 预期输出  错误

    • 说明 输入不是浮点数,因为它没有小数部分。

  • 测试用例 4 

    • 输入 “abc”

    • 预期输出 错误

    • 说明 输入不是浮点数,因为它包含非数字字符。

  • 测试用例 5

    • 输入 “1.23e-4”

    • 预期输出  正确

    • 说明 输入是以科学计数法表示的有效浮点数。

您可以通过使用这些输入调用 is_float() 函数并将输出与预期结果进行比较来测试程序。如果输出与所有测试用例的预期结果相匹配,则表明程序运行正常。

# Testing the program
print(is_float("3.14"))        # Expected output: True
print(is_float("-0.5"))        # Expected output: True
print(is_float("10"))          # Expected output: False
print(is_float("abc"))         # Expected output: False
print(is_float("1.23e-4"))     # Expected output: True
ログイン後にコピー

结论

在本文中,我们探讨了如何在 Python 中使用正则表达式来检查给定输入是否为浮点数。我们了解了正则表达式在模式匹配中的重要性以及如何应用它们来验证数字输入。

我们首先了解浮点数的特征以及它们的常见表示格式。然后,我们深入研究 is_float() 函数的实现,使用正则表达式检查浮点数。我们还讨论了使用 re.match() 函数进行精确字符串匹配的重要性。

通过使用多个测试用例对程序进行测试,我们确保了其可靠性,并验证了它能够正确识别浮点数,同时拒绝无效输入。

以上がPython 正規表現 - 入力が float かどうかを確認しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!