Zum Hauptinhalt springen

Eine einfache Möglichkeit, die Summe der Ziffern einer Zahl in einer Python zu finden, ohne Schleifen zu verwenden

Beim Arbeiten mit Zahlen in der Programmierung besteht oft die Aufgabe, die Summe der Ziffern einer Zahl zu finden. Die klassische Lösung besteht darin, eine Schleife zu verwenden, aber in Python ist es möglich, dieses Problem zu lösen, ohne Schleifen zu verwenden. In diesem Artikel betrachten wir eine Möglichkeit, dieses Problem ohne Schleife zu lösen.

Die Summe der Ziffern einer Zahl kann mit mathematischen Operationen und Zeilenoperationen gefunden werden. Die Grundidee besteht darin, eine Zahl in eine Zeichenfolge umzuwandeln und dann zeichenweise darauf zu gehen und alle Ziffern zu addieren. Verwenden Sie die Funktion str(), um eine Zahl in eine Zeichenfolge zu konvertieren, und verwenden Sie die Funktion list(), um Zeichen in einer Zeichenfolge zu erhalten.

Definieren wir zunächst die Funktion digit_sum(), die eine Zahl als Argument akzeptiert und die Summe ihrer Ziffern zurückgibt. Innerhalb der Funktion werden wir die folgenden Schritte verwenden:

Wie berechnet man die Summe der Ziffern einer Zahl in einer Python ohne Schleife

Die Berechnung der Summe der Ziffern einer Zahl ohne die Verwendung von Schleifen kann in vielen praktischen Situationen nützlich sein. Am Beispiel der Programmiersprache Python können Sie verschiedene Möglichkeiten zur Lösung dieses Problems in Betracht ziehen.

1. Rekursion verwenden.

Eine Möglichkeit, die Summe der Ziffern einer Zahl ohne Schleifen zu berechnen, besteht darin, Rekursion zu verwenden. Rekursion ist der Prozess, bei dem eine Funktion sich selbst aufruft.

  1. Erstellen Sie eine Funktion namens sum_of_digits , die ein Argument akzeptiert - eine Zahl.
  2. Überprüfen Sie innerhalb der Funktion den Basisfall, in dem die Zahl kleiner als 10 ist. Wenn dies der Fall ist, geben Sie die Zahl zurück.
  3. Andernfalls rufen Sie die Funktion sum_of_digits rekursiv auf, indem Sie die Summe der Ziffern der durch die Funktion sum erhaltenen Zahl übergeben und die Zahl in eine Zeichenfolge konvertieren:
def sum_of_digits(number):if number < 10:return numberelse:return sum_of_digits(sum(int(digit) for digit in str(number)))

2. Verwenden Sie mathematische Operationen.

  1. Erstellen Sie eine Funktion namens sum_of_digits , die ein Argument akzeptiert - eine Zahl.
  2. Verwenden Sie innerhalb einer Funktion mathematische Operationen, um die Summe der Ziffern einer Zahl zu berechnen, ohne eine Schleife zu verwenden:
def sum_of_digits(number):sum = 0while number > 0:sum += number % 10number = number // 10return sum

Jetzt haben Sie zwei Möglichkeiten, die Summe der Ziffern einer Zahl in Python ohne Schleifen zu berechnen: mit Rekursion und mathematischen Operationen. Wählen Sie einen für Ihre Aufgabe geeigneten aus und verwenden Sie ihn in Ihrem Code.

Methode mit Rekursion

Um die Summe der Ziffern einer Zahl mit Rekursion zu berechnen, müssen Sie die Zahl in zwei Teile aufteilen: die erste Ziffer der Zahl und der Rest der Zahl ohne die erste Ziffer. Addieren wir dann die erste Ziffer der Zahl mit dem Ergebnis des Aufrufs der rekursiven Funktion für den Rest der Zahl.

Betrachten wir ein Beispiel:

ZahlSumme der Ziffern
1234515

In diesem Fall entspricht die Summe der Ziffern der Zahl 12345 der Summe der Ziffern der Zahl 1234 (der Rest der Zahl ohne die erste Ziffer), plus die erste Ziffer der Zahl 12345, dh 1. Das heißt: 1 + die Summe der Ziffern der Zahl 1234.

Eine rekursive Funktion zum Berechnen der Summe der Ziffern einer Zahl könnte folgendermaßen aussehen:

