elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Python: Syntax error en "def" o_o
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Python: Syntax error en "def" o_o  (Leído 3,231 veces)
S3kh

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Python: Syntax error en "def" o_o
« en: 8 Agosto 2011, 22:38 pm »

 De nuevo yo con mis problemas raros, estoy usando IDLE, estaba probando el siguiente código (Da las raíces de una ecuación cuadrática, y muestra los pasos para hacerla), y realmente, andaba todo bien, iba editando la funcion LinealStep (Que en el código se ocupa de mostrar el paso por paso), y de repente el programa empezó a tirar "Syntax Error", en algo donde no había tocado absolutamente nada. Me marca "def". Y me marca siempre uno. No sé sinceramente cuál es el error sintáctico acá. Se que no tiene que ver con identación (O al menos no me dice eso):

Código:
# -*- coding: cp1252 -*-

from os import system
from cmath import sqrt

def Lineal(a, b, c):
        a               = float(a)
        b               = float(b)
        c               = float(c)
        bc              = b ** 2.0
        bcstr           = str(bc)
        
        Disc            = bc - 4.0 * a * c
        DiscStr         = str(Disc)
        DiscStr2        = 'bc - 4.0 * a * c'
        
        Sqr_Res         = sqrt(Disc)
        Sqr_ResStr      = str(Sqr_Res)
        Sqr_ResStr2     = 'R2(bc - 4.0 * a * c)'
        
        NEG_Res         = -b - Sqr_Res / (2.0 * a)
        rNEG_Res        = abs(NEG_Res)
        
        POS_Res         = -b + Sqr_Res / (2.0 * a)
        rPOS_Res        = abs(POS_Res)
        
        print ' '
        print 'Fórmula usada: -b +- R2 <b^2 - 4 * a * c>'
        print '                        -----------------'
        print '                             2 * a      '

        LinealStep(a, b, c, bc, bcstr, Sqr_Res)

        print 'X1 = ', rPOS_Res
        print 'X2 = ', rNEG_Res

def LinealStep(a, b, c, bc, bcstr, Sqr_Res):

        Astr, Bstr, Cstr, BCstr = str(a), str(b), str(c), str(bc)
        print 'Paso 1) Implementar fórmula'
        print 'Paso 2) Reemplazar:'
        print ' a por ', Astr
        print ' b por ', Bstr
        print ' c por ', Cstr

        print 'Quedando asi la formula: ', Bstr, ' +- R2<', Bstr, '^2 + 4 * ', Astr, ' * ', Cstr, '>'
        print ' '* 36, '-' * 25
        print ' '* 45, '2 * ', Astr

        print 'Resolviendo interior de la raiz(Discriminante): '
        print ' ', Bstr, '^2 + 4 * ', Astr, ' * ', Cstr
        print ' ', BCstr, ' + ', str((4 * a) * c)
        print ' ', str(bc + (4 * a) * c), ' '

        print 'Ahora, se calcula la raiz cuadrada de ', str(bc + (4 * a) * c)
        print 'R2<', str(bc + (4 * a) * c, ' = ', Sqr_Res

##ACÁ ME TIRA ERROR MARCANDO "def", pero a veces lo marca en los otros def
def Menu():
        TCuad           = raw_input('Coeficiente de termino cuadratico(a): ')
        TX              = raw_input('Segundo coeficiente(b): ')
        TIndep          = raw_input('Término independiente(c): ')
        print           'La ecuacion quedaria de la siguiente manera: '
        print           int(TCuad), 'X^2 + ', int(TX), 'X + ', int(TIndep)
        Next            = raw_input('Presione enter para hallar raíces: ')
        Lineal(TCuad, TX, TIndep)

Menu()


EDIT: Y ahora, saqué la función Menu, y me marca error en el nombre de la variable TCuad, dejo el código de esa última parte:

Código:
def LinealStep(a, b, c, bc, bcstr, Sqr_Res):

        Astr, Bstr, Cstr, BCstr = str(a), str(b), str(c), str(bc)
        print 'Paso 1) Implementar fórmula'
        print 'Paso 2) Reemplazar:'
        print ' a por ', Astr
        print ' b por ', Bstr
        print ' c por ', Cstr

        print 'Quedando asi la formula: ', Bstr, ' +- R2<', Bstr, '^2 + 4 * ', Astr, ' * ', Cstr, '>'
        print ' '* 36, '-' * 25
        print ' '* 45, '2 * ', Astr

        print 'Resolviendo interior de la raiz(Discriminante): '
        print ' ', Bstr, '^2 + 4 * ', Astr, ' * ', Cstr
        print ' ', BCstr, ' + ', str((4 * a) * c)
        print ' ', str(bc + (4 * a) * c), ' '

        print 'Ahora, se calcula la raiz cuadrada de ', str(bc + (4 * a) * c)
        print 'R2<', str(bc + (4 * a) * c, ' = ', Sqr_Res


TCuad           = raw_input('Coeficiente de termino cuadratico(a): ')
TX              = raw_input('Segundo coeficiente(b): ')
TIndep          = raw_input('Término independiente(c): ')
print           'La ecuacion quedaria de la siguiente manera: '
print           int(TCuad), 'X^2 + ', int(TX), 'X + ', int(TIndep)
Next            = raw_input('Presione enter para hallar raíces: ')
Lineal(TCuad, TX, TIndep)

Me marca en rojo TCuad.  Qué onda? O sea, no hay problemas de identación, no es palabra reservada, y me anduvo perfecto :\ se me empezó a buguear con el def de las funciones, saco la función Menu y me tira error en eso u.u


Desde ya muchas gracias de antemano n.n


« Última modificación: 8 Agosto 2011, 22:49 pm por S3kh » En línea

criskapunk

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Python: Syntax error en "def" o_o
« Respuesta #1 en: 14 Agosto 2011, 01:02 am »

Una pregunta, estás ejecutando ese código desde el intérprete interactivo o desde un archivo .py?

Edito:
Creo que ya se la causa de la falla ;D
Antes que nada, te falta cerrar un paréntesis en la última línea de la función:

Código
  1. print 'R2<', str(bc + (4 * a) * c), ' = ', Sqr_Res

Como te dije arriba, si copiaste todo ese código (La declaración de la función y las siguientes instrucciones) directamente en el intérprete interactivo de Python, tira ese error. Primero tenés que copiar la declaración, darle Enter y una vez que te aparezca el prompt (Esto: >>>) copiar las demás lineas.

Un saludo.


« Última modificación: 14 Agosto 2011, 01:20 am por R0LFback » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
"""BUSCO EJEMPLO VB PARA ENVIAR MAILS""""
Programación Visual Basic
gera 1 6,594 Último mensaje 1 Septiembre 2005, 00:14 am
por programatrix
De donde puedo descargar utilidades: "Formas", "Estilos", "Motivos", D
Diseño Gráfico
Ad0nis 2 8,817 Último mensaje 2 Septiembre 2006, 15:48 pm
por Ad0nis
[Ayuda] modificar "start page" en "internet explorer" con "batch"
Scripting
taton 7 17,255 Último mensaje 20 Septiembre 2006, 01:45 am
por taton
[Python] Ayuda con "Runtime error"
Scripting
nacho87 2 4,021 Último mensaje 14 Diciembre 2009, 19:58 pm
por nacho87
porque no puedo ver los mensajes de error de mysql como " SQL syntax near"?
Nivel Web
Belial & Grimoire 1 3,058 Último mensaje 10 Mayo 2012, 21:01 pm
por ~ Yoya ~
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines