## Basic Code Optimization Challenge

This challenge aims to introduce you to the fundamental concepts of code optimization, a crucial skill for any programmer.

### The Challenge

Let's say you have a function that takes a list of numbers and returns the sum of all the even numbers.

Here's a basic implementation in Python:

```
def sum_even_numbers(numbers):
"""
This function takes a list of numbers and returns the sum of all even numbers.
"""
sum = 0
for number in numbers:
if number % 2 == 0:
sum += number
return sum
```

**Your task is to optimize this function to make it run faster!**

### Optimization Techniques

Here are some ideas to get you started:

**Avoid unnecessary operations:**Can you simplify the conditional check or the loop itself?**Use built-in functions:**Python provides powerful built-in functions for list manipulation and arithmetic. Can you leverage these to make your code more efficient?**Consider data structures:**Would a different data structure be more suitable for this task?

### Example Solution

Here's one possible optimized solution:

```
def sum_even_numbers_optimized(numbers):
"""
This function takes a list of numbers and returns the sum of all even numbers using a generator expression and the sum() function.
"""
return sum(number for number in numbers if number % 2 == 0)
```

This solution uses a generator expression to filter even numbers and then uses the `sum()`

function to calculate the total. This approach avoids explicit looping and is generally more efficient.

### Testing and Evaluation

To evaluate the performance of your optimized code, you can use the `timeit`

module in Python. This module allows you to measure the execution time of code snippets.

**Example:**

```
import timeit
# Test the original function
time_original = timeit.timeit('sum_even_numbers([1, 2, 3, 4, 5, 6])', globals=globals(), number=10000)
# Test the optimized function
time_optimized = timeit.timeit('sum_even_numbers_optimized([1, 2, 3, 4, 5, 6])', globals=globals(), number=10000)
print(f"Original function time: {time_original:.6f} seconds")
print(f"Optimized function time: {time_optimized:.6f} seconds")
```

### Conclusion

This simple challenge demonstrates the importance of code optimization. By applying a few basic techniques, you can significantly improve the performance of your code and make it more efficient. Remember, optimization is an ongoing process, and there is always room for improvement.

**Have fun optimizing!**