5. sintaxis de comprension de listas


#1

No comprendo por qué este codigo me arroja como resultado algo que no deberia de ser.

cuadrados_pares = [x**2 for x in range(1,6) if (x*2) % 2 == 0]

print cuadrados_pares

[1, 4, 9, 16, 25]

sí para los numeros 9 y 25 el resultado del residuo deberia de ser 1


pd: no estoy pidiendo la solucion al ejercicio.


#2

Should this be, if x ** 2 % 2 == 0?


#3

si, asi debe de ser.

Pero mi pregunta es ¿que logica sigue el programa para que me muestre ese resultado, si tiene como condicion que el residuo de dos sea igual a cero y sabemos que los residuos de 9%2 y 25%2 es igual a 1?


yes, it should be like this

But my question is:
What logic does the program follow to show that result, if it has the condition that the residue of two equals zero and we know that the residues of 9% 2 and 25% 2 are equal to 1?


#4

Until I see the lesson, it’s impossible to answer your question. Please post a link to the exercise. Thanks.


My guess was that if the square of a number is divisible by 2, cache the number squared.


#5

https://www.codecademy.com/es/courses/python-intermediate-en-kh7aa/1/2?curriculum_id=53a32847fed2a88075000001


#6

The squares of even numbers between 1 and 11…

 [x**2 for x in range(1,11) if x % 2 == 0]

Output

[4, 16, 36, 64, 100]

#7

intenta con:

if (x*2)%2 == 0

asi esa no sea la condicion del ejercicio, es la que me causa la pregunta.


#8

No es necesario cuadrar x en el condicional. El cuadrado de un número impar es siempre impar.

Not necessary to square x in the conditional. The square of an odd number is always odd.