12.7. Exercises

  1. Write a program that allows the user to enter a string. It then prints a table of the letters of the alphabet in alphabetical order which occur in the string together with the number of times each letter occurs. Case should be ignored. A sample run of the program might look this this:

    Please enter a sentence: ThiS is String with Upper and lower case Letters.
    a  2
    c  1
    d  1
    e  5
    g  1
    h  2
    i  4
    l  2
    n  2
    o  1
    p  2
    r  4
    s  5
    t  5
    u  1
    w  2
    $
    
    Show Comments
  1. Give the Python interpreter’s response to each of the following from a continuous interpreter session:

    1. >>> d = {'apples': 15, 'bananas': 35, 'grapes': 12}
      >>> d['banana']
      
    2. >>> d['oranges'] = 20
      >>> len(d)
      
    3. >>> 'grapes' in d
      
    4. >>> d['pears']
      
    5. >>> d.get('pears', 0)
      
    6. >>> fruits = d.keys()
      >>> fruits.sort()
      >>> print(fruits)
      
    7. >>> del d['apples']
      >>> 'apples' in d
      

    Be sure you understand why you get each result. Then apply what you have learned to fill in the body of the function below, and add code for the tests indicated:

  1. Write a program called alice_words.py that creates a text file named alice_words.txt containing an alphabetical listing of all the words, and the number of times each occurs, in the text version of Alice’s Adventures in Wonderland. (You can obtain a free plain text version of the book, along with many others, from http://www.gutenberg.org.) 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? If you are writing this in the activecode window simply print out the results rather than write them to a file.

    f = open('alice.txt', 'r')
    
    count = {}
    
    for line in f:
        for word in line.split():
    
            # remove punctuation
            word = word.replace('_', '').replace('"', '').replace(',', '').replace('.', '')
            word = word.replace('-', '').replace('?', '').replace('!', '').replace("'", "")
            word = word.replace('(', '').replace(')', '').replace(':', '').replace('[', '')
            word = word.replace(']', '').replace(';', '')
    
            # ignore case
            word = word.lower()
    
            # ignore numbers
            if word.isalpha():
                if word in count:
                    count[word] = count[word] + 1
                else:
                    count[word] = 1
    
    keys = count.keys()
    keys.sort()
    
    # save the word count analysis to a file
    out = open('alice_words.txt', 'w')
    
    for word in keys:
        out.write(word + " " + str(count[word]))
        out.write('\n')
    
    print("The word 'alice' appears " + str(count['alice']) + " times in the book.")
    
    Show Comments
  1. What is the longest word in Alice in Wonderland? How many characters does it have?
  1. Here’s a table of English to Pirate translations

    English Pirate
    sir matey
    hotel fleabag inn
    student swabbie
    boy matey
    madam proud beauty
    professor foul blaggart
    restaurant galley
    your yer
    excuse arr
    students swabbies
    are be
    lawyer foul blaggart
    the th’
    restroom head
    my me
    hello avast
    is be
    man matey

    Write a program that asks the user for a sentence in English and then translates that sentence to Pirate.

    Show Comments
Next Section - 13. Exceptions