Python mit einzelnen Ziffern weiterrechnen?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
num = input('Input number: ') #sagen wir mal num = 567
print(num[0] + '*4= ' + str(int(num[0])*4)) #gibt 5*4= 20 aus
Woher ich das weiß:Studium / Ausbildung – Informatikstudent

greenshop 
Fragesteller
 08.05.2020, 14:19
kannst du mir den Teil erklären: str(int(num[0])*4))

ich weiß nicht was für ein Operator str ist

1
whgoffline  08.05.2020, 14:20
@greenshop

Str macht einen String aus einer Zahl. Sonst könntest du es nicht zusammen mnit dem String '*4= ' printen.

1
greenshop 
Fragesteller
 08.05.2020, 14:21
@whgoffline

und wie kommst du auf die 0 in den eckigen Klammer?

0
whgoffline  08.05.2020, 14:25
@greenshop

Ganz einfach.

Das gibt dir das Zeichen vom String num an Position 0 also in dem Fall 5.

0
greenshop 
Fragesteller
 08.05.2020, 14:32
@whgoffline

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?

0

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

Bild zum Beitrag

 - (Computer, Mathematik, programmieren)

greenshop 
Fragesteller
 08.05.2020, 14:34

Vielen Dank!

0
mihisu  08.05.2020, 14:37
@greenshop

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?

1
mihisu  08.05.2020, 14:34

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.

0
greenshop 
Fragesteller
 08.05.2020, 14:36
@mihisu

:) ist mir aufgefallen, trotzdem Danke!

0

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 :)

Woher ich das weiß:eigene Erfahrung – Ich programmiere schon lange mit Python

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