2017-03-28 1 views
-1

Ich habe ein Problem mit meinem Skript und ich hoffe, Sie können mir helfen. Ich fange gerade mit der Programmierung an, also bitte ertragen Sie mit mir. Mein Projekt ist, dass, wenn jemand eine Zahl zwischen 1000-1199 ausfüllt, die Antwort A angezeigt werden muss. Wenn es eine Zahl zwischen 1200-1299 ist, muss Antwort B angezeigt werden. Aber die IF- und ELIF-Anweisung funktioniert nicht richtig. Es überspringt beide und geht direkt zu ELSE.Python IF-Anweisung, direkt zu ELSE

Das Skript hier:

import easygui 

var1 = range(1000, 1200) 
var2 = range(1200, 1300) 

input = easygui.enterbox(msg="Fill in your number", title="Input1") 

if input == var1: 
    easygui.msgbox(msg="Answer A", title="title1") 
elif input == var2: 
    easygui.msgbox(msg="Answer B", title="title2") 
else: 
    easygui.msgbox(msg="Nothing", title="Title3") 

Vielen Dank im Voraus!

Problem gelöst! Danke für alle Antworten.

Antwort

0

Im Folgenden Code wird Ihnen helfen.

  1. Verwenden Sie keine Python-Schlüsselwörter als Variablen in Zeile input.
  2. , wenn wir eine Eingabe von GUI erhalten gibt es eine string, so wandeln sie in int
  3. Verwendung in eher ==.

    import easygui 
    var1 = range(1000, 1200) 
    var2 = range(1200, 1300) 
    input1 = int(easygui.enterbox(msg="Fill in your number", title="Input1")) 
    
    if input1 in var1: 
        easygui.msgbox(msg="Answer A", title="title1") 
    elif input1 in var2: 
        easygui.msgbox(msg="Answer B", title="title2") 
    else: 
        easygui.msgbox(msg="Nothing", title="Title3") 
    
    print type(input1), input1 
    
+0

Vielen Dank für Ihren Rat, es funktioniert. :) –

+0

können Sie es als beantwortet markieren? –

+0

Können Sie mir sagen, wie das geht? –

0

Probieren Sie es wie folgt aus:

import easygui 

var1 = range(1000, 1200) 
var2 = range(1200, 1300) 

my_input = easygui.enterbox(msg="Fill in your number", title="Input1") 

if int(my_input) in var1: 
    easygui.msgbox(msg="Answer A", title="title1") 
elif int(my_input) in var2: 
    easygui.msgbox(msg="Answer B", title="title2") 
else: 
    easygui.msgbox(msg="Nothing", title="Title3") 
+0

Vielen Dank für Ihre schnelle Antwort, ich habe es versucht, aber es wird immer noch nicht. Kann es sein, dass Python die IF-Anweisung nicht erkennt? –

+0

Ich habe den Code bearbeitet, damit Sie ihn erneut versuchen können. Die Eingabe ist ein reserviertes Wort, also habe ich es in 'my_input' geändert. – zipa

1

in Anweisung und Eingabewert analysieren Typ integer: input = int(input)

import easygui 

var1 = range(1000, 1200) 
var2 = range(1200, 1300) 

input = easygui.enterbox(msg="Fill in your number", title="Input1") 
input = int(input) 

if input in var1: 
    easygui.msgbox(msg="Answer A", title="title1") 
elif answer in var2: 
    easygui.msgbox(msg="Answer B", title="title2") 
else: 
    easygui.msgbox(msg="Nothing", title="Title3") 
+0

Danke Mann! Es funktionierte. Der Wert des Inputs muss ein Integer-Typ sein. –