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.
Para saber mais:
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!