Heim >Backend-Entwicklung >Python-Tutorial >Regulärer Python-Ausdruck – prüfen Sie, ob die Eingabe eine Gleitkommazahl ist

Regulärer Python-Ausdruck – prüfen Sie, ob die Eingabe eine Gleitkommazahl ist

WBOY
WBOYnach vorne
2023-09-15 16:09:031261Durchsuche

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

Gleitkommazahlen spielen eine wichtige Rolle bei verschiedenen Programmieraufgaben, von mathematischen Berechnungen bis hin zur Datenanalyse. Beim Umgang mit Benutzereingaben oder Daten aus externen Quellen ist es jedoch wichtig zu überprüfen, ob es sich bei der Eingabe um eine gültige Gleitkommazahl handelt. Python bietet leistungsstarke Tools zur Bewältigung dieser Herausforderung, darunter reguläre Ausdrücke.

In diesem Artikel erfahren Sie, wie Sie mit regulären Ausdrücken in Python prüfen, ob die Eingabe eine Gleitkommazahl ist. Reguläre Ausdrücke (oft als Regex bezeichnet) bieten eine präzise und flexible Möglichkeit, Muster zu definieren und nach Übereinstimmungen im Text zu suchen. Durch die Nutzung regulärer Ausdrücke können wir ein Muster erstellen, das genau dem Gleitkommaformat entspricht, und die Eingabe entsprechend validieren.

In diesem Artikel erfahren Sie, wie Sie mit regulären Ausdrücken in Python prüfen, ob es sich bei der Eingabe um eine Gleitkommazahl handelt. Reguläre Ausdrücke (oft als Regex bezeichnet) bieten eine präzise und flexible Möglichkeit, Muster zu definieren und nach Übereinstimmungen im Text zu suchen. Durch die Nutzung regulärer Ausdrücke können wir ein Muster erstellen, das genau dem Gleitkommaformat entspricht, und die Eingabe entsprechend validieren.

Gleitkommazahlen verstehen

Gleitkommazahlen sind ein Datentyp, der zur Darstellung reeller Zahlen in Computersystemen verwendet wird. Sie werden „Gleitkomma“ genannt, weil der Dezimalpunkt „gleitend“ sein kann, um Zahlen unterschiedlicher Größe darzustellen. In Python werden Gleitkommazahlen mithilfe des Datentyps float dargestellt.

Gleitkommazahlen können sowohl einen ganzzahligen als auch einen dezimalen Teil haben und positiv oder negativ sein. Sie werden normalerweise in der Form m.n geschrieben, wobei m den ganzzahligen Teil und n den Bruchteil darstellt. Beispielsweise sind 3,14 und -0,5 gültige Gleitkommazahlen.

Es ist jedoch wichtig zu beachten, dass aufgrund von Einschränkungen der Computerhardware nicht alle Dezimaldarstellungen genau als Gleitkommazahlen dargestellt werden können. Dies kann bei Berechnungen mit Gleitkommazahlen manchmal zu unerwarteten Ergebnissen führen. Daher ist es wichtig, die Eingabe zu validieren und sicherzustellen, dass sie dem erwarteten Format entspricht.

Im nächsten Abschnitt werden wir reguläre Ausdrücke untersuchen und lernen, wie man sie verwendet, um zu überprüfen, ob die Eingabe eine gültige Gleitkommazahl ist.

Einführung in reguläre Ausdrücke

Reguläre Ausdrücke (oft als Regex abgekürzt) sind leistungsstarke Werkzeuge für den Mustervergleich und die Textmanipulation. Sie bieten eine übersichtliche und flexible Möglichkeit, Muster zu definieren und nach bestimmten Zeichenfolgen in Zeichenfolgen zu suchen.

In Python stellt das re-Modul Funktionen und Methoden zur Verwendung regulärer Ausdrücke bereit. Wir können die Leistungsfähigkeit regulärer Ausdrücke nutzen, um zu überprüfen, ob die Eingabe eine gültige Gleitkommazahl ist.

