Foros del Web » Programando para Internet » Python »

Pequeña duda en Python(Iniciado)

Estas en el tema de Pequeña duda en Python(Iniciado) en el foro de Python en Foros del Web. Hola, acabo de iniciarme en python. Tengo el siguiente código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Python: Ver original import math a = raw_input ( "Ingresa a" ) ...
  #1 (permalink)  
Antiguo 05/07/2009, 16:57
Avatar de FTech  
Fecha de Ingreso: julio-2009
Mensajes: 88
Antigüedad: 14 años, 9 meses
Puntos: 0
Pequeña duda en Python(Iniciado)

Hola, acabo de iniciarme en python.
Tengo el siguiente código:

Código Python:
Ver original
  1. import math
  2. a=raw_input("Ingresa a")
  3. b=raw_input("Ingresa b")
  4. c=raw_input("Ingresa c")
  5. z=pow(b,2)
  6. d=z-4*a*c
  7. if d>0:
  8.     w=sqrt(d)
  9.     x1=(-b+w)/(2*a)
  10.     x2=(-b-w)/(2*a)
  11.     print x1
  12.     print x2
  13. elif d==0:
  14.     x=-b/(2*a)
  15.     print x
  16. else:
  17.     print "No hay solucion en reales"

Pero me larga el siguiente error:
Código:
<module>
    z=pow(b,2)
TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
¿A qué se debe?
  #2 (permalink)  
Antiguo 05/07/2009, 20:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Pequeña duda en Python(Iniciado)

Convierte a float a, b y c (float(variable))

Además, usa math.sqrt en lugar de sqrt directamente.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 06/07/2009, 08:50
Avatar de FTech  
Fecha de Ingreso: julio-2009
Mensajes: 88
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Pequeña duda en Python(Iniciado)

Exactamente David. Anoche me puse a leer la documentación de python. Y lo que pasa es que en mis entradas tenía : raw_input, cuando debería haber tenido unicamente input.

En cuanto a sqrt no entiendo por que no lo toma, si he importado mi librería :S. Igualmente aqui esta el código:
Código Python:
Ver original
  1. import math
  2. a=input("Ingresa a")
  3. b=input("Ingresa b")
  4. c=input("Ingresa c")
  5. z=pow(b,2)
  6. d=z-4*a*c
  7. if d>0:
  8.     w=math.sqrt(d)
  9.     x1=(-b+w)/(2*a)
  10.     x2=(-b-w)/(2*a)
  11.     print x1
  12.     print x2
  13. elif d==0:
  14.     x=-b/(2*a)
  15.     print x
  16. else:
  17.     print "No hay solucion en reales"
  #4 (permalink)  
Antiguo 06/07/2009, 10:26
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Pequeña duda en Python(Iniciado)

Código python:
Ver original
  1. import math
  2. a = float(raw_input("Ingresa a"))
  3. b = float(raw_input("Ingresa b"))
  4. c = float(raw_input("Ingresa c"))
  5. z = b ** 2
  6. d = z - 4 * a * c
  7. if d > 0:
  8.     w = math.sqrt(d)
  9.     x1 = (-b + w) / (2 * a)
  10.     x2=(-b - w)/(2 * a)
  11.     print x1
  12.     print x2
  13. elif d == 0:
  14.     x = -b / (2 * a)
  15.     print x
  16. else:
  17.     print "No hay solucion en reales"

input y raw_input regresan un string, por lo que tienes que hacer la conversion numero ;D
  #5 (permalink)  
Antiguo 06/07/2009, 11:50
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Pequeña duda en Python(Iniciado)

Cita:
Iniciado por FTech Ver Mensaje
En cuanto a sqrt no entiendo por que no lo toma, si he importado mi librería :S
Esto es porque has importado math, pero no todos los nombres definidos dentro de math.

Para poder hacerlo como tú quieres debes usar
Código python:
Ver original
  1. from math import *
(importar todo lo que está dentro de math)
Que no es algo recomendable en todos los casos, ya que llenas tu espacio de nombres con cosas que no necesariamente vas a usar, además de que terminas sin saber de dónde salió tal o cual función.


Saludos.
  #6 (permalink)  
Antiguo 06/07/2009, 18:15
Avatar de FTech  
Fecha de Ingreso: julio-2009
Mensajes: 88
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Pequeña duda en Python(Iniciado)

Muchas gracias por la aclaración AlvaroG. Tienes razón en cuanto a la importación de librerías; y la verdad que veo más cómodo el código cuando utilizo los nombres para cada función.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:00.