Zahlenformat wählen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
StevenB99
User
Beiträge: 33
Registriert: Donnerstag 4. Juni 2020, 23:12

Hallo zusammen. Ich soll ein Programm schreiben, dass der Anwender wählen kann, in welches Zahlenformat die Umrechnung erfolgen soll. Die Umrechnungen sollen sich auf die Basiszahlen 2 bis 9 beschränken. Ich verstehe das nicht ganz. Soll das heißen, wenn ich durch 2 teile soll da eine binärzahl rauskommen und wenn ich durch 3..... 9 teile eine ganz normal Zahl? Ich hab es vor mit einer Verknüfung zu machen, wenn ich das so richtig verstanden habe. Bei mir kommt hier immer ein Error"NameError: name 'zahl' is not defined" Zahl habe ich aber doch definiert. In dieses Programm habe ich bis jetzt nur 2 und 3 gemacht. Ich müsste das bis 9 machen oder? Kann man hier keine Bilder posten?


def binär(a):
zahl = 0
zwischenergebnis = 0
reste = []

while zahl != 0:
reste.append(zahl % 2)
zahl = zahl // 2
reste.reverse()

for bit in reste:
print(bit, end = "")


def binär(b):
zahl = 0
zwischenergebnis = 0
reste = []

while zahl != 0:
reste.append(zahl % 3)
zahl = zahl // 3
reste.reverse()

for bit in reste:
print(bit, end = "")

def start():
print("Wenn Dezimal zah eingeben [a]") # Hier soll man entscheiden , ob ich die Zahl durch 2,3,4,5,6,7,8,9 teile. [a] wäre durch 2.
print("Dezimalzahl eingeben ") # wäre durch 3. U.s.w
print("\n")
choice = input(">> ")
zahl = 0
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Pack den Code bitte in die Code Tags </> im vollständigen Editor, da sonst die Einrückung verloren geht die wichtig ist. Bilder kannst du hier nicht direkt hochladen, aber es gibt ja genug Seiten wo du Bilder hochladen kannst und den Link kannst du dann hier posten. Was genau du vor hast versteh ich leider nicht. Hilfreich wäre es aber einmal das Grundlagen Tutorial durchzuarbeiten, auch bezüglich Gültigkeitsbereiche von Namen.
Zuletzt geändert von Jankie am Freitag 19. Juni 2020, 12:10, insgesamt 2-mal geändert.
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Deine Einrückungen stimmen nicht. Man kann keine zwei Funktionen mit selbem Namen `binär` definieren, wobei das zweite gar nicht binär ist.
Du solltest Dein Programm nicht weiter schreiben, solange Du die erste Funktion `binär` nicht ausgiebig getestet hast.
StevenB99
User
Beiträge: 33
Registriert: Donnerstag 4. Juni 2020, 23:12

NameError: name 'zahl' is not defined. Warum? Ich verstehe das nicht. Ich habe doch zahl=0.

def binär(a):
zahl = 0
zwischenergebnis = 0
reste = []
zahl = int(input("Geben Sie den Wert ein, der umgerechnet werden soll: "))


while zahl != 0:
reste.append(zahl % 2)
zahl = zahl // 2
reste.reverse()
for bit in reste:
print(bit, end = "")


Wie mache ich das mit dem Codetag? . Muss ich mein Code zwischen den eckigen klammer einfügen?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Der code muss zwischen die Tags. Nicht IN die Tags.

[code*]
dein code
[/code*]

Ohne die *.
StevenB99
User
Beiträge: 33
Registriert: Donnerstag 4. Juni 2020, 23:12

Code: Alles auswählen

def binär(a):
    zahl=0
    zwischenergebnis = 0
    reste = []
    zahl = int(input("Geben Sie den Wert ein, der umgerechnet werden soll: "))


while zahl != 0:
      reste.append(zahl % 2)
      zahl = zahl // 2
      reste.reverse()
for bit in reste:
    print(bit, end = "")
    
Warum kriege ich hier immer ein Error, das die Zahl nicht definiert ist.
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Wie ich schon ganz zu Anfang geschrieben habe: schau Dir Deine Einrückungen an.
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Und wie ich schon gesagt habe informier dich über den Gültigkeitsbereich von Variablen.
Benutzeravatar
snafu
User
Beiträge: 6867
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Um es noch deutlicher zu machen: Nur der Code bis Zeile 5 gehört zur binär()-Funktion. Die Zeilen danach werden auf Modulebene interpretiert und gehört somit nicht mehr zur Funktion.
Antworten