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!

1
resposta

Organizando seu portfólio

projetos = ["website", "jogo", "análise de dados", None, "aplicativo móvel"]

for projeto in projetos: 
    if projeto == None:
        print('Projeto ausente')
    else:
        print(f'{projeto}')
  • Tive dúvidas nesse aqui. O uso do '==' seria alguma espécie de erro nesse código? POis na correção o intrutor utilizou o 'is'
1 resposta

Oi, Nathã. Tudo bem com você?

Sua solução está funcionando corretamente e a dúvida sobre == e is é bem válida. Nesse caso, usar projeto == None não impede o programa de funcionar, então sua solução produz o resultado esperado. A diferença está na forma como Python recomenda fazer essa verificação. Para verificar especificamente se uma variável é None, é mais adequado utilizar is None, como no código do instrutor.

O operador == verifica se dois valores são considerados iguais, enquanto is verifica se estamos falando do mesmo objeto. Como None representa a ausência de um valor e existe como um objeto único em Python, a forma mais comum e recomendada é if projeto is None:. Por exemplo, para os valores "website" e "jogo", a condição será falsa e o nome será exibido. Quando chegar ao None, a condição será verdadeira e aparecerá "Projeto ausente".

Então, não há um erro de lógica no seu código. A principal diferença é seguir a convenção mais apropriada para essa situação. O que você acha que aconteceria se, em vez de None, a lista tivesse uma string vazia ""?

Parabéns por concluir a atividade e por trazer essa dúvida para o fórum. Questionar a diferença entre operadores é uma ótima forma de entender melhor Python. Continue compartilhando suas soluções e dúvidas. O fórum está à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!