bei nachfolgender Aufgabe habe ich gerade eine Denkblockade:
"Erweitern Sie das Programm zum Umrechnen von dezimal- in Dualzahlen aus diesem Studienheft so, dass der Anwender wählen kann, in welches Zahlenformat die Umrechnung erfolgen soll. Damit die Umsetzung nicht zu kompliziert wird, beschränken Sie das Zielsystem für die Umrechnung auf die Basiszahl 2 bis 9 einschließlich."
Allgemein, den Code habe ich soweit erstellt, so dass die eigentlich Berechnung funktioniert (diesen füge ich hier auch noch am Ende ein). Bei mir hat sich jedoch aktuell eine Blockade bzgl. der Begrenzung der Eingabe der Basiszahl ergeben. Meine Idee war es zunächst diese Begrenzung über ein while Schleife zu lösen. Allerdings habe ich dabei schon festgestellt, dass es wohl nicht möglich ist einen Ausdruck "while basiszahl < 2 and > 9:" als Bedingung im Schleifenkopf zu platzieren. Wenn ich dann beide Abfragen als eigene while Schleife code, dann läuft mein Programm nicht mehr richtig:
while basiszahl < 2:
int(input("Bitte geben Sie eine Basiszahl 2 bis 9 ein: "))
while basiszahl > 9:
int(input("Bitte geben Sie eine Basiszahl 2 bis 9 ein: "))
Eine andere Überlegung war zudem noch die try...except...else Konstruktion zu nutzen. Aber auch an der Stelle komme ich irgendwie nicht wirklich weiter wie man diese mit Wertebereiche codieren kann.
Vielleicht kann mir der ein oder andere mit der Fragestellung helfen und mir einen Denkanstoß geben.
Code: Alles auswählen
# den Variablen Werte zuweisen
zahl = 0
basiszahl = 0
# eine Liste für die Reste
reste =[ ]
# die Werte einlesen
zahl = int(input("Bitte geben Sie einen Wert ein der umgerechnet werden soll: "))
basiszahl = int(input("Bitte geben Sie eine Basiszahl zwischen 2 und 9 ein: "))
# die Schleife
while zahl != 0:
reste.append(zahl % basiszahl)
zahl = zahl // 2
# die Liste umdrehen
reste.reverse()
# und ausgeben
for Ziffer in reste:
print(reste, end = " ")