10.10. Write Code Questions

  1. Write a program that categorizes each mail message by which day of the week the commit was done. To do this, look for lines that start with “From”. Then, look for the third word, and keep a running count of each of the days of the week. At the end of the program, print out the contents of the dictionary mail_count (order does not matter). For example, mail_count['Mon'] should be 2.

    Write a program that categorizes each mail message by which day of the week the commit was done. To do this, look for lines that start with “From”. Then, look for the third word, and keep a running count of each of the days of the week. At the end of the program, print out the contents of the dictionary mail_count (order does not matter). For example, mail_count['Mon'] should be 2.

  2. Write a program to read through a mail log, build the dictionary user_count to count how many messages have come from each email address, and print the dictionary. For example, user_count['stephen.marquard@uct.ac.za'] should be 4.

  3. Write a program that creates a dictionary letter_count that keeps track of the amount of times each letter appears in the given phrase. Assign the number of times “e” appears in the phrase to the variable e_counter. Make sure to account for each letter in its lowercase form. For example, e_counter should be 10, and letter_count['e'] should be 10.

    Write a program that creates a dictionary letter_count that keeps track of the amount of times each letter appears in the given phrase. Assign the number of times “e” appears in the phrase to the variable e_counter. Make sure to account for each letter in its lowercase form. For example, e_counter should be 10, and letter_count['e'] should be 10.

  4. Write a program that reads the words in the string phrase and counts how many times each word appears. Store the words as keys in the dictionary word_dictionary, and then use the in operator as a fast way to check whether the string is in the dictionary. For example, word_dictionary['Writing'] should be 1. (Note: ‘Writing’ and ‘writing’ would be counted as two separate words for this question.)

Here is the words.txt file for Question 5.

  1. Data file: words.txt
    Writing programs or programming is a very creative
    and rewarding activity  You can write programs for
    many reasons ranging from making your living to solving
    a difficult data analysis problem to having fun to helping
    someone else solve a problem  This book assumes that
    {\em everyone} needs to know how to program and that once
    you know how to program, you will figure out what you want
    to do with your newfound skills
    
    We are surrounded in our daily lives with computers ranging
    from laptops to cell phones  We can think of these computers
    as our personal assistants who can take care of many things
    on our behalf  The hardware in our current-day computers
    is essentially built to continuously ask us the question
    What would you like me to do next
    
    Our computers are fast and have vasts amounts of memory and
    could be very helpful to us if we only knew the language to
    speak to explain to the computer what we would like it to
    do next If we knew this language we could tell the
    computer to do tasks on our behalf that were reptitive
    Interestingly, the kinds of things computers can do best
    are often the kinds of things that we humans find boring
    and mind-numbing
    

    Write code that reads in the text from the file words.txt and uses the dictionary word_count to count the amount of times a word appears in the file. Watch out for repetition using the .lower() function. For example, word_count['and'] should be 5.

    Write code that reads in the text from the file words.txt and uses the dictionary word_count to count the amount of times a word appears in the file. Watch out for repetition using the .lower() function. For example, word_count['and'] should be 5.

  2. Write a program that reads the words in the string phrase and counts how many times each word appears. Store the words as keys in the dictionary word_dictionary, and then use the in operator as a fast way to check whether the string is in the dictionary. Make sure to turn all letters in words into lowercase letters in order to avoid any repetition. For example, word_dictionary.get('Writing', 0) should be 0, and word_dictionary['writing'] should be 1.

Below is the romeo3.txt file used in Question 7.

  1. Data file: romeo3.txt
    But soft what light through yonder window breaks
    It is the east and Juliet is the sun
    Arise fair sun and kill the envious moon
    Who is already sick and pale with grief
    

    Write code to read through the lines of the file, break each line into a list of words, and then loop through each of the words in the line and count each word using the dictionary counts. For example, counts['is'] should be 3.

    Write code to read through the lines of the file, break each line into a list of words, and then loop through each of the words in the line and count each word using the dictionary counts. For example, counts['is'] should be 3.

  2. Write code that adds the key ‘two’ with a value of ‘dos’ to the dictionary eng2sp. For example, eng2sp['two'] should be 'dos'.

The next two questions are associated with the following text file which has an email address followed by the number of messages from that address.

  1. Data file: mbox-short.txt3
    gopal.ramasammycook@gmail.com 1
    louis@media.berkeley.edu 3
    cwen@iupui.edu 5
    antranig@caret.cam.ac.uk 1
    rjlowe@iupui.edu 2
    gsilver@umich.edu 3
    david.horwitz@uct.ac.za 4
    wagnermr@iupui.edu 1
    zqian@umich.edu 4
    stephen.marquard@uct.ac.za 2
    ray@media.berkeley.edu 1
    

    Add code to the program below to figure out who has the most messages in the file. After all the data has been read and the dictionary message_count has been created, look through the dictionary using a maximum loop (see Chapter 5: Maximum and minimum loops) to find who has the most messages, and print how many messages the person has. For example, message_count['cwen@iupui.edu'] should be 5.

    Add code to the program below to figure out who has the most messages in the file. After all the data has been read and the dictionary message_count has been created, look through the dictionary using a maximum loop (see Chapter 5: Maximum and minimum loops) to find who has the most messages, and print how many messages the person has. For example, message_count['cwen@iupui.edu'] should be 5.

Data file: mbox-short.txt2
gopal.ramasammycook@gmail.com 1
louis@media.berkeley.edu 3
cwen@iupui.edu 5
antranig@caret.cam.ac.uk 1
rjlowe@iupui.edu 2
gsilver@umich.edu 3
david.horwitz@uct.ac.za 4
wagnermr@iupui.edu 1
zqian@umich.edu 4
stephen.marquard@uct.ac.za 2
ray@media.berkeley.edu 1
  1. Write a program to record in the dictionary message_count the total number of messages from each domain name (not the whole address, just the part after the @ and before the space). At the end of the program, print out the contents of your dictionary. The domains should be the keys of the dictionary, and the counts of the domains should be the values of the dictionary. For example, message_count['iupui.edu'] should be 8.

You have attempted of activities on this page