Sqrt em Python 3

1,209 views
Skip to first unread message

Lucas Cunha

unread,
Dec 15, 2011, 1:33:15 PM12/15/11
to python-brasil
Boa tarde, amigos.

Estou com uma dúvida muito elementar, mas ainda assim está um tanto
difícil para eu resolver este problema.

Estou iniciando meus estudos em Pyhton por conta própria e, para isto,
achei interessante resolver todas as listas de exercícios propostas no
site do Python Brasil.

Um dos exercícios pede para escrever um código que resolva uma equacao
do segundo grau. Usando baskhara isto fica fácil. O delta eu consegui
obter sem dificuldade:

delta = b*b - 4 * a * c

No entanto, para aplicar a fórmula, preciso obter a raiz quadrada de
delta.

Tentei assim: "sqrt(delta)"

E tentei assim: math.sqrt(delta)

Tentei utilizando o "import math" no início do código.

Tentei também com o "from math import sqrt".

Mas nada resolveu. Os erros que aparecem alternam entre:

NameError: name 'sqrt' is not defined

ValueError: math domain error

Podem me ajudar a entender como se usa a função "sqrt()" em Python?

Desde já agradeço a atenção de todos.

***

OBS1.: Estou usando Python 3.2.2

OBS2: Já pesquisei bastante pela internet, inclusive pelo Google Code
Search. Encontrei um caso parecido aqui, mas realmente não foi o
suficiente. =/

Daniel Batista Lemes

unread,
Dec 15, 2011, 1:37:02 PM12/15/11
to python...@googlegroups.com
Se tu usar import math dica assim

import math 
math.strq(25)

se usar from math...

from math import sqrt

sqrt(25)




--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar

<*> Para visitar o site do grupo na web, acesse:
   http://groups.google.com/group/python-brasil

<*> Para sair deste grupo, envie um e-mail para:
   python-brasi...@googlegroups.com



--


@lemes_daniel

Christian S. Perone

unread,
Dec 15, 2011, 1:37:54 PM12/15/11
to python...@googlegroups.com
Ele está dando o erro "ValueError: math domain error" porque o seu delta deve estar negativo.

--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar

<*> Para visitar o site do grupo na web, acesse:
   http://groups.google.com/group/python-brasil

<*> Para sair deste grupo, envie um e-mail para:
   python-brasi...@googlegroups.com



--
"Forgive, O Lord, my little jokes on Thee, and I'll forgive Thy great big joke on me."
http://pyevolve.sourceforge.net/wordpress/

Leonardo Santagada

unread,
Dec 15, 2011, 1:47:00 PM12/15/11
to python...@googlegroups.com
2011/12/15 Christian S. Perone <christia...@gmail.com>:

> Ele está dando o erro "ValueError: math domain error" porque o seu delta
> deve estar negativo.

e um jeito de resolver é:

In [20]: import cmath

In [21]: cmath.sqrt(-1)
Out[21]: 1j

E divirta-se com o suporte nativo a números complexos do python :)

--
Leonardo Santagada

Lucas Cunha

unread,
Dec 15, 2011, 2:26:35 PM12/15/11
to python-brasil
Daniel Batista Lemes, Christian S. Perone e Leonardo Santagada, muito
obrigado pela atenção e pelas dicas.
Verifiquei que realmente eu estava obtendo uma raiz negativa, por isso
o erro. Em testes com deltas positivos deu certo.
Adicionei uma condição em que, se a raiz for negativa, apresento uma
mensagem informando que não possui raizes reais - que inclusive já era
uma condição prevista no exercício.
Ah, e quanto a este recurso para resolver raizes negativas, será muito
útil mais pra frente, quando estiver trabalhando cálculos mais
complexos.
Mais uma vez, obrigado! =)
Reply all
Reply to author
Forward
0 new messages