Ich bin unsicher, was check_leap_year()
Funktion ist, damit ich es nur kommentiert und rief die Funktion, die Sie uns gegeben haben, statt .
Wenn Sie etwas in eine Funktion übergeben, um sie zu manipulieren und wieder anders auszuspucken als sie kam, sollten Sie eine neue Variable für den geänderten Datensatz erstellen. Ich
In diesem Fall verwenden num = ""
Durch eine leere Zeichenfolge innerhalb der Funktion initiiert ich nun die Daten hinzufügen, die meinen Zustand zu diesem neuen, leeren String.
isdigit()
gibt einen booleschen Wert zurück. Anstatt also if x.isdigit:
zu verwenden, gewöhnen Sie sich an, den Booleschen Wert zu überprüfen. Versuchen Sie stattdessen if x.isdigit() is True
.
Geben Sie die fertige neue Zeichenfolge zurück, nachdem sie fertig ist. Stellen Sie sicher, dass Ihre Rücksendeanweisung korrekt eingerückt ist oder dass Sie nur eine Zahl anstelle von allen zurückgeben. Die Rückkehr sollte außerhalb der Schleife sein, so dass sie erst zurückkehrt, wenn die Schleife beendet ist.
num_string = "1a2s3d4f5g666hhh777jjj888kkk9l0"
def check_if_number(number_string):
num = ""
for ch in number_string:
if ch.isdigit() is True:
num += ch
return num
print(check_if_number(num_string))
Ausgang:
>>> 1234566677788890
Was ist 'check_leap_year' Funktion? Außerdem, welchen genauen Fehler bekommst du? – Jarvis
ist es check_if_number. Entschuldigung für die Verwirrung. Ich bekomme TypeError: String-Indizes müssen ganze Zahlen sein. Wenn ich den Code – KBdoesCode
ausführen nicht innerhalb der FOR-Schleife zurückkehren, am Ende zurückkehren. Sie müssen auch eine Ergebnisvariable hinzufügen, da 'num' nur ein einzelnes Zeichen ist,' ch' ist immer noch eine Zeichenkette, die Sie nach der Überprüfung in ein 'int' konvertieren müssen, da Sie nicht damit indizieren können. Versuchen Sie, alle nicht-einstelligen Zeichen zu entfernen oder nur zu prüfen, ob die Ziffer nicht nur Ziffern ist? –