2017-08-30 2 views
0

Programm, um eine Zeichenfolge aus einer gegebenen Zeichenfolge abzurufen, in der alle Vorkommen des ersten Zeichens in '$' geändert wurden, mit Ausnahme des ersten Zeichens selbst. Beispiel String: 'Neustart' Erwartetes Ergebnis: 'resta $ t'Anweisung hat keine Wirkung (Python)

hier ist mein Code

def change(string): 
     string_len = len(string) 
     t = string[0] 
     for each in range(1, string_len): 
      if each is t: 
       each == '$' 
      else: 
       continue 
    return string 

print(change("restart")) 

output 
restart 

i'using PyCharm. Zeile Nr. 6 (jedes == '$') sagt, dass diese Aussage keine Auswirkung hat. Ich möchte nicht ersetzen Methode. will nur wissen, was das Problem ist.

+0

'==' ist ein * Vergleich *, den Sie ignorieren das Ergebnis von. Ich vermute, du meintest '=' für * Zuweisung *, aber das würde auch nicht funktionieren: 'each' enthält abwechselnd eine Kopie jedes Elements der Zeichenkette und weist ihr nur' jede' zu, nicht die ursprüngliche Zeichenkette. Das Ändern der Zeichenfolge ist sowieso unmöglich; So funktionieren Strings in Python nicht. Etwas, das eine neue Zeichenkette erzeugt, wie zum Beispiel die Methode '.replace()', ist die einzige Möglichkeit, Änderungen vorzunehmen. – jasonharper

Antwort

1

Ihr Code kommentiert:

def change(string): 
     string_len = len(string) 
     t = string[0] 
     for each in range(1, string_len): 
      if each is t: # To compara strings you should use the == operator not the 'is' operator. 
       each == '$' # This will not have any effect because is a temporal variable visible just inside the 'for' loop and you are not using it. 
      else: 
       continue 
    return string 

print(change("restart")) 

Eine Lösung könnte sein:

def change(s): 
    result = '' 
    for character in s: 
     result += '$' if character == s[0] else character 
    return result 


print(change('restart')) 

Python Strings unveränderliche Objekte sind, so dass Sie nicht 'aaa'[1] = 'b' tun können aba zu bekommen.

0

each wird auf eine Ganzzahl gesetzt und Sie vergleichen sie mit einer Zeichenfolge.

Verwandte Themen