Comment résoudre Python «Syntaxerror ne peut pas attribuer à l'appel de fonction»

Comment résoudre Python «Syntaxerror ne peut pas attribuer à l'appel de fonction»

Python s'appuie presque entièrement sur les appels de fonction et les déclarations variables. Ils permettent de réutiliser le code source plusieurs fois. Les arguments sont utilisés pour activer les fonctions dynamiquement et appeler des fonctions relativement similaires tout en modifiant certaines valeurs, conduisant à un résultat ou un flux d'instructions différent. Nous obtiendrons une syntaxerror si nous l'utilisons mal.

Une syntaxerror est une erreur du langage de programmation Python qui se produit lorsqu'un programme ne suit pas les règles prédéfinies de la langue. Il s'agit d'un aspect relativement typique de l'erreur humaine qui se produit pendant la saisie ainsi qu'à l'utilisation des systèmes. Chaque fois que cette forme d'erreur apparaît, l'interpréteur Python fournit des données utiles, ce qui rend la majorité des erreurs de syntaxe simples à résoudre.

Dans ce didacticiel, nous examinerons pourquoi l'erreur «Syntaxerror: ne peut pas affecter à l'appel de fonction» se présente dans les codes python et comment le corriger. Pour évaluer l'adéquation de cette erreur, nous passerons en revue différents exemples qui l'illustrent.

Obtenir la racine carrée du tableau

En raison d'une parenthèse manquée ou d'une déclaration variable incorrecte, la «syntaxerror: ne peut pas attribuer à l'appel de fonction» se produit chaque fois que le programme se termine de façon inattendue sans terminer une partie du code. Exécutons un code qui itère à travers chaque valeur du tableau, en calculant la racine carrée de ces tableaux et en renvoyant un tableau qui contient la racine carrée des nombres définis:

1
2
3
4
5
6
7
8
9
dix
11
12
13
14
15
16
17
18
19
20
21
Importer Numpy comme NP
Importer Matplotlib.pypllot comme plt
SQ_NUM = [25, 81, 100, 121, 144, 169]
def sq_root (num):
sq_roots = []
pour n en nombre:
n_sqrt = n ** 1.5
sq_roots.Ajouter (n_sqrt)
retourner sq_roots
sq_root (sq_num) = sq_roots
Print (SQ_ROOTS)

Ici, nous avons présenté les bibliothèques Numpy comme «NP» et Matplotlib.pypllot comme «plt». Ensuite, nous avons déclaré une liste de valeurs aléatoires et spécifié les éléments de la liste. Ces éléments sont stockés dans une variable «SQ_NUM». Nous avons défini la fonction «sq_root ()» et passé la liste définie comme un paramètre à la fonction «SQ_ROOT ()».

Maintenant, nous avons appliqué la boucle «pour». Nous avons appliqué une condition qui montre que chaque numéro de la liste sera multiplié par 1.5 puis la valeur de la liste est incrémentée. Nous avons entré la commande «retour» où la valeur qu'elle a fournie est attribuée à une variable, et la sortie est imprimée à la console en utilisant la fonction print ().

Nous avions l'intention de fournir une valeur à un appel fonction. SQ_ROOT (SQ_NUM) est l'appel de méthode utilisé dans cette instance. Nous avons tenté de définir la valeur SQ_ROOTS sur la variable SQ_ROOT (SQ_NUM). Chaque fois que nous devons allouer la réponse d'une fonction à un attribut, nous spécifions d'abord la variable. Le nom du paramètre, le signe d'égalité et la valeur donnée à cette variable sont organisées dans cet ordre.

Solution:

Pour résoudre ce problème, nous devons modifier la disposition des déclarations de variables (SQ_ROOTS = SQ_ROOTS (SQ_NUM)). Il vient bien avant la déclaration «imprimer». Le programme s'exécute avec succès et affiche les valeurs de la racine carrée à l'écran.

