Hvordan løse Python “SyntaxError kan ikke tilordne å fungere Ring”

Hvordan løse Python “SyntaxError kan ikke tilordne å fungere Ring”

Python er nesten helt avhengig av funksjonssamtaler og variable erklæringer. De gjør det mulig å gjeninnføre kildekoden mange ganger. Argumenter brukes til å aktivere funksjoner dynamisk og kalle relativt like funksjoner mens du endrer visse verdier, noe som fører til et annet resultat eller strøm av instruksjoner. Vi vil få en syntaxError hvis vi bruker den feil.

En syntaxError er en feil i Python -programmeringsspråket som skjer når et program ikke følger språkets forhåndsdefinerte regler. Det er et relativt typisk aspekt av menneskelig feil som oppstår under skriving så vel som ved bruk av systemene. Hver gang denne feilformen vises, gir Python -tolken nyttige data, noe som gjør flertallet av syntaksfeilene enkle å løse.

I denne opplæringen vil vi se på hvorfor feilen "SyntaxError: Kan ikke tilordne til funksjonsanrop" oppstår i Python -koder og hvordan du fikser det. For å vurdere tilstrekkeligheten til denne feilen, vil vi gå over forskjellige eksempler som illustrerer den.

Få kvadratroten til matrisen

På grunn av en savnet parentes eller feil variabel erklæring, skjer "syntaxError: kan ikke tilordne til funksjonsanrop" når programmet slutter uventet uten å fullføre noe av koden. La oss utføre en kode som itererer gjennom hver verdi av matrisen, beregner kvadratroten til disse matriser og returnerer en matrise som inneholder kvadratroten til de definerte tallene:

1
2
3
4
5
6
7
8
9
10
11
12
1. 3
14
15
16
17
18
19
20
21
Importer numpy som NP
Importer matplotlib.Pyplot som Plt
SQ_NUM = [25, 81, 100, 121, 144, 169]
def sq_root (num):
SQ_ROOTS = []
for n i tall:
n_sqrt = n ** 1.5
SQ_ROOTS.vedlegg (n_sqrt)
Returner SQ_ROOTS
SQ_ROOT (SQ_NUM) = SQ_ROOTS
print (sq_roots)

Her introduserte vi bibliotekene Numpy som “NP” og Matplotlib.Pyplot som “PLT”. Deretter erklærte vi en liste over tilfeldige verdier og spesifiserte elementene på listen. Disse elementene lagres i en variabel “SQ_NUM”. Vi definerte funksjonen “SQ_ROOT ()” og passerte den definerte listen som en parameter til funksjonen “SQ_ROOT ()”.

Nå påførte vi “for” -sløyfen. Vi brukte en tilstand som viser at hvert tall på listen vil bli multiplisert med 1.5 og deretter økes verdien på listen. Vi skrev inn "retur" -kommandoen der verdien den oppgitt er tilordnet en variabel, og utgangen skrives ut til konsollen ved å bruke print () -funksjonen.

Vi hadde til hensikt å gi en verdi til en funksjonsanrop, noe som resulterte i ThesyntaxError. SQ_ROOT (SQ_NUM) er metodesamtalen som brukes i dette tilfellet. Vi forsøkte å sette verdien SQ_ROOTS til SQ_ROOT (SQ_NUM) variabel. Hver gang vi trenger å tildele en funksjons svar på et attributt, spesifiserer vi variabelen først. Parameternavnet, tegn på likhet og verdien gitt til den variabelen er ordnet i den rekkefølgen.

Løsning:

For å fikse dette, må vi endre arrangementet av variable erklæringer (SQ_ROOTS = SQ_ROOTS (SQ_NUM)). Det kommer i god tid før "trykte" uttalelsen. Programmet kjøres vellykket og viser kvadratrotverdiene på skjermen.

