# [Edu-sig] What version of Python to teach ....

michel paul mpaul213 at gmail.com
Mon Apr 20 01:44:30 CEST 2009

```On Sun, Apr 19, 2009 at 2:48 PM, Gregor Lingl <gregor.lingl at aon.at> wrote:

> >How do you explain the nature of range to beginners?
>

How about using list(range())?  Something like:

>>> # Here's how you can create a list of integers:
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 10))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 10, 2))
[1, 3, 5, 7, 9]
>>> list(range(-10, 10, 2))
[-10, -8, -6, -4, -2, 0, 2, 4, 6, 8]

>>> # 'list' creates a list, and 'range' specifies its starting point,
ending point, and interval between points.
>>> # a range object produces these values when called upon to do so.
>>> # for example, in a loop:
>>> for x in range(10): (x, x**2)

(0, 0)
(1, 1)
(2, 4)
(3, 9)
(4, 16)
(5, 25)
(6, 36)
(7, 49)
(8, 64)
(9, 81)

Now, interesting, here I've stumbled on a question that I need some
clarification on:

>>> a = range(10)
>>> type(a)
<class 'range'>
>>> next(a)
Traceback (most recent call last):
File "<pyshell#49>", line 1, in <module>
next(a)
TypeError: range object is not an iterator

>>> help(range)
Help on class range in module builtins:

class range(object)
|  range([start,] stop[, step]) -> range object
|
|  Returns an iterator that generates the numbers in the range on demand.

So is range an iterator?

- Michel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/edu-sig/attachments/20090419/53a2ea3b/attachment.htm>
```