1
2
3
4
5
6
7
8
9
dix
11
12
13
14
15
16
17
18
19
Importer Numpy comme NP
Importer Matplotlib.pypllot comme plt
SQ_NUM = [25, 81, 100, 121, 144, 169]
def sq_root (num):
sq_roots = []
pour n en num:
n_sqrt = n ** 1.5
sq_roots.Ajouter (n_sqrt)
Print (SQ_ROOTS)
[5.0, 9.0, 10, 11, 12, 13]

Vous pouvez vérifier la sortie suivante:

Trouver le pourcentage des marques

Les apprenants Python débutants ont tendance à faire cette erreur s'ils manquent la déclaration variable et l'appel de fonction pendant le processus d'allocation. Le paramètre avec lequel nous avons l'intention d'allouer la valeur doit être sur le côté gauche du signe égal (=), et la fonction qui fournit la valeur doit être du côté droit.

Regardons cet exemple dans lequel l'appel de fonction est sur le côté gauche et le nom de la variable est à droite:

1
2
3
4
5
6
7
8
9
dix
11
12
13
14
15
16
17
Importer Numpy comme NP
Importer Matplotlib.pypllot comme plt
def per (m):
obtenue_marks = sum (m)
maximum_marks = len (m) * 100
Retour Round ((obtenue_marks / total_marks) * 100, 2)
std_m = [80, 70, 90, 85, 75]
per (std_m) = total_per
imprimer (total_per)

Après avoir inclus les bibliothèques requises pour ce programme, nous avons défini la fonction per () pour trouver le pourcentage des notes. Nous avons créé deux listes nommées «obtenue_marks» et «total_marks». Nous avons appliqué la fonction Len (), puis nous l'avons multiplié par 100 et l'avons réglé sur la variable «Total_marks». Nous avons entré la déclaration «retour». Le "obtenue_marks" est divisé par le "Total_marks" et multiplié la valeur de 100. Nous avons appliqué cette formule pour obtenir le pourcentage des marques de l'étudiant.

Ensuite, nous avons créé un tableau qui contient les marques de l'étudiant. Nous avons attribué la valeur à la fonction per () dans l'ordre «par (std_m) = total_per». Nous avons appliqué la commande «Imprimer» à la fin du code.

Nous pouvons déduire de l'instruction d'erreur selon laquelle nous avons une erreur sur la ligne de code 12 lorsque nous avions l'intention d'ajouter la variable "Total_per" à la déclaration d'appel de fonction Per (STD_M). L'ajout de la variable est inapproprié selon la syntaxe Python.

Solution:

Nous avons changé les emplacements de l'appel de fonction Per (STD_M) et la variable «Total_per» pour résoudre cette erreur. En conséquence, la variable «Total_per» est allouée à la valeur fournie de la fonction per ().

1
2
3
4
5
6
7
8
9
dix
11
12
13
14
15
16
Importer Numpy comme NP
Importer Matplotlib.pypllot comme plt
def per (m):
obtenue_marks = sum (m)
total_marks = len (m) * 100
Retour Round ((obtenue_marks / total_marks) * 100, 2)
std_m = [80, 70, 90, 85, 75]
total_per = per (std_m)
imprimer (total_per, '%')

Vous pouvez vérifier la sortie suivante:

Conclusion

Dans cet article, nous avons parlé de «Syntaxerror: Can't Assign to Function Call.«Lorsque nous avions l'intention de déléguer un appel de fonction à la variable définie, nous obtenons le résultat:« Syntaxerror: ne peut pas affecter à l'appel de fonction."Supposons que l'appel de fonction vient juste avant la variable locale. Le code Python évaluerait le code comme s'il tentait de donner de la valeur à une seule variable par le même titre que l'appel de fonction.

Pour corriger cette erreur, nous devons utiliser la syntaxe Python appropriée pour la déclaration de la variable définie. Le nom de la variable requis vient en premier, suivi du signe égal, et enfin, les données pour spécifier cette variable. Lors de l'attribution de la valeur renvoyée d'un appel de fonction à une variable requise, la variable doit être sur le côté gauche et la méthode doit être sur le côté droit.