2017-10-12 2 views
-3

Je ne comprends pas lorsque vous entrez le mot" pandemonium ", comment renvoie-t-il une chaîne vide (" ") Quelqu'un peut-il expliquer pourquoi? .Pourquoi le code ci-dessous renvoie-t-il une chaîne vide ('' ")?

def mystery(text): 
    result = "" 
    for x in text: 
     if x == "p": 
      result += "pop" 
     elif x == "m": 
      result = "" 
     else: 
      result += x 
    return result 
+2

'Elif x == « m ».' Reçoit sur la dernière lettre de votre mot 'pandemonium' qui réinitialise' result' à '" "' qui est ce que vous obtenez – MooingRawr

+0

Le dernier caractère de 'pandemonium' est' m', et votre code place 'result' à vide pour cela. Il vous manque un '+' je suppose. – mshsayem

+0

"trace" votre code! Je vous aurais fourni la réponse. –

Répondre

1

C'est parce que quand x == "m" vous rétablissez la variable result à égale une chaîne vide au lieu de annexant

def mystery(text): 
    result = "" 
    for x in text: 
     if x == "p": 
      result += "pop" 
     elif x == "m": 
      result += "" 
     else: 
      result += x 
    return result 
+0

'result' n'est pas une liste, vous ne pouvez donc pas y ajouter. –

+0

Votre code ne renvoie pas une chaîne, mais retourne un tableau – Exelian

+0

OP n'a jamais déclaré que son code est correct ou non, se demandant simplement ce qui se passe. Vous ne devez pas modifier le comportement existant s'il n'est pas clairement indiqué. – MooingRawr