Anuncio

Colapsar
No hay ningún anuncio todavía.

Problema con el modo no interactivo

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • Python Problema con el modo no interactivo

    [FONT=arial]¡Buenas forer@s!
    [/FONT]
    [FONT=arial]Trabajando con el maldito python , me he encontrado con un ejercicio cuyo enunciado es el siguiente:

    [/FONT][FONT=CMSS10][FONT=CMSS10]Defina una función que calcule las raíces de la ecuación de segundo grado ax**2 + bx +c = 0
    [FONT=CMSS10][FONT=CMSS10]en función del signo de su discriminante [/FONT][/FONT][FONT=CMMI10][FONT=CMMI10]b[/FONT][/FONT][FONT=CMR8][FONT=CMR8]2 [/FONT][/FONT][FONT=CMSY10][FONT=CMSY10][/FONT][/FONT][FONT=CMR10][FONT=CMR10]4[/FONT][/FONT][FONT=CMMI10][FONT=CMMI10]ac[/FONT][/FONT][FONT=CMSS10][FONT=CMSS10]. Escriba un programa que[/FONT][/FONT]
    [FONT=CMSS10][FONT=CMSS10]pida los tres parámetros de la ecuación y llame a la función para calcular las raíces.

    Bien, os pongo lo que hice y mi duda:

    def ecuacion(a, b, c):
    D = (float(b))**2 - 4*(float(a))*(float(c))

    if D < 0.0:
    X1 = ((-(float(b)) + (D**0.5)*j))/2*(float(a))
    X2 = ((-(float(b)) - (D**0.5)*j))/2*(float(a))
    print((complex(X1)), (complex(X2))) <---Corregido ese error de sintaxis
    elif D > 0.0:
    X1 = ((-(float(b)) + (D**0.5)))/2*(float(a))
    X2 = ((-(float(b)) - (D**0.5)))/2*(float(a))
    print(X1, X2)
    else:
    X1 = (-(float(b)))/2*(float(a))
    print(X1)

    a = raw_input('Introduce a: ') #Introduzco parametro a
    b = raw_input('Introduce b: ') #Introduzco parametro b
    c = raw_input('Introduce c: ') #Introduzco parametro c
    X1, X2 = ecuacion(a, b, c)
    print('X1 vale: %1.1f' % str(X1))
    print('X2 vale: %1.1f' % str(X2))

    Una vez pongo esto en el modo no interactivo de python, voy al interactivo y al ejecutar únicamente me sale la opción de escoger los tres parámetros y ya está... No sé muy bien que falla o que tengo mal en la sintaxis.

    Gracias por la atención.
    [/FONT]
    [/FONT]
    [/FONT]
    [/FONT]
    Última edición por davinci; 21/11/2013, 20:18:31.
    El azar hace bien las cosas/Julio Cortázar

  • #2
    Re: Problema con el modo no interactivo

    Hola Davinci,

    ¿has definido todo dentro de la función? Además, piensa que una función no significa nada si no retornas algún valor de ésta (has de poner return -valor que quieres que devuelva-).

    Un saludo.
    "Una persona inteligente e irreflexiva es una de las cosas más aterradoras que existen."

    Comentario


    • #3
      Re: Problema con el modo no interactivo

      Gracias por contestar Turing.

      ¿Dónde tendría que poner el return? O sea, ¿qué pongo con return? No, únicamente definí la función hasta el a = raw_input (...) (no inclusive).
      Última edición por davinci; 21/11/2013, 21:11:51.
      El azar hace bien las cosas/Julio Cortázar

      Comentario


      • #4
        Re: Problema con el modo no interactivo

        Te pongo un ejemplo:

        Código:
        parametro=int(raw_input("Introduce un numero"))
        
        
        def funcion(parametro):
            b=parametro**2
            return b
        
        
        y=funcion(parametro)
        print y
        Por lo que return b permite que dicho valor salga de la función. Si lo pruebas sin el return no funcionará. En tu caso, creo que los valores que buscas son X1 y X2, por lo que puedes poner return X1,X2.

        Un saludo.
        Última edición por Turing; 21/11/2013, 21:32:47.
        "Una persona inteligente e irreflexiva es una de las cosas más aterradoras que existen."

        Comentario


        • #5
          Re: Problema con el modo no interactivo

          Creo que es lo que tú me dices, pero no sé que le pasa a mi python (modo interactivo) que no me abre. Voy a meterlo en un lápiz y mañana pruebo en los ordenadores de la facultad que tienen instalado Ubuntu que según me han dicho es mucho mejor que Windows para estas cosas.

          Gracias de nuevo
          El azar hace bien las cosas/Julio Cortázar

          Comentario


          • #6
            Re: Problema con el modo no interactivo

            Yo lo tengo instalado en Windows y tarda un poquito en abrir. Lo que pasa es que usamos el Notebook y no trabajamos directamente en la terminal.

            Prueba mañana y ya me dirás! Suerte!
            "Una persona inteligente e irreflexiva es una de las cosas más aterradoras que existen."

            Comentario

            Contenido relacionado

            Colapsar

            Trabajando...
            X