2017-10-12 1 views
-3

Ich verstehe nicht, wenn Sie das Wort" Pandemonium "eingeben, wie gibt es eine leere Zeichenfolge (" "). Kann jemand erklären, warum das ist .Warum gibt der folgende Code eine leere Zeichenfolge ('' ") zurück?

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".' auf dem letzten Buchstaben getroffen wird Ihr Wort 'pandemonium', das' result' auf '" "zurücksetzt, was Sie zurückbekommen – MooingRawr

+0

Das letzte Zeichen in 'pandemonium' ist' m' und dein Code setzt 'result', um dafür zu leeren. Du verpasst ein '+' ich denke. – mshsayem

+0

"trace" deinen Code! Ich hätte dir die Antwort gegeben. –

Antwort

1

es ist, weil, wenn x == "m" Sie die result Variable zurückgesetzt es eine leere Zeichenfolge statt Anhängen an gleich

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

'result' ist keine Liste, Sie können sie also nicht anhängen. –

+0

Ihr Code gibt keine Zeichenfolge zurück, sondern gibt stattdessen ein Array zurück – Exelian

+0

OP hat nie angegeben, dass sein Code korrekt ist oder nicht, sich nur wundernd, was gerade passiert. Sie sollten das bestehende Verhalten nicht ändern, wenn es nicht eindeutig angegeben ist. – MooingRawr

Verwandte Themen