2017-11-08 1 views
-3
import time 
def planeFun(): 
    print("The plane has spiked your intrest") 
    print(" s ") 
    skully=input("You ran a couple feet away, are you going to go look back in?\n") 
    if skully in ["Yes", "yes", " yes", " Yes", "y", "Y", "ya"]: 
     print("You decide to go and check back in, make sure what you saw is real!") 
     goin=input("should you investigate the plane more, or run away?\n") 
     return goin 


planeFun() 

result= planeFun() 
if result in ["run", "Run", " run", " Run", "run away", "Run away", " run away", " Run away"]: 
    print("You decide to leave, something weird is going on, and you're not sticking around to find out") 

Was habe ich in diesem Programm falsch gemacht? Ich habe versucht, es zu reparieren und konnte nicht. Immer wenn 'run' eingegeben wird, führt das Programm die Funktion erneut aus, und ich kann nicht herausfinden warum.Warum gibt es einen Wert zurück, wenn er als Variable verwendet wird?

+0

'result = planeFun()'. Außerdem hast du 'result' in:' if reslut in ... ' –

+3

falsch geschrieben. Bitte überprüfe deine Schreibweisen und führe eine Bearbeitung durch, um zu erklären, * was genau falsch gelaufen ist. Meine Wette ist auf einem 'NameError: Name 'reslut' ist nicht definiert ' – Aaron3468

+1

Sie könnten in Kleinbuchstaben konvertieren + Streifen Ihre Tests wäre weniger langweilig ...' skully = Eingabe ("Sie lief ein paar Meter weg, gehst du zurück zu gehen? \ n "). lower(). strip()' –

Antwort

0

Whenever 'run' is entered, the program re runs the function, and I cannot figure out why.

Dies ist aufgrund der Funktion planeFun zweimal genannt zu werden:

planeFun()   # <-- 1 

result= planeFun() # <-- 2 

Zusammen mit diesem würde ich empfehlen, was @ Jean-François Fabre in den Kommentaren erwähnt. Entfernen von hinteren und vorderen weißen Raum und machen Sie Ihre Eingabe nicht zwischen Groß- und Klein kann es leichter machen, bestimmte Ergebnisse zu überprüfen:

def planeFun(): 
    print("The plane has spiked your intrest") 
    print(" s ") 
    skully=input("You ran a couple feet away, are you going to go look back in?\n").lower().strip() 

diese Weise können Sie nur für Klein Text überprüfen müssen und Sie können die obere Fall doppelte Kontrollen entfernen.

3

vorletzte Zeile, den Sie eingegeben haben:

`if reslut in ...` 

mit Versuchen.

+0

wie auch immer, wenn run eingegeben wird, führt das Programm die Funktion ... – QuestionedE

+1

das ist wahrscheinlich nicht das Problem –

0

Sie sollten die „else“ Anweisung für die Fehlersuche füllen, bedeutet Druck skully falls die Eingabe nicht ja gleiche gilt für Ergebnis ist

Verwandte Themen