web-dev-qa-db-fra.com

"from math import sqrt" fonctionne mais "import math" ne fonctionne pas. Quelle est la raison?

Je suis assez nouveau dans la programmation, juste en apprenant le python.

J'utilise Komodo Edit 9.0 pour écrire des codes. Ainsi, lorsque j'écris "from math import sqrt", je peux utiliser la fonction "sqrt" sans problème. Mais si j'écris seulement "import math", alors la fonction "sqrt" de ce module ne fonctionne pas. Quelle est la raison derrière cela? Puis-je résoudre ce problème?

4

Vous avez deux options:

import math
math.sqrt()

importera le module math dans son propre espace de noms. Cela signifie que les noms de fonction doivent être précédés de math. C'est une bonne pratique car cela évite les conflits et ne remplace pas une fonction déjà importée dans l'espace de noms actuel.

Alternativement:

from math import *
sqrt()

importera tout du module math dans l’espace de nom actuel. Cela peut être problématique .

8
fenceop

Si vous appelez uniquement import math pour appeler la fonction sqrt, procédez comme suit:

In [1]: import math

In [2]: x = 2

In [3]: math.sqrt(x)
Out[3]: 1.4142135623730951

En effet, from math import sqrt vous apporte la fonction sqrt, mais import math ne vous apporte que le module.

3
metersk

Lorsque vous utilisez uniquement import math, la fonction sqrt apparaît sous un nom différent: math.sqrt

2
randomusername

Si vous avez besoin d’une racine carrée, vous pouvez aussi simplement augmenter un nombre de 0,5.

144 ** 0.5

donne le résultat:

12.0
0
Blake