Cómo resolver Python SyntaxError no puede asignar a la llamada de función

Cómo resolver Python SyntaxError no puede asignar a la llamada de función

Python se basa casi por completo en las llamadas de función y declaraciones variables. Hacen posible reutilizar el código fuente muchas veces. Los argumentos se utilizan para habilitar funciones dinámicamente y llamar a funciones relativamente similares al tiempo que modifican ciertos valores, lo que lleva a un resultado o flujo de instrucciones diferentes. Obtendremos un SyntaxError si lo utilizamos incorrectamente.

Un SyntaxError es un error del lenguaje de programación de Python que ocurre cuando un programa no sigue las reglas predefinidas del idioma. Es un aspecto relativamente típico del error humano que ocurre durante la escritura, así como en el uso de los sistemas. Cada vez que aparece esta forma de error, el intérprete de Python proporciona datos útiles, lo que hace que la mayor parte de los errores de sintaxis sean fáciles de resolver.

En este tutorial, veremos por qué el error "SyntaxError: no se puede asignar a la llamada de función" surge en los códigos de Python y cómo solucionarlo. Para evaluar la adecuación de este error, revisaremos diferentes ejemplos que lo ilustran.

Obtener la raíz cuadrada de la matriz

Debido a una paréntesis perdida o una declaración de variable inadecuada, el "SyntaxError: no se puede asignar a la llamada de función" ocurre cada vez que el programa termina inesperadamente sin completar parte del código. Ejecutemos un código que itera a través de cada valor de la matriz, calcule la raíz cuadrada de esas matrices y devuelva una matriz que contiene la raíz cuadrada de los números definidos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
20
21
importar numpy como np
Importar matplotlib.Pyplot como PLT
sq_num = [25, 81, 100, 121, 144, 169]
def sq_root (num):
sq_roots = []
para n en números:
n_sqrt = n ** 1.5
sq_roots.append (n_sqrt)
return sq_roots
sq_root (sq_num) = sq_roots
Imprimir (SQ_roots)

Aquí, presentamos las bibliotecas Numpy como "NP" y matplotlib.Pyplot como "PLT". Luego, declaramos una lista de valores aleatorios y especificamos los elementos de la lista. Estos elementos se almacenan en una variable "sq_num". Definimos la función "sq_root ()" y pasamos la lista definida como un parámetro a la función "sq_root ()".

Ahora, aplicamos el bucle "para". Aplicamos una condición que muestra que cada número en la lista se multiplicará por 1.5 y luego se incrementa el valor de la lista. Ingresamos el comando "return" donde el valor que proporcionó se asigna a una variable, y la salida se imprime a la consola utilizando la función impreso ().

Teníamos la intención de proporcionar un valor a una llamada de función, lo que resultó en el SyntaxError. Sq_root (sq_num) es la llamada de método utilizada en esta instancia. Intentamos establecer el valor SQ_ROOTS en la variable SQ_ROOT (SQ_NUM). Siempre que necesitemos asignar la respuesta de una función a un atributo, primero especificamos la variable. El nombre del parámetro, el signo de igualdad y el valor dado a esa variable se organizan en ese orden.

Solución:

Para solucionar esto, tenemos que cambiar la disposición de las declaraciones variables (sq_roots = sq_roots (sq_num)). Viene mucho antes de la declaración de "impresión". El programa se ejecuta correctamente y muestra los valores raíz cuadrados en la pantalla.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
importar numpy como np
Importar matplotlib.Pyplot como PLT
sq_num = [25, 81, 100, 121, 144, 169]
def sq_root (num):
sq_roots = []
para n en num:
n_sqrt = n ** 1.5
sq_roots.append (n_sqrt)
Imprimir (SQ_roots)
[5.0, 9.0, 10, 11, 12, 13]

Puede verificar la siguiente salida:

Encontrar el porcentaje de las marcas

Los alumnos de Python principiantes tienden a cometer este error si se pierden la declaración variable y la llamada de función durante el proceso de asignación. El parámetro con el que pretendemos asignar el valor debe estar en el lado izquierdo del signo igual (=), y la función que proporciona el valor debe estar en el lado derecho.

Veamos este ejemplo en el que la llamada de función está en el lado izquierdo y el nombre de la variable está a la derecha:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
importar numpy como np
Importar matplotlib.Pyplot como PLT
Def Per (M):
Obtener_marks = suma (m)
maximum_marks = len (m) *100
return ronda ((obtener_marks/total_marks)*100, 2)
std_m = [80, 70, 90, 85, 75]
per (std_m) = total_per
Imprimir (Total_per)

Después de incluir las bibliotecas requeridas para este programa, definimos la función per () para encontrar el porcentaje de las marcas. Creamos dos listas llamadas "Obtener_marks" y "Total_marks". Aplicamos la función Len () y luego la multiplicamos por 100 y la establecimos en la variable "Total_marks". Ingresamos la declaración de "retorno". El "Obtener_Marks" se divide por el "Total_Marks" y multiplica el valor por 100. Aplicamos esta fórmula para obtener el porcentaje de las marcas del estudiante.

Luego creamos una matriz que contiene las marcas del estudiante. Asignamos el valor a la función per () en el orden "per (std_m) = total_per". Aplicamos el comando "Imprimir" al final del código.

Podemos deducir de la declaración de error de que tenemos un error en la línea 12 de código cuando tuvimos la intención de agregar la variable "Total_per" a la Declaración de llamadas de función PER (STD_M). Agregar la variable es inapropiada según la sintaxis de Python.

Solución:

Cambiamos las ubicaciones de la llamada de función PER (STD_M) y la variable "Total_per" para resolver este error. Como resultado, la variable "total_per" se asigna al valor proporcionado de la función per ().

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
importar numpy como np
Importar matplotlib.Pyplot como PLT
Def Per (M):
Obtener_marks = suma (m)
Total_marks = len (m) *100
return ronda ((obtener_marks/total_marks)*100, 2)
std_m = [80, 70, 90, 85, 75]
Total_per = per (std_m)
imprimir (Total_per, '%')

Puede verificar la siguiente salida:

Conclusión

En este artículo, hablamos sobre "SyntaxError: no se puede asignar a la llamada de función."Cuando tuvimos la intención de delegar una llamada de función a la variable definida, obtenemos el resultado," SyntaxError: No se puede asignar a la llamada de función."Supongamos que la llamada de función se produce justo antes de la variable local. El código de Python evaluaría el código como si intentara dar valor a una sola variable por el mismo título que la llamada de función.

Para corregir este error, debemos utilizar la sintaxis de Python adecuada para la declaración de la variable definida. El nombre de la variable requerida es primero, seguido por el signo igual, y por último, los datos para especificar esa variable. Al asignar el valor devuelto de una llamada de función a una variable requerida, la variable debe estar en el lado izquierdo y el método debe estar en el lado derecho.