All,

I have a dumb question...hopefully someone can shed some light on the  
difference between for and while in the situation below.

I'm trying to iterate through a list I've created.  The list consists  
of a command, followed by a 'logging' message (a message printed to a  
console or log file after the command is run).

Here's a small snippet of code:

        # a list which includes (1) a command, and (2) something to be  
dumped into a log file after the command runs
        stuff = [ ["cat /etc/password"] , ["viewed /etc/password"] ]

        #works
        i = 0 ; j = 1
        while i < len( stuff ):
                os.system( str( stuff[ i ] ) )
                print stuff[ j ]
                i += 1 ; j += 1

The while loop does precisely what it should do: it runs the first  
command using os.system(), and then prints out the string in the  
second position of the list.

Then I tried to do the same thing with a for loop that looks  
logically equivalent.  I replaced the while loop with this for loop:

        # doesn't work
        for i in len( stuff ):
                os.system( stuff[ i ] )
                j = i + 1
                print stuff[ j ]

Python doesn't like it, though.  It gives me the following error:

Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable

What precisely causes this error?  I come from a C background, and  
while and for loops can be molded to do precisely the same thing; it  
doesn't seem like this is the case in this scenario.

Thoughts/ideas appreciated.  :)

Thanks!
.james
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to