[Python-ideas] Simpler syntax for basic iterations
Luciano Ramalho
luciano at ramalho.org
Mon Oct 12 00:13:27 CEST 2015
On Sun, Oct 11, 2015 at 7:03 PM, Ben Finney <ben+python at benfinney.id.au> wrote:
> Luciano Ramalho <luciano at ramalho.org>
> writes:
>> for n: # repeat block n times
>> fd(100)
>> lt(360/n)
>>
>> Where n is any expression that evaluates to an integer.
>
> Huh? If ‘n’ is an expression that evaluates to one integer, then why are
> you also dividing by that one integer ‘n’ every time through?
That's the classic formula for drawing an N-sided polygon in Logo. N
can be any positive integer. Maybe this is clearer:
for 3: # draw a triangle
fd(100)
lt(120)
> I don't claim it will convince you, but I find compelling the fact that
> this::
>
> for n in range(FOO):
> fd(100)
> lt(360/n)
>
> already works fine and is quite clear.
It is quite clear for us. When teaching the first steps of programming
to kids with the Turtle module, `for x in range(n):` leaves us in the
unfortunate position of having to say: "we won't use that x for
anything, and I can't explain what range this until much later..."
Cheers,
Luciano
>
> --
> \ “Science is a way of trying not to fool yourself. The first |
> `\ principle is that you must not fool yourself, and you are the |
> _o__) easiest person to fool.” —Richard P. Feynman, 1964 |
> Ben Finney
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
--
Luciano Ramalho
| Author of Fluent Python (O'Reilly, 2015)
| http://shop.oreilly.com/product/0636920032519.do
| Professor em: http://python.pro.br
| Twitter: @ramalhoorg
More information about the Python-ideas
mailing list