Maison >développement back-end >Tutoriel Python >Comment puis-je vérifier efficacement si une chaîne représente un entier sans utiliser Try/Except ?

Comment puis-je vérifier efficacement si une chaîne représente un entier sans utiliser Try/Except ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-14 10:13:11328parcourir

How Can I Efficiently Check if a String Represents an Integer Without Using Try/Except?

Vérification de la représentation d'entiers de chaîne : une approche alternative pour essayer/exclure

Dans cet article, nous explorons des méthodes pour déterminer si une chaîne représente un entier sans recourir à l’approche try/sauf. Ceci est particulièrement utile dans les scénarios où les performances et la gestion des exceptions sont critiques.

Utilisation de la méthode .isdigit() pour les entiers positifs

La méthode .isdigit() dans les vérifications Python si une chaîne est composée uniquement de chiffres. Bien qu'efficace pour les entiers positifs, il échoue avec les valeurs négatives.

'16'.isdigit()  # True

Gestion des entiers négatifs

Pour prendre en compte les entiers négatifs, nous pouvons exploiter le découpage de chaînes et le . isdigit() comme suit :

s = '-17'
s.startswith('-') and s[1:].isdigit()  # True

Cette instruction conditionnelle garantit que la chaîne commence par un trait d'union (-) et les caractères restants sont des chiffres.

Exclusion des nombres à virgule flottante

Cependant, cette approche n'exclut pas les chaînes comme « 16.0 » qui ressemblent à entiers dans le contexte de la conversion d’entiers. Pour cela, nous pouvons améliorer notre logique avec une fonction personnalisée :

def check_int(s):
    if s[0] in ('-', '+'):
        return s[1:].isdigit()
    return s.isdigit()

Cette fonction gère les entiers positifs et négatifs en vérifiant si la chaîne commence par un signe, puis en vérifiant que les caractères restants sont des chiffres.

En employant ces méthodes, vous pouvez déterminer efficacement si une chaîne représente un entier sans utiliser try/sauf, offrant une exécution plus rapide et un contrôle accru sur la gestion des exceptions.

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!

Déclaration:
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