Evaluate my first python script, please

Tim Wintle tim.wintle at teamrubber.com
Thu Mar 4 20:07:24 CET 2010


On Thu, 2010-03-04 at 10:39 -0800, Pete Emerson wrote:
> I am looking for advice along the lines of "an easier way to do this"
> or "a more python way" (I'm sure that's asking for trouble!) or
> "people commonly do this instead" or "here's a slick trick" or "oh,
> interesting, here's my version to do the same thing".

(1) I would wrap it all in a function

def main():
    # your code here

if __name__ == "__main__":
    main()

(2) PEP8 (python style guidelines) suggests one import per line

(3) I'd use four spaces as tab width

(4) 
I'd change this:

>     for arg in sys.argv[1:]:
>         for section in hostname.split('.'):
>             if section == arg:
>                 count = count + 1
>                 break

to something more like:

    for section in hostname.split("."):
        if section in sys.argv[1:]:
            count += 1

(although as you suggested I'd only calculate sys.argv[1:] once)

... or you could replace whole section between the for loop and
hosts.append with:

    if sorted(hostname.split(".")) == sorted(sys.argv[1:]):
        host.append(hostname)


, at a slight loss of clarity - but I think I'd stick with the more
verbose version personally.

Tim






More information about the Python-list mailing list