On 28/06/2016 13:36, Elizabeth Weiss wrote:
I understand this code:

words=["hello", "world", "spam", "eggs"]
for words in words
   print(word + "!")

What I do not understand is:

words=["hello", "world", "spam", "eggs"]
counter=0
max_index=len(words)-1

while counter<=max_index:
   word=words[counter]
   print(word + "!")
   counter=counter + 1



Both of these result in the same answer.
I do not understand the second code. What is counter?
Why do we use this code if we can use the simpler for loop?

If you could please explain the second code step by step that would be great!

Imagine the words are printed in a book, one per page, and the pages are numbered 0, 1, 2 and 3 (starting from 0 as is the perverse say of many programming languages).

len(words)-1 is the number of pages in the book (4) less one to account for the odd numbering. Max_index is then the number of the last page (3).

Counter then goes through the pages one by one, starting at page 0 and ending at page 3 (ie. max_index), reading the word on each and printing it out with "!" appended.

However, because the language is zero-based, this would have been better written as:

 num_words = len(words)

 while counter < num_words:      # or just while counter < len(words)

That's if you had to write it as while loop. With the for=loop version, these details are taken care of behind the scenes.

--
Bartc

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to