[Tutor] a few question about my evolving program
Clayton Kirkwood
crk at godblessthe.us
Wed Aug 12 19:54:30 CEST 2015
> -----Original Message-----
> From: Tutor [mailto:tutor-bounces+crk=godblessthe.us at python.org] On
> Behalf Of Alan Gauld
> Sent: Wednesday, August 12, 2015 2:41 AM
> To: tutor at python.org
> Subject: Re: [Tutor] a few question about my evolving program
>
> On 12/08/15 04:23, Clayton Kirkwood wrote:
>
> > Question 2:
> > My current code:
> > See "Look here" below.
>
> If I understand your 'question', your code *should* reduce to this for the
> given filename:
>
> ...
> > target_directory_file_list =
> > master_directory_file_list[target_directory]
> ...
> > for current_directory_path in master_directory_file_list.keys():
> > current_file_list =
> > master_directory_file_list[current_directory_path]
> >
> > for current_filename in current_file_list:
> > if current_filename in target_directory_file_list:
>
>
> Now, what is your expected output?
> And what are you getting?
> I'm not sure I understand what Question 2 actually is...
Given the data provided one could see that the current_filename, blah.jpg
didn't exist in the important target_directory_file_list of a.jpg, b.jpg,
c.jpg
Yet the next line of code is executed.
crk
>
> > As you can see the current_filename does not exist in
> > target_directory_file list. Yet, I fall through to the next line.
>
> What does fall through mean? Which line do you fall through to?
>
> > Yes, the indents are all fine: I
> > wouldn't have gotten to running code otherwise.
>
> Running code does not mean correct code. The indents could all align with
> something but not necessarily what you want them to align with. However, I
> can't tell since I'm not sure what is actually going on yet.
>
> > I turned my head upside
> > down and still couldn't see why it doesn't work
>
> I doubt if that would help :-)
>
> What might help is breaking the code into say 3 helper functions That
would
> leave the higher level structure clear to see.
>
> Also, although we normally ask for 'meaningful variable names'
> yours are very long which actually makes the code harder to read.
>
> You could consider shortening some of them, especially those only used
> within a loop such as current_.... Just dropping the "current_" would
help. It
> doesn't really add any extra information. Similarly we know that paths are
> made up of directories so just path instead of directory_path probably
> works. (Use file_path to explicitly call out file paths if you must - its
shorter...)
>
> As an example consider my shortened code above using shorter names:
>
> target_file_list = master_directory_file_list[target_directory]
> ...
> > for path in master_directory_file_list.keys():
> > files = master_directory_file_list[path]
> >
> > for name in files:
> > if name in target_file_list:
>
> Notice I kept the long name for the master list because it is used in
multiple
> segments. But those only used in the local loop are implicitly current and
> short lived so you don't need a long name.
>
> Readability is the first step to finding bugs and although your long names
may
> seem more descriptive their length actually gets in the way of reading the
> code structure easily.
> IMHO at least... :-)
>
> hth
> --
> 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 at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
More information about the Tutor
mailing list