Falls dies das falsche Unterbrett ist bitte verschienben, hab keins gefunden das explizit für Hilfe gedacht ist.
Zu meinem Problem:
Ich lerne derzeit noch, und sitze nun an einem Binär <-> Dezimal Rechner, dieser soll mit for bzw. while Schleifen realisiert werden, also bitte keine Kommentare durch welche netten import Funktionen man das ganze einfacher bewerkstelligen kann, das ist nicht Teil der Aufgabe.
Zunächst mal mein Code bisher:
Code: Alles auswählen
Entscheidung = str(input("[1]Binär oder [2]Dezimal? "))
if Entscheidung == 1:
Binär()
elif Entscheidung == 2:
Dezimal()
#________________________
def Dezimal():
Gültigkeit = False
while Gültigkeit == False:
try:
Eingabe_Zahl = int(input("Umzurechnende Zahl eingeben: "))
except ValueError:
print("Ungültige Eingabe!")
else:
Gültigkeit = True
Zahl = 0
Zwischenergebnis = 0
Zahl = Eingabe_Zahl
while Zahl != 0:
Zwischenergebnis = Zahl//2
print(Zahl%2, end = "")
Zahl = Zwischenergebnis
#_______________________________________
def Binär():
Gültigkeit = False
while Gültigkeit == False:
try:
Eingabe_Zahl = int(input("Binärfolge eingeben: "))
except ValueError:
print("Ungültige Eingabe!")
else:
Gültigkeit = True
while True:
Zahlenfolge = input(Eingabe_Zahl)
Binärfolge = len (Zahlenfolge) - 1
Dezimal = 0
for i in range (0, Binärfolge + 1):
if int (Zahlenfolge[Binärfolge - i]) == 1:
Dezimal += (int (Zahlenfolge[Binärfolge - i])) * (2 ** i)
print (Dezimal)
print ()
#_______________________________________
Dezimal()
Binär()
Code: Alles auswählen
[1]Binär oder [2]Dezimal? 2
Umzurechnende Zahl eingeben: 4
001Binärfolge eingeben: 001
1
1
1
1
Entscheide ich mich für die Binäre Umrechnung, lande ich allerdings erst wieder in der Funktion zur Dezimalen Umrechnung:
Code: Alles auswählen
[1]Binär oder [2]Dezimal? 1
Umzurechnende Zahl eingeben: 4
001Binärfolge eingeben: 001
1
1
1
1
1
Ich habe das ganze erst auf die Funktionen geschoben, und bereits unten ab Zeile 49 Versucht etwas zu ändern, indem ich bspw. aus der "Entscheidung" eine Funktion gemacht habe, das resultiert allerdings im selben Ergebnis.
Ist mein Vorgehen so überhaupt möglich? Ich dachte jetzt schon daran eine enorm verzweigte if-Funktion zu bauen, aber vielleicht gibt es auch einen klügeren Weg. Kopfzerbrechen bereitet mir eigentlich nur die Entscheidung: Will ich Binär oder Dezimal umrechnen, im selben Programm. Lade ich die Programmteile unabhängig voneinander in ein extra Programm, erledigen sie ihre Aufgabe fürs Erste so wie sie sollen.
Danke schonmal für jeden guten Ratschlag, und einen Schönen Sonntag euch.
Beste Grüße