logo

Korjaus: SyntaxError: sijaintiargumentti seuraa avainsanaargumenttia Pythonissa

Tässä artikkelissa keskustelemme kuinka korjata syntaksivirhe, joka on sijaintiargumentti seuraa avainsanaargumenttia Pythonissa

Argumentti on arvo, joka annetaan funktiolle, kun kutsut funktiota. Katso esimerkiksi alla olevaa ohjelmaa -



Python






# function> def> calculate_square(num):> >return> num>*> num> > > # call the function> result>=> calculate_square(>10>)> print>(result)>



aws sns
>

>

Lähtö

100>

The laske_neliö() funktio ottaa argumentin yhdellä joka on kokonaisluku tai desimaalisyöttö, laskee luvun neliön ja palauttaa arvon.

Avainsanat ja sijaintiargumentit Pythonissa

On olemassa kahdenlaisia ​​argumentteja, nimittäin avainsana ja sijainti. Kuten nimestä voi päätellä, avainsanaargumentti tunnistetaan funktiolla, joka perustuu johonkin avaimeen, kun taas sijaintiargumentti tunnistetaan sen sijainnin perusteella funktion määritelmässä. Katsotaanpa tätä esimerkin avulla.

Python




# function> def> foo(a, b, c>=>10>):> >print>(>'a ='>, a)> >print>(>'b ='>, b)> >print>(>'c ='>, c)> > > # call the functions> print>(>'Function Call 1'>)> foo(>2>,>3>,>8>)> print>(>'Function Call 2'>)> foo(>2>,>3>)> print>(>'Function Call 3'>)> foo(a>=>2>, c>=>3>, b>=>10>)>

>

>

Lähtö:

Function Call 1 a = 2 b = 3 c = 8 Function Call 2 a = 2 b = 3 c = 10 Function Call 3 a = 2 b = 10 c = 3>

Selitys:

  1. Ensimmäisen funktiokutsun aikana annoimme 3 argumenttia millä tahansa avainsanalla. Python tulkitaan siinä järjestyksessä, miten ne on määritelty funktiossa, joka harkitsee näiden avainsanojen sijaintia.
  2. Toisessa funktiokutsussa annoimme 2 argumenttia, mutta silti tulos näytetään, koska annoimme 2 sijaintiargumenttia ja funktiolla on oletusarvo lopulliselle argumentille c . Joten se ottaa oletusarvon huomioon lopullisessa argumentissa.
  3. Kolmannessa funktiokutsussa tarjotaan kolme avainsanaargumenttia. Tämän avainsana-argumentin tarjoamisen etu on, että sinun ei tarvitse muistaa paikkoja, vaan vain avainsanat, jotka tarvitaan funktiokutsussa. Nämä avainsanat voidaan antaa missä tahansa järjestyksessä, mutta toiminto ottaa ne avain-arvo-pareina eikä siinä järjestyksessä, jossa ne välitetään.

SyntaxError: sijaintiargumentti seuraa avainsanaargumenttia

Yllä olevissa kolmessa tapauksessa olemme nähneet, kuinka python voi tulkita argumenttiarvoja, jotka välitetään funktiokutsun aikana. Tarkastellaan nyt alla olevaa esimerkkiä, joka johtaa a Syntaksivirhe .

Python


suodatus python



# function definition> def> foo(a, b, c>=>10>):> >print>(>'a ='>, a)> >print>(>'b ='>, b)> >print>(>'c ='>, c)> > ># call the function> print>(>'Function Call 4'>)> foo(a>=>2>, c>=>3>,>9>)>

>

>

Lähtö:

File '', line 7 foo(a=2, c=3, 9) ^ SyntaxError: positional argument follows keyword argument>

Selitys:

Tässä esimerkissä virhe aiheutui tavasta, jolla olemme välittäneet argumentit funktiokutsun aikana. Virheen sijaintiargumentti seuraa avainsanaargumenttia tarkoittaa, että jos funktiokutsussa käytetään avainsanaargumenttia, sen jälkeen tulee aina olla avainsanaargumentteja. Paikkaargumentit voidaan kirjoittaa alussa ennen kuin mikään avainsanaargumentti ohitetaan. Tässä, a = 2 ja c=3 ovat avainsanaargumentteja. Kolmas argumentti 9 on asemaa koskeva argumentti. Python ei voi tulkita tätä, millä avaimella on mikä arvo. Python toimii tässä suhteessa siten, että se kartoittaa ensin sijaintiargumentin ja sitten minkä tahansa avainsanaargumentin, jos se on olemassa.

Kuinka välttää virhe – Johtopäätös