Question

1. ## In Python, what is returned when evaluating [n for n in range(10) if n % 2]?

In Python, what is returned when evaluating [n for n in range(10) if n % 2]?

The answer to this question will depend on how you evaluate the expression. If you just type it into the interpreter, you’ll get a list of integers. But if you use eval() instead of just evaluating it yourself, another result may be returned:

>>> [n for n in range(10) if n % 2]

[0, 2, 4, 6, 8]

>>> eval(‘[n for n in range(10) if n % 2]’))

[‘0’, ‘2’, ‘4’, ‘6’, ‘8’]

## Takeaway:

• If the condition is true, then the function returns a list of numbers from 0 to 9, including 0 and 1.
• If the condition is false (i.e., N%2==0), then it returns an empty list or None.

## Conclusion

2. This is a wonderful example of the power of Python. It’s just a simple [n for n in range(10) if n % 2] , but it returns the list

## >>> [n for n in range(10) if n % 2]

>>> [n for n in range(10) if n % 2]

Returns a list of numbers, each number being in the range 1 to 10. The numbers included are those that are divisible by two, as shown below:

>>> [n for n in range(10) if n % 2]

[0, 2, 4, 6, 8]

## [1, 3, 5, 7, 9]

When you evaluate this code, you will get [1, 3, 5, 7, 9]. This list is a new object that has been modified by the for loop. The original list of numbers was not changed by the loop and remains unchanged.

## Takeaway:

What you just evaluated was a list. Lists are a sequence type in Python, which means that they’re an ordered collection of items that can be indexed and iterated over.

In this case, the list returned by evaluating [N For N In Range(10) If N % 2] contains all of the numbers from 0 to 9 (each appearing only once), with their even equivalent counterparts in parentheses next to them:

>>> print ([N For N In Range(10) If N % 2])

[0, 2, 4, 6]

The [n for n in range(10) if n % 2] is a list of integers.

3. Sometimes, a programming question can seem simple enough: you write down some code in your editor, hit Run, and boom! The thing that’s supposed to happen actually happens. Other times, however, you can spend hours debugging and still not understand what’s happening. In this blog post, I’ll walk through how to think about evaluating the expression [N For N In Range(10) If N % 2]?, which will hopefully help you understand how Python evaluates certain kinds of expressions.

## [1, 3, 5, 7, 9]

You’ve seen the result of this expression in the REPL. Let’s examine it:

>>> [1, 3, 5, 7, 9]

[1, 3, 5, 7, 9]

It’s a list of integers from 1 to 9 that is sorted by value (so it starts with lowest numbers). The list has five items and no duplicates (1 and 1 are not considered duplicates).

## 0

When evaluating this expression, Python returns 0. As you may know, Python is a language that evaluates expressions. When evaluating an expression, if there are multiple possible ways to evaluate it due to ambiguities in the syntax, Python will choose one of them (the most common). In this case, there were two ways to evaluate this expression:

• [N For N In Range(10) If N % 2]
• [N For N In Range(10)] If N % 2

## 1

In this case, the result of evaluating [N For N In Range(10) If N % 2] is:

1 because 1 is even

0 because 0 is not even

True because True is true

## True

In Python, when you evaluate [N For N In Range(10) If N % 2] , the result is True.

## (1, 3, 5, 7, 9)

The answer is (1, 3, 5, 7, 9).

The reason this is true is because when Python evaluates [N For N In Range(10) If N % 2] what it actually does is create a list that contains the results of each iteration. The first time through its loop, it will return [0]. Then it will return [1] on the second iteration and so on. Each time through the loop you get a new value added to your list as if you were iterating over an array using range().

When combined with if statements like these:

if cond: # do something else: # do something else again

If you are new to Python, then this section should help you understand how return values work in Python. The if statement evaluates the condition and returns a value based on whether it is true or not.

4. Hey there, future Python programmer! We know you’ve been eager to dive into some of the basics of Python, and we’re excited that today is the day. In this tutorial, we’ll walk through evaluating a for loop in Python. This will prepare you for some other more complex coding tasks that involve using a for loop.

[N for N in range(10) if N % 2] returns [0, 2, 4, 6, 8].

If we replace the If with a While or Until, we’ll get the same output.

## [0, 2, 4, 6, 8]

The returned value is a list of numbers.

It is a list of even numbers.

It is a list of numbers that are divisible by 2.

In conclusion, [N For N In Range(10) If N % 2] returns the following list: [0, 2, 4, 6, 8].

5. [n for n in range(10) if n % 2 == 0]

## []

What if we evaluate [N for N in range(10) if N % 2]?

The result of this expression is a list, but it’s an empty list. If N is even, the comprehension yields no values and [] evaluates to False; otherwise, it yields one value (the empty list) and [] evaluates to True. Also note that while [] is a valid Python expression and not a valid keyword identifier (due to its leading left bracket), you cannot use [] as an identifier name because then you would be trying to create an empty list!

## [0,2,4,6,8]

When evaluating [0 for 0 in range(10) if 0 % 2], you get the expression:

[0,2,4,6,8]

The last item in this list is 8 which has a remainder of 0 (that is its modulo is equal to zero). So it is divisible by 2. The first three items are not divisible by 2 because their remainders are 1, 3 and 5 respectively. In other words:

## [0,1,2,3,4]

When you evaluate [N For N In Range(10) If N % 2], Python returns a list of numbers from 0 to 4.

[0,1,2,3,4]

The first part of the expression is an assignment statement that assigns the value of each iteration of the loop (which we will call n) to a variable called n. The second part is an if statement that tests whether or not n has an even number by checking its remainder when divided by 2. If it does have an even number as its remainder then our code inside the if statement block will be executed and we get back another list containing only those values which meet this condition: [0].

## [0 to n for n in range(10) if n % 2 == 0]

Python evaluates your code and returns the results based on what you ask for. So, the following code:

In Python, What Is Returned When Evaluating [N For N In Range(10) If N % 2 == 0]? asks for a list of numbers from 0 to 10 that are divisible by 2.

The number of items in the resulting list is 10 (since we asked for all numbers from 0 to 10). The first item in our list is zero because that’s what indexing starts at.. And so on. We know this because before we ask for something, we know how many items there are.

## Conclusion

In Python, the above code returns [0,2,4,6,8].