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

retorna none

numeros = [0,1,2,3,4,5,6,600,403,99]

pares = [print(f'{par} é par') if par%2==0 else print(f'{par} é impar') for par in numeros] 
pares

Olá, o código acima me retorna isso: Não entendi porque ele retorna vários nones no final. E como remove-los, pois a intenção é apenas de exibir se o número é par ou impar usando "list comprehension".

0 é par
1 é impar
2 é par
3 é impar
4 é par
5 é impar
6 é par
600 é par
403 é impar
99 é impar
[None, None, None, None, None, None, None, None, None, None]
1 resposta
solução!

Oii Rogério, como você está?

O None é retornado devido a função print que é responsável por imprimir algo na tela, mas, implicitamente, por debaixo dos panos, ela não retorna nada, ela nos devolverá None, por isso é criado uma lista repleta de valores None.

No exemplo apresentado por você, o que queremos não é printar o valor diretamente, mas sim, salvar a string ‘é par’ ou ‘é impar’ dentro da compreensão de listas (list comprehension), para isso, basta apenas retirar a função print do código apresentado:

numeros = [0,1,2,3,4,5,6,600,403,99]

pares = [f'{par} é par' if par%2==0 else f'{par} é impar' for par in numeros] 
pares

Retorno:

['0 é par',
 '1 é impar',
 '2 é par',
 '3 é impar',
 '4 é par',
 '5 é impar',
 '6 é par',
 '600 é par',
 '403 é impar',
 '99 é impar']

Qualquer dúvida fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software