PROG0228 - Old MacDonald

no tags 

Old MacDonald had a farm, E-I-E-I-O
and on his farm he had a cow, E-I-E-I-O
With a moo-moo here, and a moo-moo there
here a moo, there a moo
everywhere a moo-moo
Old MacDonald had a farm, E-I-E-I-O

Who doesn't know this song from their childhood? Moreover, it invites to make a ton of combinations. For example, old MacDonald can have cows, pigs, or ducks on his farm. There are a ton of variations of this song, the oldest of which is a number of an opera called The Kingdom of the Birds from 1720. Another early version of this song can be found in the 1917 book "Tommy's Tunes", a collection of World War I era songs by F.T. Nettleingham.

Assignment

Write a function nurseryrhyme that prints the verses of the song for a specific completion of degrees of freedom which can be used to make combinations of the song. This function must use two optional parameters: animals and animal sounds. If no value is given for one of the parameters, the term of the original song is used as a standard value for that parameter. The verses must be printed on separate lines, in the same way they are printed above.

Example

>>> nurseryrhyme()
Old MacDonald had a farm, E-I-E-I-O
and on his farm he had a cow, E-I-E-I-O
With a moo-moo here, and a moo-moo there
here a moo, there a moo
everywhere a moo-moo
Old MacDonald had a farm, E-I-E-I-O
>>> nurseryrhyme('bee', 'buzz', 'buzz')
Old MacDonald had a farm, E-I-E-I-O
and on his farm he had a bee, E-I-E-I-O
With a buzz-buzz here, and a buzz-buzz there
here a buzz, there a buzz
everywhere a buzz-buzz
Old MacDonald had a farm, E-I-E-I-O
>>> nurseryrhyme(animal='dog', here='bow', there='wow')
Old MacDonald had a farm, E-I-E-I-O
and on his farm he had a dog, E-I-E-I-O
With a bow-wow here, and a bow-wow there
here a bow, there a wow
everywhere a bow-wow
Old MacDonald had a farm, E-I-E-I-O

'k Zag twee beren broodjes smeren,
oh, dat was een wonder.
't Was een wonder, boven wonder,
dat die beren smeren konden.
Hi hi hi, ha ha ha,
'k stond er bij en ik keek er naar.

Wie kent dit liedje niet uit zijn kindertijd? Bovendien nodigt het uit om er een heleboel combinaties mee maken. Zo kan je bijen wanten laten breien en ganzen tango laten dansen. Voor zover we hebben kunnen achterhalen is de auteur van dit oude kinderliedje onbekend. In het boek "Alles in de wind" van C.J. Aarts en M.C. van Etten — die zich ingespannen hebben om de herkomst van liederen te achterhalen — wordt dit kinderliedje aangegeven als "anoniem voor 1896". De oudste bron die zij hebben kunnen vinden was "Nederlandsch Volksliederen, 134 liederen voor zang en klavier" uit 1896, samengesteld door Daniël de Lange en hr. mr. J.C.M. van Riemsdijk. Daarin wordt dit lied beschreven als afkomstig uit de verzameling van G.J. Boekenoogen.

Opgave

Schrijf een functie kinderliedje die de verzen van het liedje uitschrijft voor een specifieke invulling van vrijheidsgraden waarmee combinaties van het liedje kunnen gemaakt worden. Deze functie moet gebruik maken van drie optionele parameters: dieren, iets en doen. Indien voor een bepaalde parameter geen waarde wordt doorgegeven aan de functie, wordt de overeenkomstige term uit de oorspronkelijke versie van het kinderliedje als standaardwaarde gebruikt voor die parameter. De verzen moeten door de functie op afzonderlijke regels uitgeschreven worden, op identiek dezelfde manier zoals ze hierboven werden uitgeschreven.

Voorbeeld

>>> kinderliedje()
'k Zag twee beren broodjes smeren,
oh, dat was een wonder.
't Was een wonder, boven wonder,
dat die beren smeren konden.
Hi hi hi, ha ha ha,
'k stond er bij en ik keek er naar.
>>> kinderliedje('bijen', 'wanten', 'breien')
'k Zag twee bijen wanten breien,
oh, dat was een wonder.
't Was een wonder, boven wonder,
dat die bijen breien konden.
Hi hi hi, ha ha ha,
'k stond er bij en ik keek er naar.
>>> kinderliedje(dieren='ganzen', doen='dansen', iets='tango')
'k Zag twee ganzen tango dansen,
oh, dat was een wonder.
't Was een wonder, boven wonder,
dat die ganzen dansen konden.
Hi hi hi, ha ha ha,
'k stond er bij en ik keek er naar.


Added by:Peter Dawyndt
Date:2012-03-06
Time limit:5s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC
Resource:None