input: Write a function to generate a list of the first n square numbers.
  assert generate_squares(5) == [0, 1, 4, 9, 16]
  assert generate_squares(10) == [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
  assert generate_squares(0) == []
  assert generate_squares(1) == [0]
output: def generate_squares(n):
      return [i * i for i in range(n)]