Je suis un débutant en python et ne peux pas comprendre pourquoi cela se produit:
from math import *
print "enter the number"
n=int(raw_input())
d=2
s=0
while d<n :
if n%d==0:
x=math.log(d)
s=s+x
print d
d=d+1
print s,n,float(n)/s
L'exécuter en Python et entrer un non premier donne l'erreur
Traceback (most recent call last):
File "C:\Python27\mit ocw\pset1a.py", line 28, in <module>
x=math.log(d)
NameError: name 'math' is not defined
4 réponses
Changement
from math import *
À
import math
L'utilisation de from X import *
n'est généralement pas une bonne idée car elle pollue de manière incontrôlable l'espace de noms global et pourrait présenter d'autres difficultés.
Tu as fait une erreur ..
Quand tu as écrit:
from math import *
# This imports all the functions and the classes from math
# log method is also imported.
# But there is nothing defined with name math
Donc, lorsque vous essayez d'utiliser math.log
Cela vous donne une erreur, donc:
Remplacer math.log
par log
Ou
Remplacer from math import *
par import math
Cela devrait résoudre le problème.
Que diriez-vous (lorsque vous n'avez besoin que de math.pi
):
from math import pi as PI
Puis l'utiliser comme symbole PI
?
Vous devez import math
plutôt que from math import *
.
Questions connexes
Questions liées
De nouvelles questions
python
Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.