Red de conocimiento informático - Conocimiento informático - Errores que los estudiantes suelen cometer al evitar Python

Errores que los estudiantes suelen cometer al evitar Python

6 errores que los principiantes en Python suelen cometer los principiantes

6 errores clásicos de novatos en Python

La fuente del error de sintaxis

Cuando ejecuta el código Python, el intérprete primero lo analizará para convertirlo a

código de bytes Python y luego lo ejecutará. El intérprete descubrirá cualquier sintaxis no válida en Python durante la primera fase de ejecución del programa (también llamada fase de análisis). Si

el intérprete no puede analizar correctamente su código Python, significa que está utilizando una sintaxis no válida

en alguna parte de su código. El intérprete intentará mostrarte dónde ocurre el error

.

Cuando aprendes Python por primera vez, encontrarte con SyntaxError puede ser frustrante

. Python intentará ayudarle a determinar dónde está la sintaxis no válida en su código, pero los rastreos que proporciona pueden resultar un poco confusos. A veces el código al que apunta es realmente bueno.

Nota: Si su código es sintácticamente correcto, puede generar otras excepciones que no sean SyntaxError.

1. Abuso del operador de asignación (=)15

Hay varias situaciones en Python en las que no se puede asignar un valor a un objeto. Algunos ejemplos

se asignan a literales y llamadas a funciones. En el bloque de código siguiente puede ver algunos

ejemplos de intentos de hacer esto y los rastros de SyntaxError resultantes:

6 errores clásicos de novato en Python

gt ;gt;gt;len('hello*) = 5

Archivo "estd ingt;", línea 1

Error de sintaxis: can'tassigntofunctioncall

gt; gt;gt;*foo°m 1

Archivo "estd ingt;", línea 1

Error de sintaxis: can'tassigntoliteral

) gt;1m'foo '

Archivo "estd ingt;", línea 1

SyntaxError: can'tassigntoliteral

El primer ejemplo intenta convertir el valor 5 se asigna al len () llamar. El mensaje SyntaxError

es muy útil en esta situación. Le dice que no puede asignar un valor a una llamada de función.

El segundo y tercer ejemplo intentan asignar una cadena y un número entero al literal.

Las mismas reglas se aplican a otros valores literales. El mensaje de rastreo nuevamente indica que el problema ocurrió cuando intentó asignar un valor al literal

.

Lo más probable es que tu intención no sea asignar un valor a una llamada literal o a una función. Esto puede suceder, por ejemplo, si

accidentalmente omites un signo igual adicional (=), lo que convierte la tarea

en una comparación. Como se muestra a continuación, la comparación es válida:

gt;gt;gt;len('hello') == 5

Verdadero

2. , omisión o uso indebido de palabras clave de Python

6 errores clásicos de novatos en Python

Las palabras clave de Python son un grupo de palabras protegidas que tienen un significado especial en Python

Yi. Estas palabras no se pueden utilizar como identificadores, nombres de variables o funciones en el código. Son

son parte del lenguaje y solo pueden usarse en el contexto permitido por Python.

|Hay tres formas comunes de utilizar palabras clave incorrectamente:

①Palabras clave faltantes;

②Palabras clave faltantes;

③Abuso de palabras clave;

Si escribe mal una palabra clave en el código Python, recibirá

SyntaxError. Por ejemplo, si la palabra clave for está escrita incorrectamente, ocurrirá lo siguiente:

gt; gt; fro i in range(18):

Archivo "lt; stdingt; ", línea 1

de i in range(10):

SyntaxError: sintaxis no válida

El mensaje muestra SyntaxError: sintaxis no válida, pero eso no es muy útil

. El rastreo apunta a la primera ubicación donde Python podría detectar el error. Para corregir este tipo de error, asegúrese de que todas las palabras clave de Python estén escritas correctamente.

Otro problema común con las palabras clave es cuando te olvidas de escribirlas por completo:

6 errores clásicos de novato en Python

gt;gt;gt for i range; (18):

Archivo "lt;stdingt;", línea 1

para i range(18):

Error de sintaxis: sintaxis no válida

Nuevamente, el mensaje de excepción no es tan útil, pero el rastreo intenta indicarle la dirección correcta

. Si retrocede desde el cursor, puede ver que falta la palabra clave in en la sintaxis del bucle for.

También puedes abusar de las palabras clave protegidas de Python. Recuerde, las palabras clave sólo están permitidas

en determinadas circunstancias. Si los usa incorrectamente, su

código Python contendrá una sintaxis no válida. Un ejemplo común es usar continuar o interrumpir fuera de un bucle

. Esto puede suceder fácilmente durante el desarrollo, cuando

estás implementando cosas y mueves la lógica fuera del bucle:

