Experiences with a programming exercise

Bob Gailer bgailer at gmail.com
Mon Sep 17 11:35:30 EDT 2018


On Sep 15, 2018 1:50 PM, "Alister via Python-list" <python-list at python.org>
wrote:
>
> On Sat, 15 Sep 2018 17:08:57 +0000, Stefan Ram wrote:
>
> > I gave two different functions:
> >
> > def triangle():
> >     for i in range( 3 ):
> >         forward( 99 ); left( 360/3 )
> >
> > def rectangle()
> >     for i in range( 4 ):
> >         forward( 99 ); left( 360/4 )
> >
> >   , and the exercise was to write a single definition for a function
> >   »angle( n )« that can be called with »3« to paint a triangle and with
> >   »4« to paint a rectangle. Nearly all participants wrote something like
> >   this:
> >
> > def angle( n ):
> >     if n == 3:
> >         for i in range( 3 ):
> >             forward( 99 ); left( 360/3 )
> >     if n == 4:
> >         for i in range( 4 ):
> >             forward( 99 ); left( 360/4 )
> >
> >   Now I have added the requirement that the solution should be as short
> >   as possible!

My candidate for shortest expression:
[( forward( 99 ), left( 360/n)) for x in 'a'*n]
>
> seems a good exercise & you are breaking the students in step by stem
> which is also good
> get something that works, then make it better
>
> i would suggest instead of the new requirement to be make it a short as
> possible make it work with ANY number of sides.
>
>
>
>
> --
>         Max told his friend that he'd just as soon not go hiking in the
> hills.
> Said he, "I'm an anti-climb Max."
>         [So is that punchline.]
> --
> https://mail.python.org/mailman/listinfo/python-list



More information about the Python-list mailing list