2015-10-26 1 views
-1

J'essaie d'apprendre Python pour le plaisir. Je fais une leçon en ligne sur codecademy.com, mais je n'ai aucune idée de ce que je dois faire. J'essaie de comparer le paramètre 's' avec un autre paramètre (paramètre string), et la valeur retournée doit être "Sorry".Comment comparer les chaînes dans une fonction

def shut_down(s): 
    return s 
    if s == 'yes': 
     return "Shutting down" 
    elif s == 'no': 
     return "Shutdown aborted" 
    else: 
     return "Sorry" 

donc j'appelle la fonction:

shut_down('lhagvbs') 

Il revient toujours «Votre fonction a échoué sur le message oui, il est revenu « oui » quand il aurait dû retourner« Arrêt »

Et je pense que mon code ne fonctionne pas. Même la fonction def n'est pas correcte.

S'il vous plaît expliquer pourquoi, quoi, où, etc.

Désolé, je ne parle pas/écrire l'anglais, mais je l'espère, il est compréhensible.

(Ce ne sont pas des devoirs).

Répondre

1

Vous devez supprimer les return s que vous retournez s peu importe, tout le code après return s est injoignable si vous n'évaluez votre si/Elif ou bien:

def shut_down(s): 
    if s == 'yes': 
     return "Shutting down" 
    elif s == 'no': 
     return "Shutdown aborted" 
    else: 
     return "Sorry" 

Conformément au fait que vous ne pouvez retourner une fois de n'importe quelle fonction, vous pouvez également oublier le elif et autre:

def shut_down(s): 
    if s == 'yes': 
     return "Shutting down" 
    if s == 'no': 
     return "Shutdown aborted" 
    return "Sorry" 
+0

OMG. si facile que je ne peux pas croire que ...... thx man .. je suis suspendu là déjà 4 heures ... hahah ... alors retournez la valeur de 's' withouth type 's' .... THX –

+0

@ MartinŠanta, oui, vous retourniez simplement ce qui était passé à la fonction à chaque fois, donc tout ce que 'return s' n'aurait jamais été atteint –