Warning: Undefined array key "DOKU_PREFS" in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/common.php on line 2082
divers_expr_reg [Les recettes Python de Tyrtamos]

Outils pour utilisateurs

Outils du site


divers_expr_reg

Warning: Undefined array key -1 in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/html.php on line 1458

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
divers_expr_reg [2008/12/11 14:37]
tyrtamos
divers_expr_reg [2008/12/11 18:37]
tyrtamos
Ligne 121: Ligne 121:
   * si en plus je veux reconnaître des nombres écrits en français (avec la virgule), il suffit que je remplace le point par une virgule dans le motif.    * si en plus je veux reconnaître des nombres écrits en français (avec la virgule), il suffit que je remplace le point par une virgule dans le motif. 
  
 +\\
 +Et voilà une fonction qui, à partir d'une chaine, renvoie un entier, un entier long, un flottant ou False (d'après une idée de eyquem: [[http://www.developpez.net/forums/d656901/autres-langages/python-zope/general-python/verifier-entree-nombre/]]).
 +
 +<code python>
 +def numbereval(x):
 +    if re.match(r"^[+-]?[0-9]+[lL]?$", x):
 +        if x!="" and x[-1] in "lL":
 +            return long(x[:-1])
 +        else:
 +            return int(x)
 +    elif re.match(r"^[+-]?(([0-9]+[eE][+-]?[0-9]+)|([0-9]+\.[0-9]*([eE][+-]?[0-9]+)?)|(\.[0-9]+([eE][+-]?[0-9]+)?))$", x):
 +        return float(x)
 +    else:
 +        return False
 +</code>
 +
 +Cette fonction détecte un entier long de 2 façon différentes:
 +
 +  * si l'entier est tellement long qu'il déborde le "int" (exemple: "55555555555555555555").
 +
 +  * si l'entier est donné avec un "l" ou un "L" à la fin (exemple: "12L").
 +
 +Et voilà le code pour le tester:
 +
 +<code python>
 +while True:
 +    y = numbereval(raw_input('x =').strip())
 +    if y:
 +        print type(y), y
 +    else:
 +        print u"ce n'est pas un nombre"
 +</code>
 +
 +\\
 +Amusez-vous bien!
  
  
divers_expr_reg.txt · Dernière modification: 2008/12/11 18:37 de tyrtamos