Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

listas e interações

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

for projeto in projetos: try: print(f"Projeto: {projeto}") except TypeError: print("Projeto não disponível.")

Projeto: website Projeto: jogo Projeto: análise de dados Projeto: None <<-------- fiz o teste do código do exercício, mas acredito que a intenção era que a saída fosse "Projeto não disponível." Projeto: aplicativo móvel

1 resposta
solução!

Oi Victor, tudo bem?

A questão aqui é que o valor None em Python não causa um TypeError quando tentamos imprimi-lo, por isso, o bloco try não falha e o except não é executado.

O TypeError seria lançado se você tentasse realizar uma operação que não é suportada com o tipo de dado. Por exemplo, se você tentasse adicionar um número a uma string, você teria um TypeError.

No seu caso, você quer imprimir o valor, e None pode ser impresso, então não há erro. Em vez disso, o Python imprime "None".

Se você quer que "Projeto não disponível" seja impresso quando o valor for None:


for projeto in projetos:
  if projeto:
    print(f"Projeto: {projeto}")
  else:
    print("Projeto não disponível.")

Nesse caso, a condição if projeto: verifica se o valor de projeto é verdadeiro. Em Python, None é considerado um valor "falso", então, quando projeto é None, a condição falha e "Projeto não disponível" é impresso.

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

Espero ter ajudado.

Um abraço e bons estudos.