Python mit einzelnen Ziffern weiterrechnen?
Hallo,
ich habe eine ganz allgemeine Frage zu Zahlen in Python. Nehmen wir mal jemand schreibt in den input die Zahl 576. Wie kann ich dann mit den einzelnen Ziffern weiterrechnen? Also beispielsweise die 5 mit 4 multiplizieren und die 7 mit einer3.
vielen Dank im vorraus!
4 Antworten
num = input('Input number: ') #sagen wir mal num = 567
print(num[0] + '*4= ' + str(int(num[0])*4)) #gibt 5*4= 20 aus
Str macht einen String aus einer Zahl. Sonst könntest du es nicht zusammen mnit dem String '*4= ' printen.
und wie kommst du auf die 0 in den eckigen Klammer?
aber wie kommt er jetzt auf ide fünf? Er hat ja nur die Zahl 567. Da muss er ja erstmmal die Zahl 5 auslesen. Oder?
Man könnte die Zahl in einen String umwandeln, und dann die einzelnen Ziffern durchgehen und jeweils in eine Zahl umwandeln.
Wenn du also beispielsweise die erste Ziffer (hier 5) mit 4 multiplizieren möchtest und die zweite Ziffer (hier 7) mit 3 multiplizieren möchtest, könnte man das beispielsweise folgendermaßen lösen...
zahl = 573
ziffer = [int(c) for c in str(zahl)]
ergebnis = ziffer[0] * 5 + ziffer[1] * 3
Dabei ist dann ziffer = [5, 7, 3] eine Liste, welche die Ziffern von zahl = 573 enthält.
Mit ziffer[0] kann man dann auf die erste Ziffer (hier 5) zugreifen, mit ziffer[1] kann man dann auf die zweite Ziffer (hier 7) zugreifen, etc.
Bzw. wenn du die Zahl mit input() abfrägst, bekommst du die Zahl ja bereits als String. Dann könnte man überlegen, ob man direkt diesen String verwendet, anstatt den Input in eine Ganzzahl zu casten und dann die Ganzzahl wieder in einen String zu casten. Also beispielsweise...
strZahl = input("Zahl eingeben: ")
ziffer = [int(c) for c in strZahl]
ergebnis = ziffer[0] * 5 + ziffer[1] * 3
![- (Computer, Mathematik, programmieren)](https://images.gutefrage.net/media/fragen-antworten/bilder/349053919/0_big.png?v=1588941133000)
Bei meiner Antwort habe ich versehentlich die erste Ziffer mit 5 multipliziert, statt sie mit 4 zu multiplizieren. Aber das sollte hoffentlich nicht weiter stören.
Wenn du eine ganze Zahl „zahl“ hast, kannst du mit „zahl % 2“ den Rest bei Division durch 2 berechnen. Wenn dieser Rest gleich 0 ist, ist die Zahl gerade. Wenn dieser Rest gleich 1 ist, ist die Zahl ungerade.
Beispiel:
zahl = 573
if zahl % 2 == 0:
print("Die Zahl ist gerade.")
else:
print("Die Zahl ist ungerade.")
Als Ausgabe sollte dir hier „Die Zahl ist ungerade.“ angezeigt werden, da die Zahl 573 ungerade ist.
Edit: Huch?! Stand da nicht gerade noch eine Nachfrage, wie man überprüfen kann, ob eine Zahl gerade ist?
Du kannst
eingabe = input()
ersteZahl = int(eingabe[0]) # die erste zahl als int
ersteZahl = ersteZahl * 4
zweiteZahl = int(eingabe[1]) # zweite Zahl...
zweiteZahl = zweiteZahl * 7
# usw.
machen.
Ich hoffe das hilft dir weiter :)
Du kannst die zahl in einer liste[] speichern und dann die einzelnen elemente nehmen
Aber pass auf das erste element einer liste ist die 0 umd nicht die 1
ich weiß nicht was für ein Operator str ist