if-Verzweigung verzweigt nicht...

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
Cortez
User
Beiträge: 115
Registriert: Montag 31. Dezember 2018, 15:28

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.
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Cortez
User
Beiträge: 115
Registriert: Montag 31. Dezember 2018, 15:28

Ah, ok. Habs gecheckt, was ich verkehrt gemacht habe. Danke dir fürs auf die Sprünge helfen.
Benutzeravatar
hyle
User
Beiträge: 96
Registriert: Sonntag 22. Dezember 2019, 23:19
Wohnort: Leipzig

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.
Alles was wir sind ist Sand im Wind Hoschi.
Antworten