Seite 1 von 1

Zahlenformat wählen

Verfasst: Freitag 19. Juni 2020, 11:56
von StevenB99
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

Re: Zahlenformat wählen

Verfasst: Freitag 19. Juni 2020, 12:07
von Jankie
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.

Re: Zahlenformat wählen

Verfasst: Freitag 19. Juni 2020, 12:08
von Sirius3
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.

Re: Zahlenformat wählen

Verfasst: Freitag 19. Juni 2020, 13:08
von StevenB99
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?

Re: Zahlenformat wählen

Verfasst: Freitag 19. Juni 2020, 13:17
von __deets__
Der code muss zwischen die Tags. Nicht IN die Tags.

[code*]
dein code
[/code*]

Ohne die *.

Re: Zahlenformat wählen

Verfasst: Freitag 19. Juni 2020, 13:28
von StevenB99

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.

Re: Zahlenformat wählen

Verfasst: Freitag 19. Juni 2020, 13:37
von Sirius3
Wie ich schon ganz zu Anfang geschrieben habe: schau Dir Deine Einrückungen an.

Re: Zahlenformat wählen

Verfasst: Freitag 19. Juni 2020, 14:04
von Jankie
Und wie ich schon gesagt habe informier dich über den Gültigkeitsbereich von Variablen.

Re: Zahlenformat wählen

Verfasst: Freitag 19. Juni 2020, 17:02
von snafu
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.