Homework 9 – Fractals
Assignment 6 – Mad Libs in Python
Dean Zeller Due: Tuesday, November 1st
CS10051 10 points
Fall, 2007
Objective The student will create interactive Mad Libs activities in Python.
Readings
Python Library Reference (string methods) at
Background: String Formatting
This assignment is a change in direction from the previous assignments, in that graphics are not a component. Interaction with the user can be completed using a text interface. You will be using strings to implement the common educational activity, Mad Libs. Strings may use either ‘single quotes’ or “double quotes.”
Instructions
Follow the design requirements below to create at least two mad libs stories in Python, similar to the template below. To encourage reusability, follow these rules. See the web pages in for activity 6 for ideas.
1. The code for the mad lib activity must be completely within a procedure, following the template below. A programmer should be able to execute the activity by calling the function.
2. Each procedure must have documentation clearly indicating the title, author(s), date completed, date modified (if necessary), and a brief description. It must look exactly like the template, including the pound signs (#) and blank lines. This level of documentation is necessary to allow others to read and understand your work. Use comments throughout the code to describe what the code is doing.
3. The optional parameter of textwidth should be available for the programmer, with a default value of 50.
4. Input from the user is gained through the raw_input command.
5. Name your entry variables in the following manner:
[pic]
6. Use Python’s print command to print the story with the entry variables in place of the original words. Experiment with IDLE’s interactive environment to understand the difference. The following is a guide on the use the comma and plus sign in a print statement:
Use a comma (,) to separate strings (adds a space).
print "hello", "there"
print "So the rabbit said", greeting
Use a plus sign (+) to concatenate strings (does not add a space)
print "hello" + "there"
print "So the rabbit said " + greeting
7. This assignment is an exercise in text formatting. The Python string formatting commands are available to help space your text correctly. Sometimes getting text to look correct on the screen can be challenging.
To center a string within a width of 50 characters:
print "Hello there".center(50)
print ("By "+firstName+" "+lastName).center(50)
To right justify a string within a width of 50 characters:
print "Hello there".rjust(50)
print ("By "+firstName+" "+lastName).rjust(50)
To capitalize the first letter of a string:
print firstName.capitalize()
Turning in your assignment
• Make a printout of your code.
• Test each mad lib story once, with reasonable (but funny) entries. Make a printout of your tests.
Grading
You will be graded on the following criteria:
Format Correctly following the design specifications
Quantity Size and complexity of the stories implemented
Creativity Imagination and originality in the stories
Extra Credit
• Implement additional stories
madlibs.py
###########################################################################
# #
# Mad Lib functions #
# by Dean Zeller #
# #
# The following is a library of mad lib procedures. #
# #
###########################################################################
###########################################################################
# Tortoise and Hare Mad Lib #
# Programmed by Dean Zeller (10-20-07) #
# Source: Mad Libs web site #
# This is the common fable of the race between the tortoise and the #
# hare. #
###########################################################################
def tortoise_n_hareML(textwidth=50):
half = textwidth / 2
# print title
print
print
print "Welcome to Mad Libs(r)".center(textwidth)
print
print "Please input the following entries:"
# input entries from user
nounHare = raw_input("noun (singular) => ".rjust(half))
verbBoasting = raw_input("verb (ending in ing) => ".rjust(half))
nounAnimals = raw_input("noun (plural) => ".rjust(half))
nounTortoise = raw_input("noun (singular) => ".rjust(half))
verbChallenge = raw_input("verb (present tense) => ".rjust(half))
nounJoke = raw_input("noun (singular) => ".rjust(half))
verbStopped = raw_input("verb (past tense) => ".rjust(half))
nounNap = raw_input("noun (singular) => ".rjust(half))
# print story with user entries
print
print "Thank you. Here is your Mad Lib!"
print
print ("The "+nounTortoise.capitalize()+" and the "+nounHare.capitalize()).center(textwidth)
print "(from The Tortoise and the Hare)".center(textwidth)
print
print " The",nounHare,"was once",verbBoasting,"of his speed before"
print "the other",nounAnimals+". 'I have never been beaten,' said he,"
print "'when I put furth my full speed. I",verbChallenge,"any one here"
print "to race with me. The",nounTortoise,"said quietly, 'I accept your"
print verbChallenge+".'"
print " 'That is a good",nounJoke+",' said the ",nounHare+"; 'I could"
print "dance round you all the way.'"
print " 'Keep your",verbBoasting,"till you've won,' answered the"
print nounTortoise+". 'Shall we race?'"
print " So a course was fixed and a start was made. The",nounHare
print "darted almost out of sight at once, but soon",verbStopped,"and,"
print "to show his contempt for the",nounTortoise, "lay down to have a"
print nounNap+". The",nounTortoise,"plodded on and plodded on, and when"
print "the",nounHare,"awoke from his nap, he saw the",nounTortoise,"just"
print "near the winning-post and could not run up in time to "
print "save the race."
print " Then the",nounTortoise,"said 'Slow but stead progress wins the race.'"
print
print "The End".rjust(textwidth)
###########################################################################
# Old McDonald Mad Lib #
# Programmed by Dean Zeller (10-20-07) #
# Source: Mad Libs web site #
# This is the children's song Old McDonald Had a Farm. This Mad Lib #
# is unique in that the entries are used more than once. This is not #
# possible in a traditional mad lib. #
###########################################################################
def old_mcdonaldML(textwidth = 50):
half = textwidth / 2
# print title
print
print
print "Welcome to Mad Libs(r)".center(textwidth)
print
print "Please input the following entries:"
# input entries from user
adjOld = raw_input("adjective => ".rjust(half))
nounFarm = raw_input("noun (singular) => ".rjust(half))
nounCow = raw_input("noun (singular) => ".rjust(half))
expMoo = raw_input("explamation => ".rjust(half))
nounChicken = raw_input("noun (singular) => ".rjust(half))
expBawk = raw_input("explamation => ".rjust(half))
nounPig = raw_input("noun (singular) => ".rjust(half))
expOink = raw_input("explamation => ".rjust(half))
# print story with user entries
print
print "Thank you. Here is your Mad Lib!"
print
print (adjOld.capitalize()+" McDonald").center(textwidth)
print "(from Old McDonald)".center(textwidth)
print
print adjOld.capitalize(),"McDonald had a",nounFarm,"E - I - E - I - O"
print "And on his",nounFarm,"he had a",nounCow,"E - I - E - I - O"
print "With a '"+expMoo+"-"+expMoo+"' here and a '"+expMoo+"-"+expMoo+"' there."
print "Here a '"+expMoo+"' there a '"+expMoo+"'"
print "Everywhere a '"+expMoo+"-"+expMoo+"'"
print adjOld.capitalize(),"McDonald had a",nounFarm,"E - I - E - I - O"
print
print adjOld.capitalize(),"McDonald had a",nounFarm,"E - I - E - I - O"
print "And on his",nounFarm,"he had a",nounChicken,"E - I - E - I - O"
print "With a '"+expBawk+"-"+expBawk+"' here and a '"+expBawk+"-"+expBawk+"' there."
print "Here a '"+expBawk+"' there a '"+expBawk+"'"
print "Everywhere a '"+expBawk+"-"+expBawk+"'"
print "With a '"+expMoo+"-"+expMoo+"' here and a '"+expMoo+"-"+expMoo+"' there."
print "Here a '"+expMoo+"' there a '"+expMoo+"'"
print "Everywhere a '"+expMoo+"-"+expMoo+"'"
print adjOld.capitalize(),"McDonald had a",nounFarm,"E - I - E - I - O"
print
print adjOld.capitalize(),"McDonald had a",nounFarm,"E - I - E - I - O"
print "And on his",nounFarm,"he had a",nounPig,"E - I - E - I - O"
print "With a '"+expOink+"-"+expOink+"' here and a '"+expOink+"-"+expOink+"' there."
print "Here a '"+expOink+"' there a '"+expOink+"'"
print "Everywhere a '"+expOink+"-"+expOink+"'"
print "With a '"+expBawk+"-"+expBawk+"' here and a '"+expBawk+"-"+expBawk+"' there."
print "Here a '"+expBawk+"' there a '"+expBawk+"'"
print "Everywhere a '"+expBawk+"-"+expBawk+"'"
print "With a '"+expMoo+"-"+expMoo+"' here and a '"+expMoo+"-"+expMoo+"' there."
print "Here a '"+expMoo+"' there a '"+expMoo+"'"
print "Everywhere a '"+expMoo+"-"+expMoo+"'"
print adjOld.capitalize(),"McDonald had a",nounFarm,"E - I - E - I - O"
# Call the functions
old_mcdonaldML()
tortoise_n_hareML()
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- assignment no
- defining a function assumption university
- cse activity 1 3 5 strings
- ucf computer science
- laboratory manual for computer programming with python
- kronos requirements for activities fermilab
- new york university
- introduction stellenbosch university
- perl primer university of california davis
- homework 9 fractals
Related searches
- 3rd grade homework sheets printable
- homework why is it important
- answers to homework questions free
- english homework answers
- is homework helpful or harmful
- homework sheets 6th grade
- benefits of homework statistics
- printable 1st grade homework packets
- first grade summer homework packet
- homework vs no homework facts
- homework vs no homework statistics
- homework vs no homework article