Python: Conseils d'optimisation?

Bonjour, j’aimerai savoir si c’est possible d’optimiser ou améliorer cette fonction python que j’ai conçu,

def ObtenirTypeRéel(a): # Défini la fonction avec le nom ObtenirTypeRéel et un seul paramétre 
    if  type(a) != str: # Vérifie  que la valeur reçu est bien un string
        return None # Renvoie rien et quitte la fonction
    a = a.strip() # On retire les espaces et les retours a lignes qui sont inutile
    est_int = True # On défini une variable qui represente si la valeur reçu est un int, on suppose que c'est un int donc True
    for c in a: # Une boucle for qui permet de traverser chaque caractere de notre valeur reçu (string)
        if c not in "0123456789": # On verifie que  chaque caractere est un chiffre
            est_int = False # Modifie la variable pour dire que ce n'est pas un int
            break # quitte la boucle car il ya une lettre au lieu d'un chiffre
    if est_int: # Si la verification ne modifie pas cette variable, on deduis que c'est un int
        return "int" # Retourne int
    else: # si c'est pas un int alors 
        return "str" # Retourne str

Cette fonction a pour but, de verifier si un string contient que des chiffres et pas de lettre alors cela va retourner int sinon str

Désoler si ma documentation ne paraît pas clair

si quelqu’un a des conseils, je suis prêt a vous écoutez avec plaisir

Bonjour, le code est bon, il y aurait juste le if de fin qui serait à simplifier.

def ObtenirTypeRéel(a): # Défini la fonction avec le nom ObtenirTypeRéel et un seul paramétre 

    if  type(a) != str: # Vérifie  que la valeur reçu est bien un string

        return None # Renvoie rien et quitte la fonction

    a = a.strip() # On retire les espaces et les retours a lignes qui sont inutile

    for c in a: # Une boucle for qui permet de traverser chaque caractere de notre valeur reçu (string)

        if c not in "0123456789": # On verifie que  chaque caractere est un chiffre
            return "str" # quitte la boucle car il ya une lettre au lieu d'un chiffre
    return "int"

Il peut y avoir des problèmes d’indentation, je l’ai fait sur téléphone

Ah oui je n’avais pas fait gaffe a ça, merci pour la correction.

Pas vraiment d’optimisation en terme de temps en supprimant le else.
En faisant tourner un grand nombre de fois le programme avec et sans le else, et en calculant le temps total, on ne note pas de différence…

1 « J'aime »

Parfait, merci

A mon avis sans le else, cela rend le code + propre de mon point de vue.