warum ist meine Parameter nicht definiert in python?

Bevor ich meine debug-code, ich würde gerne wissen, warum es ist ein Fehler aufgetreten, wenn ich die Funktion aufrufen?
Er sagt: "NameError: name 'stDigs' ist nicht definiert". Ich habe versucht, mit "avgUntilLetter(0123a)" und "avgUntilLetter("0123a")" aber keiner von Ihnen arbeitet. Helft mir plz!

Diese Funktion erhält als Eingabe einen string mit Ziffern oder Buchstaben.
Die Funktion zurückgeben soll eine float-Zahl, contaning der Durchschnitt berechnet unter Berücksichtigung aller der Ziffern in der Zeichenkette beginnend form der ersten position und considerign alle Ziffern, bis ein Buchstabe gefunden wird oder bis das Ende der Zeichenfolge.

Ein Beispiel:
avgUntilLetter('0123a456') zurückgeben sollte, 1.5

def avgUntilLetter (stDigs):
    num = 0
    each_char = stDigs[num]

    while each_char.isdigit() == True and num < len(stDigs):
        num = num + 1
        each_char = stDigs[num]

    digits = stDigs[0:num]
    avg = sum(digits)/len(digits)

    return avg

avgUntilLetter(stDigs)

Ja, ich weiß, es gibt eine Menge Fehler, die gelöst werden musste. Ich muss nur, es zu lösen, ein zu einer Zeit. Wenn ich den Aufruf der Funktion mit "avgUntilLetter ("0123a")", die angegebenen Fehler verschwunden, aber eine Art Fehler aufgetaucht. Hmm.. ich bin immer noch halten, der es versucht.

  • stDigs muss einen Wert haben, entweder eine Liste oder ein string, etc.. Bei der Definition der avguntilletter Funktion, die stDigs ist nur ein argument, das muss etwas Wert wenn Sie die Funktion aufrufen.
  • Der Grund, warum Sie bekommen, dass der Fehler beim Aufruf von avgUntilLetter(stDigs) ist, weil stDigs ist nicht definiert. Welche Fehler haben Sie, wenn Sie anrufen avgUntilLetter('0123a')?
  • Sie werden auch erhalten eine IndexError wie Sie versuchen, Zugriff auf stDigs[len(stDigs)] in Ihrem while Schleife. Und sum(digits) wird nicht funktionieren, entweder, wie digits ist eine Zeichenfolge, keine Zahl.
InformationsquelleAutor user2958352 | 2013-11-05
Schreibe einen Kommentar