Scott W Dunning wrote: > > On Feb 23, 2014, at 2:26 AM, Peter Otten <__pete...@web.de> wrote: >> If you want to make rows with more or less stars, or stars in other >> colors you could add parameters: >> >> def star_row(numstars, starcolor): >> for i in range(numstars): >> fillstar(starcolor) >> space(25) >> >> Your code will then become >> >> star_row(6, red) >> row(25) >> star_row(5, red) >> row(25) >> > I have a question with the above loop function. Why couldn’t row(25) be > added into the function so that wouldn’t have to placed in between every > star_row()?
That's of course possible. >> which still shows a repetetive pattern and thus you can simplify it with >> another loop. You should be able to find a way to write that loop with >> two star_row() calls on a single iteration, but can you do it with a >> single call too? > Not sure I understand what you mean in the above paragraph? What you found out later and put in you next post: This repetetive pattern > star_row(5) # oops, typo > row(25) > star_row(5) > row(25) > star_row(6) > row(25) > star_row(5) > row(25) > star_row(6) > row(25) > star_row(5) > row(25) > star_row(6) > row(25) > star_row(5) > row(25) > star_row(6) can be turned into this for loop: > This is what I’m thinking… > > for I in range(4) > star_row(5) > row(25) > star_row(6) > row(25) > > Am I at all close? You hit the jackpot :) Now on to the next challenge: for row_index in range(9): row_width = ... star_row(row_width) row(25) Can you replace the ... with a calculation to get row_width=6 for even and row_width=5 for odd rows? Hint: look at the % ("modulo") operator. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor