web-dev-qa-db-fra.com

Module mathématique python

Chaque fois que j'essaie d'utiliser l'une des fonctions intégrées du module d'exponentiation et de logarithmes de Python, j'obtiens une erreur comme celle-ci: 

NameError: name 'sqrt' is not defined

J'ai essayé d'utiliser math.sqrt(4), sqrt(4) et sqrt(4.0), mais aucun d'entre eux ne fonctionne. L'exception est pow, qui fonctionne comme prévu. C'est vraiment étrange et je ne suis pas sûr de ce qui ne va pas.

19
user1126849

pow est intégré au langage (il ne fait pas partie de la bibliothèque de mathématiques). Le problème est que vous n'avez pas importé de maths. 

Essaye ça:

import math
math.sqrt(4)
49
dave

Vous pouvez également importer en tant que

from math import *

Vous pouvez ensuite utiliser n’importe quelle fonction mathématique sans préfixer math. par exemple.

sqrt(4)
13
Softec

ajouter:

import math

au début. et ensuite utiliser:

math.sqrt(num)  # or any other function you seem neccessary
4
Arnab Ghosal

Vous devez dire math.sqrt lorsque vous l'utilisez. Ou bien, faites from math import sqrt.

Hmm, je viens de lire votre question plus à fond ... Comment importez-vous math? Je viens d'essayer import math et ensuite math.sqrt qui a parfaitement fonctionné. Faites-vous quelque chose comme import math as m? Si c'est le cas, vous devez préfixer la fonction avec m (ou le nom que vous avez utilisé après as).

pow fonctionne car il existe deux versions: une version toujours disponible dans __builtin__ et une autre version dans math.

2
Ethan Furman
import math #imports math module

import math as m
print(m.sqrt(25))

from math import sqrt #imports a method from math module
print(sqrt(25))

from math import sqrt as s
print(s(25))

from math import *
print(sqrt(25))
1
Kalyan Pendyala

Dans

depuis math import sqrt

Utiliser sqrt (4) fonctionne parfaitement bien. Vous devez uniquement utiliser math.sqrt (4) lorsque vous utilisez simplement "import math".

0
Abhishek