Come risolvere Python Sintaxerror non può assegnare alla chiamata

Come risolvere Python Sintaxerror non può assegnare alla chiamata

Python si basa quasi interamente sulle chiamate di funzione e sulle dichiarazioni variabili. Rendono possibile il reutilizzare il codice sorgente molte volte. Gli argomenti vengono utilizzati per abilitare le funzioni in modo dinamico e chiamare funzioni relativamente simili modificando determinati valori, portando a un risultato diverso o flusso di istruzioni. Otterremo un sintaxerror se lo utilizziamo in modo improprio.

Un sintaxerror è un errore del linguaggio di programmazione Python che si verifica quando un programma non segue le regole predefinite del linguaggio. È un aspetto relativamente tipico dell'errore umano che si verifica durante la digitazione e nell'uso dei sistemi. Ogni volta che viene visualizzata questa forma di errore, l'interprete di Python fornisce dati utili, rendendo la maggior parte degli errori di sintassi semplice da risolvere.

In questo tutorial, esamineremo perché l'errore "Syntaxerror: non può assegnare alla chiamata" si presenta nei codici Python e su come risolverlo. Per valutare l'adeguatezza di questo errore, esamineremo diversi esempi che lo illustrano.

Ottenere la radice quadrata dell'array

A causa di una parentesi mancata o di una dichiarazione variabile impropria, la "Syntaxerror: Impossibile assegnare alla chiamata di funzione" avviene ogni volta che il programma termina inaspettatamente senza completare parte del codice. Eseguiamo un codice che itera attraverso ogni valore dell'array, calcolando la radice quadrata di quegli array e restituendo un array che contiene la radice quadrata dei numeri definiti:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Importa Numpy come NP
Importa matplotlib.Pyplot come Plt
sq_num = [25, 81, 100, 121, 144, 169]
def sq_root (num):
sq_roots = []
per n in numeri:
n_sqrt = n ** 1.5
sq_roots.append (n_sqrt)
restituire sq_roots
sq_root (sq_num) = sq_roots
stampa (sq_roots)

Qui, abbiamo introdotto le biblioteche numpy come "np" e matplotlib.Pyplot come "PLT". Quindi, abbiamo dichiarato un elenco di valori casuali e specificato gli elementi dell'elenco. Questi elementi sono archiviati in una variabile "sq_num". Abbiamo definito la funzione "sq_root ()" e abbiamo superato l'elenco definito come parametro alla funzione "sq_root ()".

Ora abbiamo applicato il ciclo "per". Abbiamo applicato una condizione che mostra che ogni numero nell'elenco verrà moltiplicato per 1.5 e quindi il valore dell'elenco viene incrementato. Abbiamo inserito il comando "return" in cui il valore fornito è assegnato a una variabile e l'uscita viene stampata sulla console utilizzando la funzione print ().

Abbiamo intenzione di fornire un valore a una chiamata di funzione, che ha portato a TheSyntaxerror. Sq_root (sq_num) è la chiamata del metodo utilizzato in questa istanza. Abbiamo tentato di impostare il valore sq_roots sulla variabile SQ_Root (SQ_NUM). Ogni volta che dobbiamo allocare la risposta di una funzione a un attributo, specifichiamo prima la variabile. Il nome del parametro, il segno dell'uguaglianza e il valore dato a quella variabile sono disposti in quell'ordine.

Soluzione:

Per correggere questo, dobbiamo modificare la disposizione delle dichiarazioni variabili (sq_roots = sq_roots (sq_num)). Viene ben prima dell'istruzione "stampa". Il programma esegue correttamente e visualizza i valori della radice quadrata sullo schermo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Importa Numpy come NP
Importa matplotlib.Pyplot come Plt
sq_num = [25, 81, 100, 121, 144, 169]
def sq_root (num):
sq_roots = []
per n in num:
n_sqrt = n ** 1.5
sq_roots.append (n_sqrt)
stampa (sq_roots)
[5.0, 9.0, 10, 11, 12, 13]

Puoi controllare il seguente output:

Trovare la percentuale dei marchi

Gli studenti di Python per principianti tendono a commettere questo errore se mancano la dichiarazione variabile e la chiamata della funzione durante il processo di allocazione. Il parametro con cui intendiamo allocare il valore dovrebbe essere sul lato sinistro del segno uguale (=) e la funzione che fornisce il valore dovrebbe essere sul lato destro.

Diamo un'occhiata a questo esempio in cui la chiamata di funzione è sul lato sinistro e il nome della variabile è sulla destra:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Importa Numpy come NP
Importa matplotlib.Pyplot come Plt
def per (m):
Ottieni_Marks = Sum (M)
Maximum_marks = len (m) *100
restituire round ((otten_marks/total_marks)*100, 2)
std_m = [80, 70, 90, 85, 75]
per (std_m) = total_per
Stampa (Total_per)

Dopo aver incluso le librerie richieste per questo programma, abbiamo definito la funzione per () per trovare la percentuale dei marchi. Abbiamo creato due elenchi denominati "otten_marks" e "total_marks". Abbiamo applicato la funzione Len () e quindi moltiplicata per 100 e impostata nella variabile "Total_marks". Abbiamo inserito l'istruzione "return". Il "otten_marks" è diviso per "total_marks" e moltiplicato il valore per 100. Abbiamo applicato questa formula per ottenere la percentuale dei segni dello studente.

Quindi abbiamo creato un array che contiene i segni dello studente. Abbiamo assegnato il valore alla funzione per () nell'ordine "per (std_m) = total_per". Abbiamo applicato il comando "stampa" alla fine del codice.

Possiamo detrarre dall'istruzione Errore che stiamo avendo un errore sulla riga di codice 12 quando intendevamo aggiungere la variabile "Total_per" alla Dichiarazione delle chiamate della funzione per (std_m). L'aggiunta della variabile è inappropriata secondo la sintassi di Python.

Soluzione:

Abbiamo cambiato le posizioni della chiamata funzione (std_m) e la variabile "total_per" per risolvere questo errore. Di conseguenza, la variabile "Total_per" viene assegnata al valore fornito della funzione per ().

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Importa Numpy come NP
Importa matplotlib.Pyplot come Plt
def per (m):
Ottieni_Marks = Sum (M)
total_marks = len (m) *100
restituire round ((otten_marks/total_marks)*100, 2)
std_m = [80, 70, 90, 85, 75]
total_per = per (std_m)
Stampa (Total_per, '%')

Puoi controllare il seguente output:

Conclusione

In questo articolo, abbiamo parlato di "Syntaxerror: Impossibile assegnare alla funzione di funzione."Quando abbiamo intenzione di delegare una chiamata di funzione alla variabile definita, otteniamo il risultato," Syntaxerror: non è possibile assegnare alla chiamata di funzione."Supponiamo che la chiamata di funzione arrivi poco prima della variabile locale. Il codice Python valuterebbe il codice come se tentasse di dare valore a una singola variabile con lo stesso titolo della chiamata di funzione.

Per correggere questo errore, dobbiamo utilizzare la sintassi corretta di Python per la dichiarazione della variabile definita. Il nome della variabile richiesta viene per primo, seguito dal segno uguale e, infine, i dati per specificare quella variabile. Quando si assegna il valore restituito di una chiamata a una variabile richiesta, la variabile dovrebbe essere sul lato sinistro e il metodo dovrebbe essere sul lato destro.