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

Olá pessoal,

Segue resultado referente ao exercício:

Ana está desenvolvendo seu portfólio para exibir os projetos de Python que concluiu. Ela organizou uma lista com o nome de cada projeto, mas percebeu que alguns itens podem estar ausentes, aparecendo como None:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Crie um programa que ajude Ana a percorrer a lista de projetos e exiba os nomes dos projetos válidos. Se encontrar um item None, o programa deve exibir a mensagem: "Projeto ausente".

Resultado
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Obrigada!

1 resposta

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!