Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

[Dúvida] DESAFIO: COLETA E AMOSTRAGEM DE DADOS

Realizei o mesmo código da Aula e está dando um erro agora:
Estou sem entender
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Olá, Evandro. Como vai?

Esse é um erro que costuma causar bastante confusão no início, mas a explicação é bem lógica dentro do funcionamento do Python.

O erro TypeError: 'str' object is not callable acontece porque, em algum momento anterior no seu código (ou em uma célula de código executada antes desta), você provavelmente criou uma variável com o nome input e atribuiu um texto a ela, como por exemplo: input = "algum texto".

Quando você faz isso, você "sobrescreve" a função padrão do Python. A partir desse momento, para o computador, input deixou de ser um comando para ler dados e passou a ser apenas uma string (texto). Por isso, ao tentar usar input('Digite seu nome: '), o Python reclama que você está tentando "chamar" (usar os parênteses) em um objeto que é apenas um texto.

Para resolver isso e fazer seu código voltar a funcionar, você tem duas opções:

  • Reiniciar o Ambiente: No topo do seu editor (Google Colab ou Jupyter), vá em Ambiente de Execução (ou Kernel) e selecione a opção Reiniciar Ambiente de Execução. Isso limpará todas as variáveis da memória e restaurará a função input original.
  • Deletar a variável manualmente: Você pode executar o comando del input em uma nova célula. Isso removerá a sua variável personalizada e o Python voltará a usar a função padrão do sistema.

Dica de boa prática:
Evite sempre usar nomes de funções nativas do Python (como input, print, list, sum, type) como nomes de suas próprias variáveis. Uma boa técnica é usar nomes mais específicos, como nome_usuario ou texto_entrada.

Após reiniciar o ambiente, seu código atual funcionará perfeitamente:

nome = input('Digite seu nome: ')
print(f'Olá, {nome}!')

Espero que possa ter lhe ajudado!

Olá Evandro, obrigado pela explicação!
Outra alternativa que achei foi trocar nome por user_name

E funcionou! Bom de acontecer este erro é que ficarei atendo quando tiver repetições no mesmo nootebook.

Obrigado!