This concept is very useful for dividing loop codes to small parts.
Below is my example code that prints digit pyramid.
def change_value():
for step in range(1, 10):
yield step
def create_box(steps):
for step in steps:
yield (' ').join( str(step) for i in range(2 * step - 1) )
def create_pyramid(height):
boxes = create_box(change_value())
for step, box in enumerate(boxes):
if step == height:
break
else:
print ('').join(' ' for i in range((height - step)*2)) + box
Result of above code is ...
>>> create_pyramid(9)
1
2 2 2
3 3 3 3 3
4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
No comments:
Post a Comment