Olá, Vanessa. Como vai?
Parabéns por mais uma excelente solução! O seu código está impecável e resolve o problema proposto com precisão. O uso da estrutura condicional if projeto is None: foi perfeito para capturar e tratar de forma amigável os dados nulos na lista da Ana.
Para complementar o seu post e ajudar a fixar as boas práticas de programação em Python com a comunidade do fórum, vale destacar o uso correto que você fez do operador de identidade is.
Por que usar o is None em vez de == None?
No Python, existe uma diferença sutil entre os operadores == (igualdade) e is (identidade):
- O operador
== verifica se os valores de dois objetos são iguais. - O operador
is verifica se as variáveis apontam exatamente para o mesmo objeto na memória.
Como o None é um tipo de dado especial e único no Python (um Singleton), a recomendação oficial do guia de estilo do Python (o PEP 8) determina que comparações com None devem ser feitas sempre utilizando o is ou o is not. O seu código segue à risca esse padrão de mercado usado por desenvolvedores experientes.
Uma abordagem alternativa com o operador continue
Uma outra forma bastante comum de estruturar essa mesma lógica de filtragem de dados limpos é usar a palavra-chave continue. Ela serve para interromper a iteração atual do laço de repetição e pular direto para o próximo elemento da lista.
Veja como o código ficaria estruturado usando essa abordagem:
projetos = ["website", "jogo", "análise de dados", None, "aplicativo móvel"]
for projeto in projetos:
if projeto is None:
print('Projeto Ausente')
continue # Pula o restante do bloco e vai para o próximo projeto
print(projeto)
Ambos os formatos chegam ao mesmo resultado final que você exibiu na imagem. A escolha entre usar o else estruturado ou o continue costuma depender do padrão de escrita de cada equipe de desenvolvimento.
Continue postando seus códigos práticos, eles ajudam muito a movimentar o fórum e inspirar quem está começando!
Espero que possa ter lhe ajudado!