gt;names m['pam', 'jin ', * michael']

if'jim'in nanos:

imprimir(*jim encontrado')

romper

Archivo "estd ingt ;", línea 3

SyntaxError: 'break'outside loop

sgt; if'jim'in nanes:

print(*jin found ')

continuar

Archivo "estd in", línea 3

Error de sintaxis: 'continuar'no está correctamente en el bucle

Errores de novato clásico en Python 6

Aquí, Python hace un buen trabajo al decirte qué salió mal exactamente. Los mensajes

"'romper' el bucle externo" y "continuar' el bucle incorrectamente" pueden ayudarte a determinar

qué hacer. Si este código estuviera en un archivo, Python también

tendría un símbolo de intercalación que apunta a la palabra clave mal utilizada.

Otro ejemplo es si intentas asignar una palabra clave de Python a una variable o usas la palabra clave

para definir una función:

gt;gt;gt ; pass=True

Archivo "estd ingt;", línea 1

pass=True

SyntaxError: sintaxis no válida

gt; ; gt; def pass():

Archivo "estd ingt;", línea 1

def pass():

SyntaxError: sintaxis no válida

p>

3. 6 errores clásicos de principiante en Python

Por lo general, la causa de la sintaxis no válida en el código Python es que faltan o no coinciden los corchetes

y los corchetes o las comillas. . Estos son difíciles de detectar en líneas muy largas de corchetes anidados o en bloques de varias líneas más largos

. Con el rastreo inverso de Python, puede detectar comillas que faltan o no coinciden:

gt;message-*don

Archivo"lt;stdingt; ", línea 1

message='no'

SyntaxError: sintaxis no válida

6 errores clásicos de principiante en Python

Aquí, el rastreo apunta a un código no válido, donde hay es una t'

después de la comilla simple de cierre. Para resolver este problema, puede realizar uno de los siguientes dos cambios

①Escapar de las comillas simples con una barra invertida ('no');

②Escapar de las comillas simples con una barra doble; quote Encierre toda la cadena ("no");

Otro error común es olvidar cerrar una cadena. Para cadenas entre comillas dobles y simples

la situación y el rastreo son los mismos:

gt;gt;gt;message="Esta es una cadena abierta

Archivo "lt; stdingt;", línea 1

mensaje-"Esta es una cadena abierta

Error de sintaxis: EOL al escanear el literal de cadena

4. Sintaxis incorrecta del diccionario

Viste antes que si colocas una coma fuera de un elemento del diccionario, es posible que obtengas

SyntaxError. Otra forma de sintaxis no válida para los diccionarios de Python es usar el signo igual

(=) para separar claves y valores en lugar de usar dos puntos:

gt;gt;gt; edades·{ 'pam'-24}

Archivo "lt; stdingt;", línea 1

edades-{'pam'-24}

Error de sintaxis : sintaxis no válida

Nuevamente, este mensaje de error no es muy útil. Sin embargo, las líneas repetidas y los signos de intercalación

son muy útiles. ¡Apuntan directamente al personaje en cuestión!

6 errores clásicos de principiante en Python

gt;gt;gt;ages=dict(pam=24)

gt;gt;gt;ages

{'pam': 24}

Este tipo de problema es común si confundes la sintaxis de Python con la de otros lenguajes de programación

También verás esto si confundes el acto de definir un diccionario con una llamada a dict(). Para solucionar este problema, puede reemplazar el signo igual con dos puntos.

También puedes

cambiar a usar dict):

5. Usar abreviaturas incorrectas

Otros lenguajes de programación usan llaves para representar bloques de código. mientras que Python usa espacios.

Esto significa que Python espera que los espacios en blanco en el código se comporten de manera predecible. Si una línea en un bloque de código

contiene una cantidad incorrecta de espacios, generará un error de sangría:

Esto puede ser difícil de ver, pero la línea 5 solo tiene una sangría de 2 espacios. Debería ser lo mismo que for loop

f foo():

for i in range(10):

print(i)

print ('done')

foo()

La declaración del anillo es la misma, con 4 espacios más. Afortunadamente, Python hace que sea fácil detectar esto y le dirá cuál es el problema muy rápidamente.

Sin embargo, existen algunas ambigüedades aquí. ¿La línea print('done') está después del bucle for

o dentro del bloque del bucle for? Cuando ejecute el código anterior, verá el siguiente

error:

p> p>

6 errores clásicos de principiante en Python

Archivo "indentation.py", línea 5

print('done*)

Sangría Error: un sangría no coincide con ningún nivel de sangría externo

Aunque el rastreo se parece mucho al rastreo de SyntaxError, en realidad es un nivel de sangría que no coincide con ningún otro nivel de sangría. En otras palabras,

Error de sangría. Los mensajes de error también son útiles. Le indica que la sangría de la línea

print('done') tiene una sangría de 2 espacios, pero Python no puede encontrar ninguna otra

que coincida con este nivel de sangría de líneas de código. . Puede solucionar rápidamente este problema asegurándose de que su código esté alineado con el nivel de sangría esperado.

6. Definir y llamar funciones

SyntaxError:

gt;gt;gt;def fun O;

Archivo "estd ingt ;", línea 1

def fun() ;

SyntaxError: sintaxis no válida

El rastreo aquí es muy útil, el signo de intercalación apunta directamente al carácter problemático . Puede limpiar esta sintaxis no válida en Python reemplazando el punto y coma con dos puntos.

Además, los argumentos de palabras clave en las definiciones de funciones y las llamadas a funciones deben estar en el orden correcto.

Puede encontrar una sintaxis no válida en Python al definir o llamar funciones.

Por ejemplo, si usa un punto y coma en lugar de dos puntos al final de la definición de una función, verá

6 errores clásicos de novato en Python

Orden . Los argumentos de palabras clave siempre siguen a los argumentos posicionales. Si no se utiliza este orden, se producirá

SyntaxError:

gt;gt;gt; def fun(a, b):

print(a, b). )

mmm

gt; gt; fun(a-1, 2)

Archivo "lt; stdingt;", línea 1

Error de sintaxis: el argumento posicional sigue al argumento de palabra clave