Activity 2-3

March 3, 2015

Task 1: More Python Practice

Do this activity with a partner. You don't have to turn anything in.

  1. With a pen or pencil, write what you expect to see for each expression below. Assignments will return nothing, so don't worry about those.
  2. Enter the statements below and verify your answers. The line numbers on the left-hand side are for reference only.
    myString = 'hi there!'
    len(myString)
    myList = myString.split()
    len(myList[1])
    
    x = 10
    y = 15
    str(x) + str(y)
    [x]+[y]
    
    range(1,11)
    range(3,10)[0] #this is tricky
    
    negNums = range(-7,1)
    negNums[3:5]
    
    (x == 10) and (str(y) == 'fifteen')
    (x < 4) or (y*0.1 < 4)
    
    if len(myList[1]) > 10:
        print myList[1],'has length > 10'
    else:
        print myList[1],'has length <= 10'
    
    def tip(bill):
        return bill * 0.15
    
    tip(100.00)
            

Task 2: Understand and Run Last Class's Programs

Download and save ACT2-3.py. Open it in IDLE.

  1. Look at readMobyDick(). Make sure you understand the following line:
    fileString = fileString[0:1000]
  2. Look at CountWordsInMobyDick(). Make sure you understand the following lines:
    for word in myList:
      count = count + 1
            
  3. Press F5 and run countWordsInMobyDick(). What's your answer?
  4. Comment out two lines in readMobyDick() to count all the words in MobyDick (hint: one of the lines is a print statement, which technically has no bearing on how the rest of the function executes). Press F5 again and run countWordsInMobyDick() again. What's your answer?

Task 3: Compute the Average Word Length and Longest Word in "Moby Dick"

  1. Fill in the avgWordLengthInMobyDick() function.
    1. Grab the list of words in the book using the readMobyDick function you wrote.
    2. Create a variable that will keep track of the sum of the lengths of all words. What should its initial value be?
    3. Use a for-loop to iterate over all words, summing up the length of all words using the len function.
    4. With the total sum of all word-lengths (i.e., the total number of non-whitespace characters), get the average by dividing this sum by the number of words. Use float to make sure you're doing floating point (decimal) division, and return the average.
  2. Fill in the getLongestWordInMobyDick() function.
    1. Grab the list of words in the book using the readMobyDick function you wrote.
    2. Create a variable that will hold the a string equal to the longest word found so far. What should its initial value be?
    3. Use a for-loop to iterate over all words, checking whether each word is longer than what we have seen so far.
    4. If a given string is longer than what we have seen so far, assign it to the variable that is tracking the longest word.
    5. What should this function return?