Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Damien Wyart
* François Couloigner in fr.comp.lang.python:
Bonjour, Voulant saisir une grande valeur numérique j'écris (python 3.2): chaine = input() n = int(chaine) # ou float(chaine)
Si je saisis 10**3 lors de l'exécution j'obtiens le message : ValueError: invalid literal for int() with base 10: '10**3' Pourquoi ?
La documentation de int(), http://docs.python.org/py3k/library/functions.html#int, précise bien que la chaine ne doit contenir que des "chiffres" (au sens large pour une base > 10) et un signe optionnel.
Dans votre exemple on peut essayer de détecter que l'opérateur ** est présent dans la chaîne et appeler eval() dessus pour la transformer en entier par évaluation.
-- DW
* François Couloigner <mcurie@free.fr> in fr.comp.lang.python:
Bonjour,
Voulant saisir une grande valeur numérique j'écris (python 3.2):
chaine = input()
n = int(chaine) # ou float(chaine)
Si je saisis 10**3 lors de l'exécution j'obtiens le message :
ValueError: invalid literal for int() with base 10: '10**3'
Pourquoi ?
La documentation de int(),
http://docs.python.org/py3k/library/functions.html#int, précise bien que
la chaine ne doit contenir que des "chiffres" (au sens large pour une
base > 10) et un signe optionnel.
Dans votre exemple on peut essayer de détecter que l'opérateur ** est
présent dans la chaîne et appeler eval() dessus pour la transformer en
entier par évaluation.
Bonjour, Voulant saisir une grande valeur numérique j'écris (python 3.2): chaine = input() n = int(chaine) # ou float(chaine)
Si je saisis 10**3 lors de l'exécution j'obtiens le message : ValueError: invalid literal for int() with base 10: '10**3' Pourquoi ?
La documentation de int(), http://docs.python.org/py3k/library/functions.html#int, précise bien que la chaine ne doit contenir que des "chiffres" (au sens large pour une base > 10) et un signe optionnel.
Dans votre exemple on peut essayer de détecter que l'opérateur ** est présent dans la chaîne et appeler eval() dessus pour la transformer en entier par évaluation.