logo

Come risolvere: Errore di sintassi: l'argomento posizionale segue l'argomento della parola chiave in Python

In questo articolo, discuteremo come correggere l'errore di sintassi secondo cui l'argomento posizionale segue l'argomento della parola chiave in Python

Un argomento è un valore fornito a una funzione quando la chiami. Ad esempio, guarda il programma seguente:



Pitone






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



quanti milioni ci sono in un miliardo
>

>

Produzione

100>

IL calcola_quadrato() la funzione accetta un argomento nessuno che è un input intero o decimale, calcola il quadrato del numero e restituisce il valore.

Parole chiave e argomenti posizionali in Python

Esistono due tipi di argomenti, vale a dire parola chiave e posizionale. Come suggerisce il nome, l'argomento parola chiave è identificato da una funzione basata su una chiave mentre l'argomento posizionale è identificato in base alla sua posizione nella definizione della funzione. Diamo un'occhiata a questo con un esempio.

Pitone




# 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>)>

>

>

Produzione:

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>

Spiegazione:

  1. Durante la prima chiamata di funzione, abbiamo fornito 3 argomenti con qualsiasi parola chiave. Python interpretato nell'ordine in cui sono stati definiti nella funzione che considera la posizione di queste parole chiave.
  2. Nella seconda chiamata di funzione, abbiamo fornito 2 argomenti, ma l'output viene comunque mostrato perché abbiamo fornito 2 argomenti posizionali e la funzione ha un valore predefinito per l'argomento finale C . Pertanto, tiene conto del valore predefinito per l'argomento finale.
  3. Nella terza chiamata di funzione vengono forniti tre argomenti chiave. Il vantaggio di fornire questo argomento con parola chiave è che non è necessario ricordare le posizioni ma solo le parole chiave richieste per la chiamata della funzione. Queste parole chiave possono essere fornite in qualsiasi ordine, ma la funzione le prenderà come coppie chiave-valore e non nell'ordine in cui vengono passate.

Errore di sintassi: l'argomento posizionale segue l'argomento della parola chiave

Nei 3 casi precedenti, abbiamo visto come Python può interpretare i valori degli argomenti passati durante una chiamata di funzione. Consideriamo ora l'esempio seguente che porta a a Errore di sintassi .

Pitone


test e tipi di test



# 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>)>

>

>

Produzione:

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

Spiegazione:

In questo esempio, l'errore si è verificato a causa del modo in cui abbiamo passato gli argomenti durante la chiamata alla funzione. L'argomento posizionale errore segue l'argomento parola chiave significa che se nella chiamata di funzione viene utilizzato un argomento parola chiave, questo dovrebbe sempre essere seguito da argomenti parola chiave. Gli argomenti posizionali possono essere scritti all'inizio prima che venga passato qualsiasi argomento con parola chiave. Qui, a=2 E c=3 sono argomenti con parole chiave. Il 3° argomento 9 è un argomento posizionale. Questo non può essere interpretato da Python su quale chiave abbia quale valore. Il modo in cui Python funziona a questo riguardo è che prima mapperà l'argomento posizionale e poi qualsiasi argomento con parola chiave se presente.

Come evitare l'errore – Conclusione