On 05/08/15 23:58, Ltc Hotspot wrote:

fname = raw_input("Enter file name: ")
handle = open (fname, 'r')
for line in handle:
     if line.startswith("From: "):
         address = line.split()[1]


So far so good.


## The program creates a Python dictionary that maps
## the sender's mail address to a count of the number
## of times they appear in the file.

         count = dict()

But here you create a brand new dictionary.
Every time you go round the loop.
And it wipes out the old one.
You need to move that out of the loop.

         for wrd in address:

address is a string. So wrd will be set to every
character in the string. I don;t think that's what
you want?

             count[wrd]= count.get(wrd,0) +1

## After the dictionary is produced, the program reads
## through the dictionary using a maximum loop to
## find the greatest number of mail messages.

maxval = none
maxkee = none

See my previous email. none should be None.
Case matters in Python.

for kee, val in count.items():
     if maxval == none or maxval <val:
         maxval = val
         maxkee = kee


#items are printed

print address

Notice that address gets reset every time the loop reads
a new line so this will only print the last address.
But maybe that's what you wanted?



--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to