Lab 3: Happy Owls
Let's practice some more with functions, parameters, and the bigger picture idea of abstraction.
Open lab03/drawOwls.py and examine the given strings:
empty = ' '
lineA = ' {o,o}'
lineB = ' /)_) '
lineC = ' " " '
These strings, if printed, produce a simple ASCII art owl.
Owl x 1
In the drawOwls.py file, write a function called owl that will print a single owl using the given strings.
>>> owl()
{o,o}
/)_)
" "
Note: None of the following functions can use these strings again except for owlRow.
Owl x 2
Write a second function called owlPair that prints two owls in a column like this:
>>> owlPair()
{o,o}
/)_)
" "
{o,o}
/)_)
" "
Owl x 4
Write a third function called owlQuad that prints four owls in a column like this:
>>> owlQuad()
{o,o}
/)_)
" "
{o,o}
/)_)
" "
{o,o}
/)_)
" "
{o,o}
/)_)
" "
Owls in rows
Write a fourth function called owlRow that takes one parameter (n) and prints the specified number of owls in a row.
In this function, you can (and will need to) use the predefined strings (eg empty, lineA, lineB, lineC) again.
Example 1.
>>> owlRow(2)
{o,o} {o,o}
/)_) /)_)
" " " "
Example 2.
>>> owlRow(3)
{o,o} {o,o} {o,o}
/)_) /)_) /)_)
" " " " " "
Example 3.
>>> owlRow(5)
{o,o} {o,o} {o,o} {o,o} {o,o}
/)_) /)_) /)_) /)_) /)_)
" " " " " " " " " "