Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Substituir todos os caracteres de uma string por outro caracter

Estou tentando substituir cada caracter de secretWord por " - " mas o código acima só substitui o último:

appl _

O que está errado?

O resultado deveria ser _ _ _ _ _

def getGuessedWord(secretWord, lettersGuessed):
    secretWord_copy = ""
    for i in secretWord:
        print(i)
        secretWord_copy = secretWord.replace(i," _ ")
    print(secretWord_copy)
secretWord = 'apple'
1 resposta
solução!

Oi, Edson! Tudo bem?

O que acontece é que no seu loop for você está chamando o replace() toda vez na variável secretWord, e definindo que a cópia vai sempre ser o retorno desse replace(). O problema é que o replace() não muda a string no local, mas retorna outra string. Vamos simular isso passo a passo pra ficar mais claro:

No primeiro loop:

secretWord == apple
secretWord_copy == _pple

Segundo loop:

secretWord == apple
secretWord_copy == a_ple

Porque a cópia sempre vai se basear na secretWord, entende?

Existem algumas formas que podem simplificar bastante o código e não trazer esse problema. Um exemplo é simplesmente ter uma string com '_ ' multiplicado pelo comprimento da secretWord:

secretWord_copy = '_ ' * len(secretWord)
print(secretWord_copy)

E o resultado:

_ _ _ _ _

O que acha?

Abraços e bons estudos!