Ver Mensaje Individual
  #33 (permalink)  
Antiguo 17/11/2010, 13:56
Avatar de Mar91
Mar91
 
Fecha de Ingreso: octubre-2010
Mensajes: 7
Antigüedad: 14 años
Puntos: 1
Respuesta: "leer entero" muy importante

Estás usando mal print.

Cuando lo usas, lo que pongas a continuación tiene que ir entre comillas, a menos que sea una función definida.

Por ejemplo.

Código Python:
Ver original
  1. print 'Hola'
En la pantalla de texto aparecerá:
>>>>Hola

En la caso de imprimir una variable sería.
Código Python:
Ver original
  1. x = 1+1
  2.  
  3. print 'Hola', x

>>> Hola 2

No hacen falta los paréntesis... solo en casos matemáticos como estos:
Código Python:
Ver original
  1. x = 1+1
  2.  
  3. print 'Hola', (x+4)/2

>>> Hola 3

Lo haces mal en esta parte de tu código, sobre todo:
Código:
    else:
        print(x1=(str(-b)+'+'+math.sqrt(m))/(2*a)) 
        print(x2=(str(-b)+'-'+math.sqrt(m))/(2*a)
Mira, lo he modificado un poco por cuestiones matemáticas, pero hay algo de tu código que no entiendo.

Código Python:
Ver original
  1. if a==0:
  2.     print 'no es una ecuacion de segundo grado'
  3. else:
  4.     m = b**2-4*a*c
  5.     if m >= 0:
  6.       x1 = (-b + sqrt(m)) / (2 * a)
  7.       x2 = (-b - sqrt(m)) / (2 * a)
  8.       if x1 == x2:
  9.         print 'Solución de la ecuación: x=%4.3f' % x1
  10.       else:
  11.         print 'Soluciones de la ecuación: x1=%4.3f y x2=%4.3f' % (x1, x2)
  12.     else:
  13.         # Aca iría la parte de los números complejos.

Cuando te dicen que mezclas cadenas con números se refiere a que cuando defines "complejos", cuando usas la función str, ello te devuelve una cadena... y las cadenas no se pueden dividir por enteros como pretendes aca:
Cita:
x1 = complejos(-b/(2*a), (math.sqrt(m)) / 2*a )
x2 = complejos(-b/(2*a), (math.sqrt(m)) / 2*a )
Las cadenas son caráctares. Puedes sumar a cadenas otras cadenas, y multiplicarlas por enteros.
1 así solo, es un entero. Con comillas (en python, obvio), es una cadena ('1')

Ejemplo:
'1' * 5 = '11111'
'a' * 5 = 'aaaaa'
'1' + 'a' = '1a'


Mejor espera a cursar esa materia, e irás aprendiendo esos pequeños (aunque determinantes) detalles con tu profesor, o relee con más atención. Porque parece que todavía no das la talla para este tipo de ejercicios.
Y recomiendo lo mismo que Alvaro, hazlo todo desde cero, y lee mejor la parte de definición de funciones. Porque el error empieza desde el principio.

Última edición por Mar91; 17/11/2010 a las 14:06