0

これは宿題の質問です。単語を受け取り、特定の文字を別の文字に置き換える関数を定義しています。たとえば、replace("cake","a","o") は "coke" を返す必要があります。

def replace(word,char1,char2):
    newString = ""
    for char1 in word:
        char1 = char2
        newString+=char1
    return newString  #returns 'oooo'

def replace(word,char1,char2):
    newString = ""
    if word[char1]:
        char1 = char2
        newString+=char1
    return newString  #TypeError: string indices must be integers, not str

私の最初の試みは、私が望むものに近いと思います。私の機能で何が問題になっていますか?

4

2 に答える 2

3

これを試して:

def replace(word,char1,char2):
    newString = ""
    for next_char in word:         # for each character in the word
        if next_char == char1:     # if it is the character you want to replace
            newString += char2     # add the new character to the new string
        else:                      # otherwise
            newString += next_char # add the original character to the new string
    return newString

Python の文字列には、これを行うメソッドが既にありますが:

print "cake".replace("a", "o")
于 2013-03-22T03:35:19.563 に答える
2
def replace(word, ch1, ch2) :
    return ''.join([ch2 if i == ch1 else i for i in word])
于 2013-03-22T03:46:09.977 に答える