Python Zahlen auseinandernehmen?
Hi, ich würde gerne integer auseinander nehmen um diese im Anschluss mit sich selbst zu multiplizieren.
Z.b
zahlen = 123456
Wäre nett wenn mir da bei jemand helfen könnte!
4 Antworten
Also du meinst sowas wie 1 * 2 * 3 * 4 * 5 *6 = 720 zum Beispiel 123456?
Das könnte man beispielsweise folgendermaßen machen...
import math
zahlen = 123456
#Auseinandernehmen der Ganzzahl zahlen:
ziffern = [int(c) for c in str(zahlen)]
#Multiplizieren der Zahlen:
produkt = math.prod(ziffern)
print(produkt)
z = '1234'
for i in map(int,z):
print(i*i)
Nein ich meinte jede zahl soll aus der Zahlen reihe getrennt und anschließend mit sich selbst multipliziert werden.
1*1
2*2
3*3
4*4
trotzdem danke!
zahlen = 123456
quadrate = [int(i)**2 for i in str(zahlen)]
print(quadrate)
# [1, 4, 9, 16, 25, 36]
PS: Sauberer und effizienter wäre das hier:
zahlen = 123456
quadrate = []
while zahlen:
quadrate.append((i % 10) ** 2)
i /= 10
quadrate = list(reversed(quadrate))
Die Liste muss sowieso erzeugt werden, und danach hinten werden neue Elemente rangehängt.
Das passiert in der Schleife explizit mit append() und in der funktionalen Variante implizit mittels Generator.
Ach ja, ein Generatorobjekt muss auch noch zusätzlich erzeugt werden.
Die Schleifenvariante ist also gleich in doppelter Hinsicht effizienter. :)
Eine einfache Methode: In einen String umwandeln und dann Zeichen für Zeichen durchgehen. Ansonsten Modulo 10
das letzte ist aber kein integer sondern ein string oder literal .