首頁 >後端開發 >Python教學 >Python正規表示式 - 檢查輸入是否為浮點數

Python正規表示式 - 檢查輸入是否為浮點數

WBOY
WBOY轉載
2023-09-15 16:09:031230瀏覽

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

浮點數在從數學計算到資料分析的各種程式設計任務中發揮著至關重要的作用。然而,當處理使用者輸入或來自外部來源的資料時,驗證輸入是否是有效的浮點數變得至關重要。 Python 提供了強大的工具來應對這項挑戰,其中一個工具就是正規表示式。

在本文中,我們將探討如何在 Python 中使用正規表示式來檢查輸入是否為浮點數。正規表示式(通常稱為 regex)提供了一種簡潔且靈活的方式來定義模式並在文字中搜尋匹配項。透過利用正規表示式,我們可以建立一個與浮點數格式精確匹配的模式,並相應地驗證輸入。

在本文中,我們將探討如何在 Python 中使用正規表示式來檢查輸入是否為浮點數。正規表示式(通常稱為 regex)提供了一種簡潔且靈活的方式來定義模式並在文字中搜尋匹配項。透過利用正規表示式,我們可以建立一個與浮點數格式精確匹配的模式,並相應地驗證輸入。

理解浮點數

浮點數是電腦系統中用來表示實數的資料型別。它們被稱為“浮點”,因為小數點可以“浮動”來表示不同大小的數字。在 Python 中,浮點數使用 float 資料型別表示。

浮點數可以同時具有整數部分和小數部分,並且可以是正數或負數。它們通常以 m.n 的形式編寫,其中 m 代表整數部分,n 代表小數部分。例如,3.14 和 -0.5 是有效的浮點數。

但是,需要注意的是,由於電腦硬體的限制,並不是所有的十進位表示都可以精確地表示為浮點數。這有時會導致涉及浮點數的計算出現意外結果。因此,驗證輸入並確保其符合預期格式變得至關重要。

在下一節中,我們將探索正規表示式並學習如何使用它們來檢查輸入是否是有效的浮點數。

正規表示式簡介

正規表示式(通常縮寫為 regex)是用於模式匹配和文字操作的強大工具。它們提供了一種簡潔而靈活的方法來定義模式並蒐索字串中的特定字元序列。

在 Python 中,re 模組提供了使用正規表示式的函數和方法。我們可以利用正規表示式的功能來檢查輸入是否為有效的浮點數。

要使用正規表示式驗證浮點數,我們需要定義一個與預期格式相符的模式。以下是該模式的關鍵組成部分

  • 可選符號  數字可以以可選的正號 ( ) 或負號 (-) 開頭。

  • #整數部分 數字可以有一個可選的整數部分,可以由一位或多位數字組成。

  • #可選小數點  數字可以包含可選的小數點 (.),以分隔整數部分和小數部分。

  • #小數部分 數字可以有一個可選的小數部分,由一位或多位數字組成。

  • #指數 數字可能有一個可選的指數部分,用字母「e」或「E」表示,後面跟著一個可選的符號和一個或多個數字。

#透過建構包含這些元件的正規表示式模式,我們可以有效地檢查輸入字串是否與浮點數模式相符。

在下一節中,我們將深入研究使用正規表示式檢查浮點數的 Python 程式的實作。

檢查浮點數的Python程式

要使用 Python 中的正規表示式檢查給定輸入是否為浮點數,我們可以按照下列步驟操作

  • 匯入 re 模組  先匯入 re 模組,該模組提供使用正規表示式的函數和方法。

  • #定義正規表示式模式  建立與浮點數的預期格式相符的正規表示式模式。此模式將用於驗證輸入。

  • #建立函數  定義一個函數,我們稱為 is_float,它將輸入字串作為參數。

  • #符合圖案  使用 re.match() 函數將輸入字串與正規表示式模式配對。如果模式與字串匹配,則此函數傳回一個匹配對象,如果不匹配,則傳回 None。

  • #檢查是否符合  使用 if 語句檢查符合物件是否不是 None。如果不是 None,則表示輸入字串是有效的浮點數。

  • #傳回結果 在 if 語句內,回傳 True 表示輸入是浮點數。否則,返回 False。

#現在,讓我們將它們放在一起並編寫 Python 程式碼以使用正規表示式檢查浮點數

import re

def is_float(input_string):
    pattern = r'^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$'
    match = re.match(pattern, input_string)
    if match:
        return True
    return False

在上面的程式碼中,我們定義了正規表示式模式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正規表示式 - 檢查輸入是否為浮點數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除