arguments par défaut de Python

Un argument peut avoir une valeur par défaut dans une fonction Python. Si vous spécifiez des arguments avec des valeurs par défaut, ils doivent venir après les arguments sans valeurs par défaut. Sinon, vous rencontrez une "SyntaxError : un argument différent de celui par défaut suit l’argument par défaut‚" error.

Dans ce guide, nous expliquons ce que signifie cette erreur et pourquoi elle est générée. Nous passons en revue un exemple de cette erreur pour vous aider à comprendre comment la résoudre dans votre code.

Erreur de syntaxe : l’argument non défini par défaut suit l’argument par défaut

Python attribue des arguments à variables dans l’ordre dans lequel elles apparaissent dans un appel de fonction.

Les arguments par défaut doivent précéder les arguments autres que ceux par défaut. En effet, les arguments autres que ceux par défaut sont obligatoires.

Alors que les valeurs par défaut ont une valeur même si aucune n’est spécifiée, un argument autre que celui par défaut n’en a pas. Les arguments par défaut n’ont aucune utilité si vous devez indiquer une valeur pour chacun d’eux.

Considérez le code suivant :

Dans ce code, Python fait sait pas si "John" est affecté à "nom" ou "score". Nous devons utiliser explicitement les valeurs qui doivent être affectées à chaque argument dans notre appel de fonction :

Cette syntaxe est plus détaillée que si vous indiquez simplement les arguments par défaut avant ceux qui ne sont pas par défaut.

81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi dans le domaine technologique après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Alternativement, nous pouvons attribuer un valeur à chaque argument. Cela va à l’encontre du but d’avoir des arguments avec des valeurs par défaut.

Dans une fonction, l’ordre dans lequel les arguments doivent apparaaître est :

Si vous ne respectez pas cet ordre, Python renvoie un message d’erreur.

Un exemple de scénario

√âcrivez un programme qui calcule le pourcentage qu’un étudiant a gagné sur un test.

Commencez par définir une fonction qui calcule le pourcentage gagné par un étudiant sur un test :

Notre fonction accepte deux arguments : la note obtenue par un étudiant et le nombre de notes disponibles. Ensuite, demandez à un utilisateur de présenter sa note et le nombre de notes disponibles dans le test :

Nous convertissons les deux valeurs qu’un utilisateur insère en nombres à virgule flottante donc nous pouvons effectuer une opération mathématique avec eux. Ensuite, appelez notre fonction et transmettez les valeurs que notre utilisateur a insérées via notre fonction :

Une fois que notre programme a calculé le pourcentage qu’un étudiant a gagné lors d’un test, nous imprimons cette valeur sur la console. Nous arrondissons le pourcentage à deux décimales en utilisant la méthode round(). Exécutez notre code et voyez ce qui se passe :

Notre code renvoie une erreur. Résolvons ce problème.

La solution

Nous avons spécifié un argument par défaut avant un argument différent de celui par défaut dans notre fonction calculate_percentage :

Cela rend inutile l’objectif d’avoir un argument par défaut. Comment Python saura-t-il quelle valeur doit être définie pour "score‚" si nous ne spécifions qu’une seule valeur ?

Pour résoudre ce problème, nous devons modifier l’ordre de nos arguments afin que nos arguments par défaut apparaissent en dernier. Changeons notre code :

Essayez d’exécuter notre code :

Notre code calcule avec succès le pourcentage qu’un étudiant a gagné sur son test.

Conclusion

L’erreur Python "SyntaxError : non-default argument suit default argument" est déclenchée lorsque vous spécifiez un argument par défaut avant un autre argument.

Pour résoudre cette erreur, assurez-vous de disposer tous les arguments d’une fonction de sorte que les arguments par défaut viennent après les arguments autres que ceux par défaut. L’ordre dans lequel les arguments doivent apparaaître est : non par défaut, par défaut, mot-clé, mot-clé variable.

Vous êtes maintenant prêt à résoudre cette erreur Python courante comme un codeur expert !< /p>