Um Gleitkommazahlen mithilfe regulärer Ausdrücke zu validieren, müssen wir ein Muster definieren, das dem erwarteten Format entspricht. Hier sind die Schlüsselkomponenten des Musters

  • Optionale Symbole Zahlen können mit einem optionalen positiven (+) oder negativen (-) Vorzeichen beginnen.

  • Ganzzahliger Teil Zahlen können einen optionalen ganzzahligen Teil haben, der aus einer oder mehreren Ziffern bestehen kann.

  • Optionaler Dezimalpunkt Zahlen können einen optionalen Dezimalpunkt (.) enthalten, um die Ganzzahl- und Dezimalteile zu trennen.

  • Dezimalteil Zahlen können einen optionalen Dezimalteil haben, der aus einer oder mehreren Ziffern besteht.

  • Exponent Zahlen können einen optionalen Exponententeil haben, dargestellt durch den Buchstaben „e“ oder „E“, gefolgt von einem optionalen Symbol und einer oder mehreren Ziffern.

Indem wir ein reguläres Ausdrucksmuster erstellen, das diese Komponenten enthält, können wir effektiv prüfen, ob die Eingabezeichenfolge mit dem Gleitkommamuster übereinstimmt.

Im nächsten Abschnitt werden wir uns mit der Implementierung eines Python-Programms befassen, das reguläre Ausdrücke zur Überprüfung von Gleitkommazahlen verwendet.

Python-Programm zur Überprüfung von Gleitkommazahlen

Um mithilfe regulärer Ausdrücke in Python zu überprüfen, ob eine bestimmte Eingabe ein Float ist, können wir diese Schritte ausführen

  • Re-Modul importieren Importieren Sie zunächst das Re-Modul, das Funktionen und Methoden für die Verwendung regulärer Ausdrücke bereitstellt.

  • Muster für reguläre Ausdrücke definieren Erstellen Sie ein Muster für reguläre Ausdrücke, das dem erwarteten Format einer Gleitkommazahl entspricht. Dieser Modus wird zur Validierung der Eingabe verwendet.

  • Funktion erstellen Definieren Sie eine Funktion, nennen wir sie is_float, die die Eingabezeichenfolge als Parameter verwendet.

  • Übereinstimmungsmuster Verwenden Sie die Funktion re.match(), um die Eingabezeichenfolge mit einem regulären Ausdrucksmuster abzugleichen. Diese Funktion gibt ein Match-Objekt zurück, wenn das Muster mit der Zeichenfolge übereinstimmt, oder None, wenn es nicht übereinstimmt.

  • Überprüfen Sie, ob eine Übereinstimmung vorliegt Verwenden Sie eine if-Anweisung, um zu überprüfen, ob das übereinstimmende Objekt nicht None ist. Wenn nicht „None“, ist die Eingabezeichenfolge eine gültige Gleitkommazahl.

  • Ergebnis zurückgeben Geben Sie innerhalb der if-Anweisung „True“ zurück, um anzugeben, dass die Eingabe eine Gleitkommazahl ist. Andernfalls wird False zurückgegeben.

Lassen Sie uns nun alles zusammenfassen und Python-Code schreiben, um Gleitkommazahlen mithilfe regulärer Ausdrücke zu überprüfen

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

Im obigen Code definieren wir das reguläre Ausdrucksmuster r'^[-+]?[0-9]*.?[0-9]+([eE][-+]?[0-9 ] +) ?$', das dem erwarteten Format einer Gleitkommazahl entspricht. Wir verwenden re.match(), um die Eingabezeichenfolge mit dem Muster abzugleichen und geben True zurück, wenn sie übereinstimmt.

Im nächsten Abschnitt testen wir die Funktion is_float() anhand einiger Beispieleingaben, um zu sehen, wie sie funktioniert.

Testprogramm

Hier sind einige Testfälle, die wir ausprobieren können -

  • Testfall 1

    • Geben Sie „3.14“

    • ein
    • Erwartete Ausgabe Richtig

    • Erläuterung Die Eingabe ist eine gültige Gleitkommazahl.

  • Testfall 2

    • Geben Sie „-0,5“

      ein
    • 预期输出 正确

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

  • 测试用例 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() 函数进行精确字符串匹配的重要性。

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

Das obige ist der detaillierte Inhalt vonRegulärer Python-Ausdruck – prüfen Sie, ob die Eingabe eine Gleitkommazahl ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:__future__-Modul in PythonNächster Artikel:__future__-Modul in Python