'''
Created on Sep 26, 2017

@author: Susan
This example processes words from a file 
by creating a list of all the words. 
'''

    
def lengthLongestWord(words):
    maxSoFar = 0
    for w in words:
        if len(w) > maxSoFar:
            maxSoFar = len(w)
    return maxSoFar

def countWords(words):
    sum = 0
    for w in words:
        sum += 1
    return sum

def lengthLongestWord1(words):
    allLengths = [ ]
    for word in words:
        allLengths.append(len(word))
    return max(allLengths)


def lengthLongestWord2(words):  
      return len(max(words))

def lengthLongestWord3(words):
    all = [ ]
    for num in range(len(words)):
        all.append(len(words[num]))
    return max(all)



def countWords2(words):
    return len(words)

def LongestWord(words):
    maxSoFar = 0
    longword = ""
    for w in words:
        if len(w) > maxSoFar:
            longword = w
            maxSoFar = len(w)   # added this line
    return longword

if __name__ == '__main__':
    datafile = "romeo.txt"
    #datafile = "small.txt"
    f = open(datafile)
    bigString = f.read()
    allwords = bigString.split()
    print "Number of words in file"
    print countWords(allwords)
    print "Number of words in file"
    print countWords(allwords)
    print "length of longest word"
    print lengthLongestWord(allwords)
    print "length of longest word"
    print lengthLongestWord1(allwords)
    print "length of longest word"
    print lengthLongestWord2(allwords)
    print "length of longest word"
    print lengthLongestWord3(allwords)
    print "Longest word"
    print LongestWord(allwords)
    
