1
resposta

minha resposta sai True ou False ou int tbm....

>>> pares = [numero % 2 == 0 for numero in inteiros]
>>> pares
[False, False, True, False, False, True, False]
>>>

ta certa a resposta ??? ou a resposta é no type int ?? se eu faço assim :

>>> pares = [numero for numero in inteiros if numero %2 ==0]
>>> pares
[4, 8]

sai com int, mais acho que o outro é mais completo, esse resultado seria melhor para um print, para sair numa impressão.

demorei 3 horas para fazer os dois......

1 resposta

Rafael, em seu primeiro bloco de código você não está retornando ints. Está retornando boleanos. O algoritmo é analisado e cada vez que a pergunta é feita :" O resultado da divisão desse inteiro por 2 tem resto zero?", a resposta vai sendo item a item processada e te retorna um boleano True (sim) ou False (não).

1 = False 2 = True 3 = False 4 = True etc

Um teste para verificar a classe nesse caso:

print(type(pares[0]))
<class 'bool'>

No segundo bloco de código, você tem uma situação diferente acontecendo. Você está retornando quais desses inteiros são pares, seu reultado será de natureza int (numeros).

Teste para verificação da classe para o elemento na posição inicial:

print(type(pares[0]))
<class 'int'>

É legal que vc tenha feito o teste de ambas as formas. Eu não diria que um é mais completo que o outro. VC somente buscou coisas diferentes em cada um deles. Ambos podem ser bastante úteis dentro de engrenagens que podem fazer parte de um programa mais complexo. ;)