11.10. Exercises: Functions¶
To solve problems with code, you need to be able to break large problems into small ones. Usually, these smaller problems will take the form of functions that are used to solve the larger problem. Therefore, to solve problems with code, you need to be skilled at writing functions. And to master functions, you need to write a lot of them.
These exercises ask you to write many relatively small functions, which combine to form larger, more complicated ones.
At the end, you will be able to create strings of shapes, like this nifty diamond:
#
###
#####
#######
#########
#########
#######
#####
###
#
11.10.2. Part 1: Rectangles¶
Write a function
make_line(size)
that returns a line with exactlysize
hashes.print(make_line(5))
Console Output
#####
Write a function called
make_square(size)
that returns asize
bysize
string of hashes. The function should NOT print each row of the square. Instead, it must return a single string that contains the entire shape.Tip
Call your
make_line
function to create each row of the square.The newline character,
\n
, will be helpful to you.Do NOT include a newline character at the end of your string.
print(make_square(5))
Console Output
##### ##### ##### ##### #####
Warning
For each of the shape exercises, do not include a newline character at the very end of your string. While the final
\n
might not be noticeable for the simpler shapes, including it will make life harder for you toward the end of the exercises.Write a function
make_rectangle(width, height)
that returns a rectangle with the given width and height. Use yourmake_line
function to do this.print(make_rectangle(5, 3))
Console Output
##### ##### #####
Now, go back and rewrite
make_square
to usemake_rectangle
.
11.10.3. Part 2: Triangles¶
Write a function
make_downward_stairs(height)
that prints the staircase pattern shown below, with the given height. Use yourmake_line
function to do this.print(make_downward_stairs(5))
Console Output
# ## ### #### #####
Write a function
make_space_line(numSpaces, numChars)
that returns a line with exactly the specified number of spaces, followed by the specified number of hashes, followed again bynum_spaces
more spaces.print(make_space_line(3, 5));
Console Output
___#####___
Note
We have inserted underscores to represent spaces, so they are visible in the output. Don’t do this in your code.
Write a function
make_isosceles_triangle(height)
that returns a triangle of the given height.print(make_isosceles_triangle(5))
Console Output
# ### ##### ####### #########
Tip
Consider the top line of the triangle to be level 0, the next to be line 1, and so on. Then line
i
is a space-line withheight - i - 1
spaces and2 * i + 1
hashes.
11.10.4. Part 3: Diamonds¶
Write a function
make_diamond(height)
that returns a diamond where the triangle formed by the top portion has the given height.print(make_diamond(5))
Console Output
# ### ##### ####### ######### ######### ####### ##### ### #
11.10.5. Optional Mission¶
Refactor your functions so that they take a single character as a parameter,
and draw the shapes with that character instead of always using '#'
. Make
the new parameter optional, with default value '#'
.
11.10.6. Submitting Your Work¶
When finished copy the URLs to your repls for the exercises, separating each URL with a semi-colon and paste them into the submission box in Canvas for Exercises: Booleans, Conditionals, and Loops and click Submit.
You should have a total of 6 repls, 1 from the above Functions Exercises and 5 from from Errors and Debugging Exercises.