In this programming assignment, you will be writing a program that prints out several shapes via text.
In this PA, you will be required to use functions and parameters.
This is both to reduce redundancy and to make your code clean and well-structured.
Name your program shaper.py
.
Your program should have the capability to print out three different shapes: An hourglass
, a plumbbob
, or a house
.
Below is a table that shows examples of each of these shapes.
hourglass | plumbbob | house |
|
|
|
Notice that there are some common shapes within these larger shapes.
All three utilize the |---------|
line.
All three utilize an upward-facing arrow.
Both the hourglass and the plumbbob Have a downward-facing arrow.
The characters in the arrows may differ, but the overall shapes are the same (other than the two directions).
Your program should accept two values as input.
The first should be a selection of the shape to print.
It should check for hourglass
, plumbbob
, and house
.
After asking for the shape, the program should ask for a single character, which should be used for the arrow(s).
It should also ask for an integer, which will determine the number of |---------|
rows to print out at one or more location(s) in the shape.
If a supported shape is entered, the program should print out that shape utilizing the character for the arrow(s). If none of the three valid shapes are entered, the program should print out a message and then the program can end, or you can ask the user for the input repeatedly until a valid one is entered. You do not need to validate the single-character or integer input. See the examples to determine what the prompts and message should be.
In your program, you should write a function that allows you to print out these three sub-shapes.
You should write one function for the upward-facing arrow, one for the downward-facing arrow, and one to print any number of rows of |---------|
.
Each of these functions should take one parameter.
The two arrow functions should take the character that the arrow should be made up of as a parameter.
The row function should accept an integer, which will determine the number of rows to print.
|---------|
line(s)main()
|
|
|
There will be additional test cases on Gradescope.
This program is due Saturday, October 3rd at 7:00pm. Turn it in on Gradescope. You should get your submission to pass as many of the test cases as possible. Also, ensure that your code conforms to the code style requirements.