2017-03-13 2 views
-1

Ich möchte Drucktext basierend auf meinem Eingabewert mit IF/Else oder Switch anzeigen. Und lassen Sie mich auch wissen, wie man den Schalterfall für den unteren Code benutzt.Python Umschalten der Anzeige basierend auf Eingabe mit If, Else

# OnButtonOK after clicking it, display the input value  
    def OnButtonOK(self): 
    Input = self.entrytext.get() 
    # self.text.insert(END, Input + '\n') 
    # self.scroll.config(Input = self.text.yview) 
    print Input 
    useroption = atoi(Input) 
    # self.OnButtonClick(); 
    if (useroption == 1): 
      print "input is output" 
     self.SubMenu1(); 
    else: 
     print "Error:Invalid" 

    return; 

def SubMenu1(self): 
     print 'SubMenu1' 
    return; 

def SubMenu2(self): 
     print 'SubMenu2' 
    return; 

def SubMenu3(self): 
     print 'SubMenu3' 
    return; 

Ich bin in der Lage nur anderes Teil drucken:

if (useroption == 1): 
      print "input is output" 
     self.SubMenu1(); 
    else: 
     print "Error:Invalid" 

Lassen Sie mich wissen, wo genau ich falsch werde.

+0

Sie auf auf falschen Weg gehen gelöst werden? Erstellen Sie alle Menüs ohne Daten, um alle 'Beziehungsfehler' zu lösen. – dsgdfg

Antwort

0

Es ist ein einfacher Anfängerfehler, ich ist es worng Einrücken:

if (useroption == 1): 
     print "input is output" 
    self.SubMenu1(); 
else: 
    print "Error:Invalid" 

if (useroption == 1): 
    print "input is output" # You had an indent too many here 
    self.SubMenu1(); 
else: 
    print "Error:Invalid" 

sein soll Python ist Vertiefung empfindlich; zu viele oder zu wenige Einrückungen werden Ihren Code beschädigen.

+0

Es wurde versucht, wie Sie vorgeschlagen haben, einen unerwarteten Einzug anzuzeigen. In meinem Code wird es nicht angezeigt. Wenn meine Implementierung richtig ist, sollte es richtig funktionieren. –

+0

Ich endete mit dem gleichen Fehler in meinem Code, Einschnitt versagt, wenn ich es in einen Code-Block, tut mir leid, versuchen Sie es jetzt. (die Ironie, an einem Montagmorgen) – Gemtastic

+0

Ich machte Input als Int. Jetzt geht es –

0

Ich denke, Sie haben Einrückungsprobleme in Ihrem Code: Python verwenden 4 Leerzeichen (Sie können 1 Leerzeichen verwenden, aber 4 ist gute Praxis) Einrückung Sprache. Bedeutet, wenn/else-Anweisung wird wie folgt sein:

if a == 1: 
    print("A = 1") # 4 spaces w.r.t to above statement 
elif a == 2: 
    print("A = 2") 
elif a ==3: 
    print("A = 4") 
else: 
    print("A = pta nahi") 

können Sie über if/else-Anweisungen als Schaltergehäuse und auch Ihre Vertiefung Problem