Hola acabo de iniciarme en Python, y tengo el siguiente problema:
import math
a=raw_input("Ingresa a")
b=raw_input("Ingresa b")
c=raw_input("Ingresa c")
z=pow(b,2)
d=z-4*a*c
if d>0:
w=sqrt(d)
x1=(-b+w)/(2*a)
x2=(-b-w)/(2*a)
print x1
print x2
elif d==0:
x=-b/(2*a)
print x
else:
print "No hay solucion en reales"
Pero me larga el siguiente error:
<module>
z=pow(b,2)
TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
¿A qué se debe?
Citar¿A qué se debe?
z=pow(b,2)
Cual es el problema? ... el problema es que raw_input devuelve un valor de tipo
string, por lo que al querer elevar la
b da error, .. letra al cuadrado = error :P
Debes de hacer algo como:
a=int(input("Ingresa a"))
También nota que he sustituído el raw_input por input, ya que a partir de la versión 3 de python se ha reemplazado dicha función (quizás has descargado python 2.6), por lo que deja de funcionar
Saludos
a=int(input("Ingresa a"))
Eso era precisamente, hace unas horas comencé a leer la propia documentación de Python. Muchas gracias Novlucker, aqui dejo el código:
import math
a=input("Ingresa a")
b=input("Ingresa b")
c=input("Ingresa c")
z=pow(b,2)
d=z-4*a*c
if d>0:
w=math.sqrt(d)
x1=(-b+w)/(2*a)
x2=(-b-w)/(2*a)
print x1
print x2
elif d==0:
x=-b/(2*a)
print x
else:
print "No hay solucion en reales"
Solo me ha quedado una duda. En python es necesario declarar los tipos de variables? Estuve leyendo un manual y hasta ahora no he visto que lo haga :-\ o tal vez se me salteó :S
Un saludo!
En realidad es una de las características de python .. el tipado dinámico .. lo que quiere decir que no es necesario declarar el tipo de una variable, sino que el tipo se determina en tiempo de ejecución según el valor que se le haya asignado :P
Si no estas seguro que tipo de dato contiene una variable puedes averiguarlo con type, revisando tu primer ejemplo
a=input("Ingresa a")
print(type(a))
Saludos :D
CitarSi no estas seguro que tipo de dato contiene una variable puedes averiguarlo con type
Claro eso es lo que ejemplificaba el libro. :-\
Citarno es necesario declarar el tipo de una variable, sino que el tipo se determina en tiempo de ejecución según el valor que se le haya asignado
:xD Muchas gracias, esto me ha aclarado el panorama.
Un Saludo!