Expression régulière Python - vérifiez si l'entrée est flottante

WBOY
Libérer: 2023-09-15 16:09:03
avant
1149 Les gens l'ont consulté

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

Les nombres à virgule flottante jouent un rôle essentiel dans diverses tâches de programmation, des calculs mathématiques à l'analyse des données. Cependant, lorsqu'il s'agit d'entrées utilisateur ou de données provenant de sources externes, il devient essentiel de vérifier que l'entrée est un nombre à virgule flottante valide. Python fournit des outils puissants pour relever ce défi, parmi lesquels les expressions régulières.

Dans cet article, nous explorerons comment utiliser des expressions régulières en Python pour vérifier si l'entrée est un nombre à virgule flottante. Les expressions régulières (souvent appelées regex) offrent un moyen concis et flexible de définir des modèles et de rechercher des correspondances dans le texte. En tirant parti des expressions régulières, nous pouvons construire un modèle qui correspond exactement au format à virgule flottante et valider l'entrée en conséquence.

Dans cet article, nous explorerons comment utiliser des expressions régulières en Python pour vérifier si l'entrée est un nombre à virgule flottante. Les expressions régulières (souvent appelées regex) offrent un moyen concis et flexible de définir des modèles et de rechercher des correspondances dans le texte. En tirant parti des expressions régulières, nous pouvons construire un modèle qui correspond exactement au format à virgule flottante et valider l'entrée en conséquence.

Comprendre les nombres à virgule flottante

Les nombres à virgule flottante sont un type de données utilisé pour représenter des nombres réels dans les systèmes informatiques. Ils sont appelés « virgule flottante » car la virgule décimale peut « flotter » pour représenter des nombres de tailles différentes. En Python, les nombres à virgule flottante sont représentés à l'aide du type de données float.

Les nombres à virgule flottante peuvent avoir à la fois une partie entière et une partie décimale, et peuvent être positifs ou négatifs. Ils sont généralement écrits sous la forme m.n, où m représente la partie entière et n représente la partie fractionnaire. Par exemple, 3,14 et -0,5 sont des nombres à virgule flottante valides.

Cependant, il est important de noter qu'en raison des limitations du matériel informatique, toutes les représentations décimales ne peuvent pas être représentées avec précision sous forme de nombres à virgule flottante. Cela peut parfois conduire à des résultats inattendus pour les calculs impliquant des nombres à virgule flottante. Il devient donc essentiel de valider l’entrée et de s’assurer qu’elle est conforme au format attendu.

Dans la section suivante, nous explorerons les expressions régulières et apprendrons à les utiliser pour vérifier si l'entrée est un nombre à virgule flottante valide.

Introduction aux expressions régulières

Les expressions régulières (souvent abrégées en regex) sont des outils puissants pour la correspondance de modèles et la manipulation de texte. Ils offrent un moyen concis et flexible de définir des modèles et de rechercher des séquences de caractères spécifiques dans des chaînes.

En Python, le module re fournit des fonctions et des méthodes pour utiliser des expressions régulières. Nous pouvons exploiter la puissance des expressions régulières pour vérifier si l'entrée est un nombre à virgule flottante valide.

Pour valider les nombres à virgule flottante à l'aide d'expressions régulières, nous devons définir un modèle qui correspond au format attendu. Voici les éléments clés du patron

  • Symboles facultatifs Les nombres peuvent commencer par un signe positif (+) ou négatif (-) facultatif.

  • Partie entière Les nombres peuvent avoir une partie entière facultative, qui peut être composée d'un ou plusieurs chiffres.

  • Point décimal facultatif Les nombres peuvent contenir un point décimal facultatif (.) pour séparer les parties entières et décimales.

  • Partie décimale Les nombres peuvent avoir une partie décimale facultative composée d'un ou plusieurs chiffres.

  • Exposant Les nombres peuvent avoir une partie exposant facultative, représentée par la lettre « e » ou « E », suivie d'un symbole facultatif et d'un ou plusieurs chiffres.

En construisant un modèle d'expression régulière contenant ces composants, nous pouvons vérifier efficacement si la chaîne d'entrée correspond au modèle de nombre à virgule flottante.

Dans la section suivante, nous approfondirons l'implémentation d'un programme Python qui utilise des expressions régulières pour vérifier les nombres à virgule flottante.

Programme Python pour vérifier les nombres à virgule flottante

Pour vérifier si une entrée donnée est un float à l'aide d'expressions régulières en Python, nous pouvons suivre ces étapes

  • Importez le module re Importez d'abord le module re, qui fournit des fonctions et des méthodes pour utiliser les expressions régulières.

  • Définir un modèle d'expression régulière Créez un modèle d'expression régulière qui correspond au format attendu d'un nombre à virgule flottante. Ce mode sera utilisé pour valider la saisie.

  • Créer une fonction Définissez une fonction, appelons-la is_float, qui prend la chaîne d'entrée comme paramètre.

  • Match pattern Utilisez la fonction re.match() pour faire correspondre la chaîne d'entrée avec un modèle d'expression régulière. Cette fonction renvoie un objet match si le modèle correspond à la chaîne, ou None s'il ne correspond pas.

  • Vérifiez s'il y a une correspondance Utilisez une instruction if pour vérifier si l'objet correspondant n'est pas Aucun. Si ce n'est pas le cas, la chaîne d'entrée est un nombre à virgule flottante valide.

  • Return result Dans l'instruction if, renvoyez True pour indiquer que l'entrée est un nombre à virgule flottante. Sinon, renvoie False.

Maintenant, rassemblons tout cela et écrivons du code Python pour vérifier les nombres à virgule flottante à l'aide d'expressions régulières

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
Copier après la connexion

Dans le code ci-dessus, nous définissons le modèle d'expression régulière r'^[-+]?[0-9]*.?[0-9]+([eE][-+]?[0-9 ] +) ?$', qui correspond au format attendu d'un nombre à virgule flottante. Nous utilisons re.match() pour faire correspondre la chaîne d'entrée au modèle et renvoyer True si elle correspond.

Dans la section suivante, nous testerons la fonction is_float() en utilisant quelques exemples d'entrées pour voir comment elle fonctionne.

Programme de tests

Voici quelques cas de test que nous pouvons essayer -

  • Cas de test 1

    • Entrez « 3.14 »

    • Résultat attendu Correct

    • Explication L'entrée est un nombre à virgule flottante valide.

  • Cas de test 2

    • Entrez « -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
Copier après la connexion

结论

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

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

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!