2016-07-29 9 views
1

Ich experimentierte mit dem, was ich bisher gelernt habe, und ich wollte etwas erstellen, das interaktiv ist, mit raw_input().Verwenden von Funktionen mit Raw-Eingängen

Was ich wollte, war eine Funktion erstellen, die eine Konversation erstellen wird, die basierend auf Eingabe in verschiedene Richtungen gehen wird. Allerdings konnte ich nicht herausfinden, wie man eine Funktion als Argument akzeptiert raw_input.

Hier ist der Code, den ich geschrieben habe;

drink = raw_input("Coffee or Tea?") 

def drinktype(drink): 
    if drink == "Coffee": 
    #I WANT TO INSERT A CODE HERE THAT WILL CALL THE FUNCTION coffee(x) 
    elif drink == "Tea": 
     print "Here is your tea." 
    else: 
     print "Sorry." 

x = raw_input("Americano or Latte?") 

def coffee(x): 
    if x == "Americano": 
     return "Here it is."  
    elif x == "Latte": 
     return "Here is your latte." 
    else: 
     return "We do not have that, sorry." 
+2

Dieser Code funktioniert nicht. Bitte stellen Sie sicher, dass Sie sich mindestens an die Python-Syntax halten und sicherstellen, dass Sie korrekt eingerückt sind. Einzug ist wichtig in Python. – idjaw

+3

Sie scheinen niemals Ihre Funktionen aufzurufen. –

+0

Ich habe die Einrückungen geändert, danke für die Erinnerung, aber ich war unvorsichtig beim Einfügen des Codes hier, tut mir leid. Wie rufe ich die Funktionen an? – sonooob

Antwort

1

Der Antrag auf americano oder Latte ist etwas, das Sie nur tun müssen, wenn Kaffee angefordert wird; Es ist irrelevant, ob der Benutzer Tee anfordert. Sobald das unter der Kaffeekiste verschoben wurde, können Sie einfach den zurückgegebenen Wert an Ihren Anruf an coffee() übergeben. Der Rückgabewert muss ebenfalls gedruckt werden.

def drinktype(drink): 
    if drink == "Coffee": 
     kind = raw_input("Americano or Latte?") 
     print coffee(kind) 
    elif drink == "Tea": 
     print "Here is your tea." 
    else: 
     print "Sorry." 

def coffee(x) 
    if x == "Americano": 
     return "Here it is."  
    elif x == "Latte": 
     return "Here is your latte." 
    else: 
     return "We do not have that, sorry." 

drink = raw_input("Coffee or Tea?") 
drinktype(drink) 
+0

Danke für die Erklärung, es funktioniert jetzt. – sonooob

0

Sind Sie auf der Suche nach so etwas?

drink = raw_input("Coffee or Tea?") 

def drinktype(drink): 
    if drink == "Coffee": 
     usercoffeetype = raw_input("What type of coffee do you drink?") 
     coffee(usercoffeetype) 
    elif drink == "Tea": 
     print "Here is your tea." 
    else: 
     print "Sorry." 

x = raw_input("Americano or Latte?") 

def coffee(x) 
    if x == "Americano": 
     return "Here it is."  
    elif x == "Latte": 
     return "Here is your latte." 
    else: 
     return "We do not have that, sorry." 

auch nur eine Note - Variablennamen wie „x“ können in der Regel nicht eine gute Idee. Es wäre besser, wenn Sie Ihre Variablennamen tatsächlich beschrieben, was es hält, wie folgt aus:

def coffee(coffeechoice) 
    if coffeechoice == "Americano": 
     return "Here it is."  
    elif coffeechoice == "Latte": 
     return "Here is your latte." 
    else: 
     return "We do not have that, sorry." 
0

Sieht aus wie Sie versuchen, so etwas wie die folgenden

def coffee(): 
    x = raw_input("Americano or Latte?") 
    if x == "Americano": 
     return "Here it is."  
    elif x == "Latte": 
     return "Here is your latte." 
    else: 
     return "We do not have that, sorry." 

def drinktype(drink): 
    if drink == "Coffee": 
     print coffee() 
    elif drink == "Tea": 
     print "Here is your tea." 
    else: 
     print "Sorry." 


drink = raw_input("Coffee or Tea?") 

drinktype(drink) 

Bitte beachten Sie, dass 1. korrekte Vertiefung entscheidend zu bekommen, ist für Sie Code 2. nach einer Funktion drinktype definieren() zu arbeiten, , Sie müssen es tatsächlich nennen, um es laufen zu lassen. (die letzte Zeile ruft die Funktion auf)

+0

oh, ich sehe jetzt. Vielen Dank. – sonooob

Verwandte Themen