Chapter 6 Exercise Set 1¶
Dictionaries and sets doctest exercises¶
""" >>> type(thing1) <class 'dict'> >>> type(thing2) <class 'set'> """
""" >>> 4 in d True >>> 'name' in d False >>> d['name'] = 'Eric' >>> 'name' in d True """
Letter Counts¶
Write a program that prompts the user for a string and returns a table of each letter that occurs in the string together with its number of occurances, irrespective of case. The table should list the letters in alphabetical order and display them in lower case. White space, punctuation, digits, or any other non-alphabetic characters should be ignored.
A sample run of the program would look this this:
Please enter a string: ThiS String has Upper and lower case Letters. a 3 c 1 d 1 e 5 g 1 h 2 i 2 l 2 n 2 o 1 p 2 r 4 s 5 t 4 u 1 w 1
Mad Lib¶
Write a program named
madlib.py
that makes a Mad Lib, prompting the user for parts of speech and then substituting their responses into a piece of text in place of orginial words from the text for which they are substituted.The following is a sample run of a program like this that uses the first paragraph from Alice’s Adventures in Wonderland as it’s source text:
$ python3 madlib.py Please enter a verb ending in 'ing': sitting Please enter a adjective: silly Please enter a kind of relative: cousin Please enter a noun: apricot Please enter a verb ending in 'ing': babbling Please enter a girl's name: Marisol Please enter a noun: rug Please enter a noun: pin Please enter a noun: computer Marisol was beginning to get very silly of sitting by her cousin on the computer, and of having nothing to do: once or twice she had peeped into the rug her cousin was babbling, but it had no apricot or pin in it, ‘and what is the use of a rug,’ thought Marisol ‘without apricots or pins?’
Sorted list in a text file¶
Write a program that asks the user for the name of a file containing a list of items, one per line, in a text file. The program should load the list from the file, sort it, and then write it back out to a file with the name
sorted
appended to the original name.For example, if the user types
stuff.txt
as the name of the input file, the program will load the list of items fromstuff.txt
, sort it, and write it back out to a file namedstuffsorted.txt
.Assuming the file
states.txt
contains the following:New Jersey Maine Virginia Rhode Island Maryland Alabama
After running your program there would be a new file named
statessorted.txt
containing the following:Alabama Maine Maryland Rhode Island New Jersey Virginia
Project: counting words with e’s¶
Write a program that takes a text file as an argument containing some of your favorite text - perhaps a poem, a speech, instructions to bake a cake, some inspirational verses to a song, etc., removes all punctuation, breaks the text into a list of words, and counts the number of words in your text that contain the letter ‘e’. Your program should print an analysis of the text like this:
Your text contains 243 words, of which 109 (44.8%) contain an 'e'.
The first three words starting with each letter¶
The file
/usr/share/dict/words
should exist on unix-based systems. If it does it contains a list of words in alphabetical order.Write a program that prints out the first three words beginning with each letter of the alphabet.
Project: Counting Words in Alice in Wonderland¶
Write a program called
alice_words.py
that creates a text file namedalice_words.txt
containing an alphabetical listing of all the words found in alice_in_wonderland.txt together with the number of times each word occurs. The first 10 lines of your output file should look something like this:Word Count ======================= a 631 a-piece 1 abide 1 able 1 about 94 above 3 absence 1 absurd 2
How many times does the word,
alice
, occur in the book?What is the longest word in Alice in Wonderland ? How many charactes does it have?
pydoc¶
You can use pydoc to search through the Python libraries installed on your system. At the command prompt type the following:
$ pydoc3 -b
and a browser window with something similar to the following will appear:
This is a listing of all the python libraries found by Python on your system. Clicking on a module name opens a new page with documenation for that module.
Scrolling down to the
/usr/lib/python3.11
section and clickingkeyword
, for example, opens the following page:Documentation for most modules contains three color coded sections:
Classes in pink
Functions in orange
Data in green
Classes will be discussed in later chapters, but for now we can use pydoc to see the functions and data contained within modules.
The
keyword
module contains a single function,iskeyword
, which as its name suggests is a boolean function that returnsTrue
if a string passed to it is a keyword:>>> from keyword import * >>> iskeyword('for') True >>> iskeyword('all') False >>>
The data item,
kwlist
contains a list of all the current keywords in Python:>>> from keyword import * >>> print kwlist ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'] >>>
We encourage you to use
pydoc
to explore the extensive libraries that come with Python. There are so many treasures to discover!