Un argomento può avere un valore predefinito in una funzione Python. Se specifichi argomenti con valori predefiniti, devono venire dopo argomenti senza valori predefiniti. In caso contrario, si verifica un "Errore di sintassi: l’argomento non predefinito segue l’argomento predefinito" error.
In questa guida, parliamo di cosa significa questo errore e perché viene generato. Esaminiamo un esempio di questo errore per aiutarti a capire come risolverlo nel tuo codice.
SyntaxError: l’argomento non predefinito segue l’argomento predefinito
Python assegna argomenti a variabili nell’ordine in cui appaiono in una chiamata di funzione.
Gli argomenti predefiniti devono precedere gli argomenti non predefiniti. Questo perché gli argomenti non predefiniti sono obbligatori.
Mentre i valori predefiniti hanno un valore anche se non ne viene specificato uno, un argomento non predefinito non lo fa. Gli argomenti predefiniti non hanno alcuno scopo se devi indicare un valore per ciascuno di essi.
Considera il seguente codice:
In questo codice, Python lo fa non so se "John" è assegnato a "nome" o "punteggio". Dobbiamo usare esplicitamente i valori che devono essere assegnati ad ogni argomento nella nostra chiamata di funzione:
Questa sintassi è più dettagliata rispetto a quando si inseriscono gli argomenti predefiniti prima di quelli non predefiniti.
L’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnologico dopo aver partecipato a un bootcamp. Fatti abbinare a un bootcamp oggi.
Il laureato medio di un bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’avvio di un bootcamp alla ricerca del primo lavoro.
In alternativa, possiamo assegnare un valore ad ogni argomento. Ciò vanifica lo scopo di avere argomenti con valori predefiniti.
In una funzione, l’ordine in cui devono apparire gli argomenti è:
- Argomenti posizionali (non predefiniti)
- Argomenti delle parole chiave (predefinito)
- Argomenti di sole parole chiave (*args)
- Argomenti variabili di parole chiave (**kwargs)
Se non aderisci a questo ordine, Python restituisce un messaggio di errore.
Uno scenario di esempio
Scrivi un programma che calcoli la percentuale che uno studente ha guadagnato in un test.