2016-12-25 4 views
0

Die Aufgabe besteht darin, eine Funktion zu definieren, die alle Ziffern einer Zahl hinzufügt. Zuerst muss ich die Eingabe (int) in eine Zeichenfolge konvertieren. Dann lege ich jeden String in eine Liste und füge sie dann alle zusammen. Aber ich kann nicht in der Vergangenheit diese:Warum ist def-Funktion (str (n)) eine ungültige Syntax? - python

def digit(str(n)): 
    # the rest of the code 

, ohne dass dies zu sehen:

SyntaxError: invalid syntax

+2

Sie können n in den Parametern nicht ändern. Sie müssten es im Rest des Codebereichs tun. –

Antwort

0

Das Problem ist, dass in Python kann man nicht def digit(str(n)): schreiben

Sie müssen die str(n) aus der Definition nehmen und lege es in den Hauptcode. Dies sollte hoffentlich den Trick machen:

def digit(n): 
    n = str(n) 
    # the rest of the code 
1

Sie können keine Funktion direkt auf ein Argument wie die Anwendung. Wenn Sie dies wünschen, sollten Sie es in den Körper der Funktion tun:

def digit(n): 
    n = str(n) 
    # the rest of the code 
0

Es ist ungültige Syntax, weil Sie erwartet werden, dort einen Prototyp zu definieren, nicht Code.

Ein Prototyp ist die Signatur einer Funktion besteht aus: - Schlüsselwort def - Funktionsname - Liste der Parameter

Ex (Python nicht ihre explizite Typen erfordert erwähnt werden): def Ziffer (n)