1
2
3
4
5
6
7
8
9
10
11
12
1. 3
14
15
16
17
18
19
Importer numpy som NP
Importer matplotlib.Pyplot som Plt
SQ_NUM = [25, 81, 100, 121, 144, 169]
def sq_root (num):
SQ_ROOTS = []
for n i num:
n_sqrt = n ** 1.5
SQ_ROOTS.vedlegg (n_sqrt)
print (sq_roots)
[5.0, 9.0, 10, 11, 12, 13]

Du kan sjekke følgende utdata:

Finne prosentandelen av merkene

Nybegynner Python -elever har en tendens til å gjøre denne feilen hvis de går glipp av variabel erklæringen og funksjonsanropet under tildelingsprosessen. Parameteren vi har til hensikt å tildele verdien skal være på venstre side av det likeverdige tegnet (=), og funksjonen som gir verdien skal være på høyre side.

La oss se på dette eksemplet der funksjonssamtalen er på venstre side og navnet på variabelen er til høyre:

1
2
3
4
5
6
7
8
9
10
11
12
1. 3
14
15
16
17
Importer numpy som NP
Importer matplotlib.Pyplot som Plt
def per (m):
skaffe_marks = sum (m)
Maximum_marks = len (m) *100
Returrund ((ACCEE_MARKS/TOTAL_MARKS)*100, 2)
STD_M = [80, 70, 90, 85, 75]
per (std_m) = total_per
print (total_per)

Etter å ha inkludert bibliotekene som kreves for dette programmet, definerte vi per () -funksjonen for å finne prosentandelen av merkene. Vi opprettet to lister som heter “ACCEE_MARKS” og “Total_marks”. Vi brukte Len () -funksjonen og multipliserte den deretter med 100 og satte den til variabelen “Total_marks”. Vi skrev inn "retur" -uttalelsen ". “ACCEE_MARKS” er delt på “Total_marks” og multiplisert verdien med 100. Vi brukte denne formelen for å få prosentandelen av merkene til studenten.

Så opprettet vi en rekke som inneholder merkene til studenten. Vi tildelte verdien til per () -funksjonen i rekkefølgen “per (std_m) = total_per”. Vi brukte kommandoen "Print" på slutten av koden.

Vi kan trekke fra feilserklæringen om at vi har en feil på kodelinjen 12 når vi hadde tenkt å legge til "Total_per" -variabelen til Per (STD_M) funksjonsanropsdeklarasjon. Å legge til variabelen er upassende i henhold til Python -syntaks.

Løsning:

Vi byttet plassering av funksjonen per (std_m) og "total_per" -variabelen for å løse denne feilen. Som et resultat tildeles variabelen “Total_per” til den medfølgende verdien av per () -funksjonen.

1
2
3
4
5
6
7
8
9
10
11
12
1. 3
14
15
16
Importer numpy som NP
Importer matplotlib.Pyplot som Plt
def per (m):
skaffe_marks = sum (m)
Total_marks = len (m) *100
Returrund ((ACCEE_MARKS/TOTAL_MARKS)*100, 2)
STD_M = [80, 70, 90, 85, 75]
total_per = per (std_m)
trykk (total_per, '%')

Du kan sjekke følgende utdata:

Konklusjon

I denne artikkelen snakket vi om “SyntaxError: Kan ikke tilordne å fungere.”Når vi hadde tenkt å delegere en funksjonsanrop til den definerte variabelen, får vi resultatet,“ SyntaxError: Kan ikke tildele til funksjonsanrop.”La oss anta at funksjonssamtalen kommer rett før den lokale variabelen. Python -koden ville evaluere koden som om den prøver å gi verdi til en enkelt variabel med samme tittel som funksjonssamtalen.

For å fikse denne feilen, må vi bruke riktig Python -syntaks for erklæringen om den definerte variabelen. Navnet på den nødvendige variabelen kommer først, etterfulgt av det likeverdige tegnet, og til slutt dataene for å spesifisere den variabelen. Når du tildeler en funksjonsanrop som er returnert verdi til en nødvendig variabel, skal variabelen være på venstre side, og metoden skal være på høyre side.