2011-02-14 14 views
7

estoy consiguiendo error de sintaxis no válida en mi script en Python para esta declaraciónerror extraños sobre la sintaxis no válida

44 f = open(filename, 'r') 
45 return 

return 
    ^
SyntaxError: invalid syntax 

No estoy seguro de qué es exactamente lo que está mal aquí? Soy un novato de Python y lo apreciaré mucho si alguien puede por favor ayudarme.

estoy usando la versión 2.3.4

+1

Compruebe la sangría de la combinación de pestañas y espacios. –

+5

@user: muéstranos un código más, de lo contrario, todo lo que podemos hacer es adivinar. – user225312

+0

-1: contexto insuficiente para hacer algo más que adivinar. –

Respuesta

6

conseguir "sintaxis no válida" en una instrucción de retorno normal es prácticamente imposible. Si lo usa fuera de una función, se obtiene 'return' outside function, si usted tiene la sangría equivocada se obtiene IndentationError, etc.

La única manera que puedo conseguir un SyntaxError: invalid syntax en una instrucción de retorno, es si en realidad no lo hace diga return en absoluto, pero si contiene caracteres no ascii, como retürn. Eso da este error Ahora, ¿cómo puedes tener ese error sin verlo? Una vez más, la única idea que se me ocurre es que, de hecho, tiene una sangría, pero esta indentación no es espacios ni pestañas. Por ejemplo, puede haber insertado de alguna manera un espacio sin interrupciones en su código.

Sí, esto puede suceder. Sí, he tenido que pasarme a mí. Sí, obtienes SyntaxError: invalid syntax.

+46

"SyntaxError: sintaxis no válida" también puede ocurrir si tiene par encima de la declaración de devolución que olvidó cerrar. – erjiang

1
>>> 45 return 
    File "<stdin>", line 1 
    45 return 
      ^
SyntaxError: invalid syntax 
>>> 

Eso podría explicarlo. No explica el 44 f = open(filename, 'r'), pero sospecho que alguien copió y pegó 45 líneas de código donde se perdió la sangría y se incluyeron los números de línea.

17

Tuve el mismo problema. Aquí estaba mi código:

def gccontent(genomefile): 
    nbases = 0 
    totalbases = 0 
    GC = 0 
    for line in genomefile.xreadlines(): 
     nbases += count(seq, 'N') 
     totalbases += len(line) 
     GC += count(line, 'G' or 'C') 
    gcpercent = (float(GC)/(totalbases - nbases)*100 
    return gcpercent 

'return'was sintaxis no válida

simplemente no logró cerrar el soporte en el siguiente código:

gcpercent = (float(GC)/(totalbases - nbases)*100 

Espero que esto ayude.

2

Normalmente se trata de un error de sintaxis parentética. Verifique el error.

8

Recibí una "Sintaxis inválida" a la vuelta cuando olvidé cerrar el corchete de mi código.

elif year1==year2 and month1 != month2: 
    total_days = (30-day1)+(day2)+((month2-(month1+1))*30 
    return (total_days)  

Sintaxis no válida a su regreso.

((month2-(month1+1))*30 <---- there should be another bracket 

((month2-(month1+1)))*30 

Ahora mi código funciona.

Deben mejorar python para avisarle si olvidó cerrar sus corchetes en lugar de tener una sintaxis "no válida" a su regreso.

+0

Mi problema no fue el retorno, pero la causa era un soporte faltante en la cláusula anterior. Muchas gracias ! – yucer

2

acabo de ver esto porque estaba teniendo el mismo problema (error de sintaxis no válida en la declaración de plan), y soy extremadamente nuevo en python (primer mes) así que no tengo idea de qué estoy haciendo la mayor parte hora.

Bueno, he encontrado mi error, me había olvidado un paréntesis final en la línea anterior. intente comprobar el final de la línea anterior para un paréntesis o cita olvidado?

Cuestiones relacionadas