2016-11-10 5 views
-1

Ich lerne Python und kann nicht herausfinden, warum das folgende nicht funktioniert.Newbie Abfrage über bedingte Anweisungen

Kann jemand beraten? Code unten

dank


# Make sure that the_flying_circus() returns True 

print "What is your number?" 
num = input() 
print "What is bla?" 
bla = input() 

def the_flying_circus(): 
    if num ==4 and bla=="bla": # Start coding here! 
     return True 
     print "Well done!" 
     # Don't forget to indent 
     # the code inside this block! 
    elif num == 2 or bla== zog: 
     print "OK" 
     # Keep going here. 
     # You'll want to add the else statement, too! 
    else: 
     print "Bad luck!" 
the_flying_circus() 
+1

diese Python 2.x ist? Wenn ja, benutze 'raw_input()' anstelle von input. Oder noch besser, [lade und lerne die neueste (stabile) Version von Python] (https://www.python.org/downloads/win). –

+3

"Funktioniert nicht" ist nicht sehr informativ. Was soll der Code tun und was macht er eigentlich? – interjay

+0

Sie meinen wahrscheinlich "zog", es sei denn, zog ist anderswo als Variable definiert –

Antwort

1

Die return True ist wahrscheinlich nicht das, was Sie auf der Oberseite des if Block haben wollen. Versuchen Sie es zu entfernen.

0

Die einzige Bedingung, die True zurückgibt, ist num == 4 und bla == 'bla'. Andernfalls ist der Rückgabewert Keine. "Gut gemacht!" wird nie gedruckt, da die return-Anweisung zuerst auftritt.

0

Paar Dinge ...

1) return true sollte bis zum Ende der Funktion bewegt werden (wie von anderen erwähnt)

2) beobachten, wie Sie Eingabe sammeln ... verwenden raw_input für Ihre Zeichenfolge, verwenden Sie die Eingabe für die Nummer.

arbeitet Dies ist für mich:

def the_flying_circus(): 
    if a==4 and b=='bla': 
    print "Well done!" 
    elif a==2 or b=="zog": 
    print "OK" 
    else: 
    print "Bad luck!" 
    return 1 

a = input("What is your number? ") 
b = raw_input("What is bla? ") 

the_flying_circus()