Seite 1 von 1

if-Verzweigung verzweigt nicht...

Verfasst: Dienstag 5. Januar 2021, 18:36
von Cortez
Hallo,

ich habe folgenden (einfachen) Code. Leider verzweigt die if-Anweisung nicht und ich habe keine Ahnung warum. Vielleicht hat jemand einen Tipp für mich? Ich bin jedenfalls ziemlich ratlos, da ich solche Verzweigungen täglich nutze...

Code: Alles auswählen

#!/usr/bin/python3.6

import random
import math
import fractions

def funk1():
    print ("Funktion 1")
    
    
def funk2():
    print ("Funktion 2")
    
    
def funk3():
    print ("Funktion 3")


print ("Hauptprogramm")


while True:
    wahl = input ("Bitte waehlen: Funk1 [1], Funk2 [2], Funk3 [3], Ende [0]")
    
    int (wahl)
    print (wahl)
    if wahl == 1:
        funk1()
    elif wahl == 2:
        funk2()
    elif wahl ==3:
        funk3()
     elif wahl == 0:
     	break
     else:
     	print ("falsche Eingabe")
Ich danke euch schonmal.

Re: if-Verzweigung verzweigt nicht...

Verfasst: Dienstag 5. Januar 2021, 18:41
von __blackjack__
@Cortez: Zeichenketten sind immer ungleich Zahlen. `int()` ist eine Funktion der man eine Zeichenkette übergeben kann und die dann eine ganze Zahl zurück gibt. Der Datentyp des Arguments ändert sich damit nicht auf magische weise.

Re: if-Verzweigung verzweigt nicht...

Verfasst: Dienstag 5. Januar 2021, 19:19
von Cortez
Ah, ok. Habs gecheckt, was ich verkehrt gemacht habe. Danke dir fürs auf die Sprünge helfen.

Re: if-Verzweigung verzweigt nicht...

Verfasst: Dienstag 5. Januar 2021, 19:20
von hyle
Wenn man es "sauber" schreibt und u.a. nicht Tabs mit Leerzeichen vermischt und auf richtige Einrückungen achtet, dann funktioniert es auch ...

Code: Alles auswählen

import random
import math
import fractions

def funk1():
    print("Funktion 1")


def funk2():
    print("Funktion 2")


def funk3():
    print("Funktion 3")


print("Hauptprogramm")


while True:
    wahl = input ("Bitte waehlen: Funk1 [1], Funk2 [2], Funk3 [3], Ende [0]")
    
    int(wahl)
    print (wahl)
    if wahl == '1':
        funk1()
    elif wahl == '2':
        funk2()
    elif wahl == '3':
        funk3()
    elif wahl == '0':
        break
    else:
        print ("falsche Eingabe")
... von int(wahl) mal abgesehen, wenn z.B. ein Buchstabe statt einer Zahl eingegeben wird.

Btw. Ich emfehle einen Editor, der nicht druckbare Zeichen anzeigt.