Hi all,

I have attempted to create a programme which removes every Nth person from the list until there is only one name remaining. N is inputted by the user.

Here is the code:

def survivor(names, step):
    next = names
    while len(next) > 1:
     index = step - 1
     next.remove (next[index])
        index = index + step - 1
        while index > len(next):
            index = index - len(next)
        if index == len(next):
            index = 0
    return names[0]



To me is appears to be correct, however when i test it i get the following message:



>>> survivor(["Andrew", "Brenda", "Craig", "Deidre", "Edward", "Felicity", "Greg", "Harriet"], 4) ['Andrew', 'Brenda', 'Craig', 'Deidre', 'Edward', 'Felicity', 'Greg', 'Harriet'] 3
['Andrew', 'Brenda', 'Craig', 'Edward', 'Felicity', 'Greg', 'Harriet'] 3
['Andrew', 'Brenda', 'Craig', 'Felicity', 'Greg', 'Harriet'] 3
['Andrew', 'Brenda', 'Craig', 'Greg', 'Harriet'] 3
['Andrew', 'Brenda', 'Craig', 'Harriet'] 3
['Andrew', 'Brenda', 'Craig'] 3

Traceback (most recent call last):
  File "<pyshell#68>", line 1, in <module>
survivor(["Andrew", "Brenda", "Craig", "Deidre", "Edward", "Felicity", "Greg", "Harriet"], 4)
  File "<pyshell#67>", line 6, in survivor
    next.remove (next[index])
IndexError: list index out of range


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

Reply via email to