1
resposta

Erro Tuple

Olá,

Tenho este código com a minha palavra personalizada mais não está a funcionar


def jogar():# Definir una función
    print("***********")
    print("Bem vindo ao jogo de Forca")
    print("***********")

    palavra_secreta= "sttephania"
    palavra_secreta=palavra_secreta.capitalize()
    letras_acertadas=("_", "_", "_", "_", "_" , "_" , "_" , "_" , "_" , "_",)

    enforcou=False#Booleano
    acertou=False#Booleano

    print(letras_acertadas)

    while(not enforcou and not acertou):
        chute=input("Qual letra?")
        chute=chute.strip()

        index=0
        for letra in palavra_secreta:
            if (chute.upper()==letra.upper()):
                letras_acertadas [index] = letra
            index=index+1

        print(letras_acertadas)
    print("Fim do jogo")

if(__name__) == ("__main__"):# Para ejecutar solo al escribir el nombre del programa directamente en la consola
    jogar()

estou a ter o seguinte erro

"C:\Users\Perpignan Drummond\PycharmProjects\adivinhacao\venv\Scripts\python.exe" "C:/Users/Perpignan Drummond/PycharmProjects/adivinhacao/forca.py"
***********
Bem vindo ao jogo de Forca
***********
('_', '_', '_', '_', '_', '_', '_', '_', '_', '_')
Qual letra?a
Traceback (most recent call last):
  File "C:\Users\Perpignan Drummond\PycharmProjects\adivinhacao\forca.py", line 30, in <module>
    jogar()
  File "C:\Users\Perpignan Drummond\PycharmProjects\adivinhacao\forca.py", line 23, in jogar
    letras_acertadas [index] = letra
TypeError: 'tuple' object does not support item assignment

Process finished with exit code 1

Alguém pode-me dizer o que acontece?

1 resposta

Ola, boa tarde

Ao ser definido a variavel letras_acertadas=("_", "_", "_", "_", "_" , "_" , "_" , "_" , "_" , "_",) usando parenteses (), voce transforma a variavel em uma tupla, e uma tupla eh um objeto imutavel, ou seja, ele nao pode ser modificado depois de atribuido

O ideal eh que voce mude na declaracao da variavel e use colchetes []

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software