Python-Standardargumente

Ein Argument kann einen Standardwert in einer Python-Funktion haben. Wenn Sie Argumente mit Standardwerten angeben, mussen sie nach Argumenten ohne Standardwerte stehen. Andernfalls wird ein "SyntaxError: Nicht-Standardargument folgt Standardargument‚" error.

In diesem Leitfaden sprechen wir daruber, was dieser Fehler bedeutet und warum er ausgelöst wird. Wir gehen ein Beispiel fur diesen Fehler durch, damit Sie verstehen, wie Sie ihn in Ihrem Code lösen können.

SyntaxError: Nicht-Standardargument folgt Standardargument

Python weist Variablen in der Reihenfolge, in der sie in einem Funktionsaufruf erscheinen.

Standardargumente mussen vor Nicht-Standardargumenten stehen. Dies liegt daran, dass Nicht-Standardargumente obligatorisch sind.

Während Standardwerte einen Wert haben, auch wenn keiner angegeben ist, hat ein Nicht-Standardargument keinen Wert. Standardargumente haben keinen Zweck, wenn Sie fur jedes von ihnen einen Wert angeben mussen.

Betrachten Sie den folgenden Code:

In diesem Code tut Python wei√ü nicht, ob "John‚" wird "Name‚" oder "Punktzahl‚". Wir mussen explizit die Werte verwenden, die jedem Argument in unserem Funktionsaufruf zugewiesen werden sollen:

Diese Syntax ist ausfuhrlicher, als wenn Sie nur Standardargumente vor Nicht-Standardargumenten angeben.

81 % der Teilnehmer gaben an, dass sie sich nach dem Besuch eines Bootcamps hinsichtlich ihrer Berufsaussichten im Tech-Bereich sicherer fuhlten. Lassen Sie sich noch heute in ein Bootcamp einweisen.

Der durchschnittliche Bootcamp-Absolvent verbrachte weniger als sechs Monate im Karriereubergang, vom Beginn eines Bootcamps bis zur Suche nach seinem ersten Job.

Alternativ können wir einen Wert fur jedes Argument. Dadurch wird der Zweck von Argumenten mit Standardwerten zunichte gemacht.

In einer Funktion mussen die Argumente in folgender Reihenfolge erscheinen:

Wenn Wenn Sie diese Reihenfolge nicht einhalten, gibt Python eine Fehlermeldung zuruck.

Ein Beispielszenario

Schreiben Sie ein Programm, das den Prozentsatz berechnet, den ein Schuler bei einem Test verdient hat.

Definieren Sie zunächst eine Funktion, die den Prozentsatz berechnet, den ein Schuler bei einem Test verdient:

Unsere Funktion akzeptiert zwei Argumente: die Punktzahl, die ein Schuler erzielt hat und wie viele Punkte zur Verfugung standen. Bitten Sie als Nächstes einen Benutzer, sein Testergebnis und die Anzahl der im Test verfugbaren Punkte anzugeben:

Wir konvertieren beide Werte, die ein Benutzer eingibt, in Gleitkommazahlen so wir können mit ihnen eine mathematische Operation durchfuhren. Rufen Sie als Nächstes unsere Funktion auf und ubergeben Sie die von unserem Benutzer eingegebenen Werte durch unsere Funktion:

Sobald unser Programm den Prozentsatz berechnet hat, den ein Schuler bei einem Test verdient hat, drucken wir diesen Wert an die Konsole aus. Wir runden den Prozentsatz mit der Methode round() auf zwei Dezimalstellen. Fuhren Sie unseren Code aus und sehen Sie, was passiert:

Unser Code gibt einen Fehler zuruck. Lassen Sie uns dieses Problem beheben.

Die Lösung

Wir haben ein Standardargument vor einem Nicht-Standardargument in unserer Funktion "Berechnung_Prozentsatz" angegeben:

Dies macht den Zweck eines Standardarguments nutzlos. Woher wei√ü Python, welcher Wert fur "Score‚" wenn wir nur einen Wert angeben?

Um dieses Problem zu lösen, mussen wir die Reihenfolge unserer Argumente ändern, sodass unsere Standardargumente zuletzt erscheinen. Lassen Sie uns unseren Code ändern:

Versuchen Sie, unseren Code auszufuhren:

Unser Code berechnet erfolgreich den Prozentsatz, den ein Schuler bei seinem Test verdient hat.

Schlussfolgerung

Der Python-Fehler "SyntaxError: Nicht-Standard-Argument folgt Standard-Argument‚" wird ausgegeben, wenn Sie ein Standard-Argument vor einem Nicht-Standard-Argument angeben.

Um diesen Fehler zu beheben, stellen Sie sicher, dass Sie alle Argumente in einer Funktion so anordnen, dass Standardargumente nach Nicht-Standardargumenten kommen. Die Reihenfolge, in der Argumente erscheinen sollten, ist: Nicht-Standard, Standard, Schlusselwort, Variables Schlusselwort.

Jetzt sind Sie bereit, diesen häufigen Python-Fehler wie ein Expertencoder zu beheben!