def sum_digits(n):if n < 10:return nelse:return n % 10 + sum_digits(n // 10)

Wenn die Zahl n kleiner als 10 ist, besteht sie hier aus einer Ziffer und die Zahl selbst wird zurückgegeben. Wenn die Zahl n größer oder gleich 10 ist, summieren wir die letzte Ziffer der Zahl (n % 10) mit dem Ergebnis des Funktionsaufrufs für den Rest der Zahl (n // 10).

Jetzt können wir die Funktion sum_digits aufrufen und Zahlen an sie übergeben, um die Summe ihrer Ziffern zu berechnen:

print(sum_digits(12345)) # Output: 15

Auf diese Weise können wir die Summe der Ziffern einer Zahl berechnen, ohne eine Schleife zu verwenden, indem wir die Rekursionsmethode verwenden.

Methode mit Strings

Zunächst muss die Zahl mithilfe der Funktion str() in eine Zeichenfolge konvertiert werden. Anschließend können Sie die map() -Methode verwenden, um jedes Zeichen der Zeichenfolge wieder in eine Zahl umzuwandeln. Mit der map() -Funktion können Sie die angegebene Funktion auf jedes Element des zu iterierenden Objekts anwenden.

Als nächstes können Sie mit der Funktion sum() die Summe aller Elemente der resultierenden Zahlenliste ermitteln. Die Funktion sum() gibt die Summe aller Elemente in einem iterierten Objekt zurück.

Mit dieser Methode ist es einfach, die Summe der Ziffern einer Zahl in Python zu finden, ohne eine Schleife zu verwenden. Hier ist ein Beispiel:

num = 1234digits_sum = sum(map(int, str(num)))print(digits_sum) # Output: 10

In diesem Beispiel wird die Zahl num mithilfe der Funktion str() in eine Zeichenfolge konvertiert. Jedes Zeichen der Zeichenfolge wird dann mithilfe der Funktion int() zurück in eine Zahl konvertiert und von der Funktion map() angewendet. Das Ergebnis der Konvertierung ist eine Liste von Zahlen, die dann an die Funktion sum() übergeben werden, um die Summe zu finden.

Die Verwendung einer String-basierten Methode ermöglicht es Ihnen, das Problem, die Summe der Ziffern einer Zahl zu finden, ohne eine Schleife in Python zu verwenden, einfach und effektiv zu lösen.

Methode mit mathematischen Operationen

Wenn Sie die Summe der Ziffern einer Zahl in Python finden müssen, ohne eine Schleife zu verwenden, können Sie mathematische Operationen verwenden. Dazu können Sie den folgenden Algorithmus verwenden:

SchrittDie BeschreibungKode
1Initialisieren Sie die Variable number mit Ihrer ursprünglichen Zahl. number = 12345
2Wandeln Sie eine Zahl in eine Zeichenfolge um, damit Sie einzeln auf ihre Ziffern zugreifen können. number_str = str(number)
3Teilen Sie die Zeichenfolge mit der list() -Funktion in einzelne Zeichen auf. digits = list(number_str)
4Konvertieren Sie jedes Zeichen mit der Funktion int() zurück in eine Zahl. digits = [int(digit) for digit in digits]
5Ermitteln Sie die Summe aller Ziffern mit der Funktion sum() . digit_sum = sum(digits)

Jetzt können Sie die Variable digit_sum verwenden, um die Summe der Ziffern Ihrer Zahl zu erhalten.

Methode mit Listen und der Funktion sum()

Wenn Sie die Summe der Ziffern einer Zahl in Python finden müssen, ohne eine Schleife zu verwenden, können Sie Listen und die Funktion `sum()` verwenden.

Sie müssen zuerst eine Zahl in eine Zeichenfolge konvertieren, um einzeln auf ihre Ziffern zugreifen zu können. Dann konvertieren wir jede Ziffer zurück in eine Zahl und speichern sie in einer Liste. Als nächstes können Sie die Funktion `sum()` verwenden, um die Summe aller Listenelemente zu zählen.

Hier ist ein Beispielcode, der diese Methode veranschaulicht:

num = 12345digits_list = [int(digit) for digit in str(num)]sum_of_digits = sum(digits_list)print(sum_of_digits)

Durch die Ausführung dieses Codes wird die Zahl 15 angezeigt - die Summe der Ziffern der Zahl 12345.

Diese Methode ist praktisch, da Sie keine explizite Verwendung einer Schleife erfordert und stattdessen einen kompakteren und klareren Code ermöglicht. Es kann auch leicht modifiziert werden, um mit Zahlen beliebiger Länge zu arbeiten.

Methode mit dem Zahlenmodul und Divisions- und Additionsoperationen

Um die Summe der Ziffern einer Zahl ohne Schleifen in Python zu finden, können Sie eine Methode verwenden, die auf der Verwendung des Zahlenmoduls und der Divisions- und Additionsoperationen basiert.

Zunächst müssen Sie die Zahl mithilfe der Funktion in eine Zeichenfolge konvertieren str(). Dann können Sie die Funktion verwenden map() mit einem int-Argument, um jedes Zeichen der Zeichenfolge in eine Ganzzahl zu konvertieren.

Als nächstes können Sie die Funktion verwenden sum() um die Summe aller Ziffern einer Zahl zu finden.

num = 12345 digits_sum = sum(map(int, str(num))) print(digits_sum)

In diesem Beispiel ist die Variable num enthält die Zahl, deren Summe zu finden ist. Funktion str() konvertiert eine Zahl in eine Zeichenfolge und eine Funktion map() wendet die Funktion an int() zu jedem Zeichen der Zeichenfolge, indem es in eine ganze Zahl konvertiert wird. Funktion sum() berechnet die Summe aller erhaltenen Ziffern.

Das Ergebnis dieses Codes wird 15 sein, da die Summe aller Ziffern der Zahl 12345 gleich ist 1 + 2 + 3 + 4 + 5 = 15.