projetos = ["website", "jogo", "análise de dados", None, "aplicativo móvel"]
for projeto in projetos:
if projeto == None:
print("Projeto ausente")
continue
print(projeto)
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!
projetos = ["website", "jogo", "análise de dados", None, "aplicativo móvel"]
for projeto in projetos:
if projeto == None:
print("Projeto ausente")
continue
print(projeto)
Olá, Marcelo. Como vai?
O seu código ficou excelente e muito bem estruturado! Você aplicou a instrução continue exatamente no cenário para o qual ela foi desenhada: limpeza e filtragem de dados brutos.
Em projetos reais, é extremamente comum consumirmos dados de bancos de dados ou de APIs que vêm com campos vazios (os famosos valores None ou Null). Se o seu programa tentasse realizar alguma operação com esse valor ausente (como transformar o texto para maiúsculas ou calcular o tamanho da string), o sistema sofreria uma quebra fatal (runtime error).
A sua lógica identificou o valor ausente, tratou a exceção avisando o usuário e utilizou o continue de forma cirúrgica para pular para o próximo projeto da lista, mantendo o fluxo do programa rodando perfeitamente.
is para checar NoneEmbora a comparação utilizando o operador de igualdade (projeto == None) funcione perfeitamente em Python, a comunidade de desenvolvimento e o guia de estilo oficial da linguagem (a PEP 8) recomendam uma abordagem ligeiramente diferente para checar valores nulos.
Em Python, None é um objeto especial único na memória (um singleton). Por conta disso, a boa prática de mercado orienta o uso do operador de identidade is em vez do operador de comparação ==.
Veja como o miolo do seu laço for ficaria utilizando esse padrão profissional:
projetos = ["website", "jogo", "análise de dados", None, "aplicativo móvel"]
for projeto in projetos:
# A boa prática recomenda usar 'is None' para checar valores nulos
if projeto is None:
print("Projeto ausente")
continue
print(projeto)
is?Além de deixar a leitura do código mais natural (parecendo inglês fluído: "if projeto is None"), o operador is compara se os dois objetos apontam para o mesmo lugar na memória do computador. Isso torna a checagem ligeiramente mais rápida e previne comportamentos inesperados caso você esteja trabalhando com classes customizadas no futuro.
Parabéns por mais essa excelente solução no fórum do curso! Você demonstrou uma ótima compreensão de como o continue ajuda a manter nossos códigos limpos e organizados.
Espero que possa ter lhe ajudado!
Eu me esqueci desse is, boa também não sabia que er um singleton (padrçao de projeto)