Boucle.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. """une boucle donne acces a une liste et offre les fonctionnalites
  2. supplementaires suivantes: position actuelle, suivant, precedent,
  3. avancer de n ou de -n
  4. de plus, si on depasse le dernier element, on revient au premier (et vice-versa)"""
  5. class Boucle():
  6. def __init__(self, liste = []):
  7. self._tours = 0
  8. self._pos = 0
  9. self._liste = []
  10. def liste(self):
  11. return self._liste
  12. def majListe(self, liste):
  13. self._liste = liste
  14. def position(self):
  15. return self._pos
  16. def majPosition(self, pos):
  17. self._pos = pos
  18. while self._pos > len(self._liste):
  19. self._pos -= len(self._liste)
  20. self._tours += 1
  21. while self._pos < 0:
  22. self._pos += len(self._liste)
  23. self._tours -= 1
  24. def actuel(self):
  25. return self._liste[self._pos]
  26. def suivant(self):
  27. self.avancer(1)
  28. def precedent(self):
  29. self.avancer(-1)
  30. def avancer(self, n):
  31. self.majPosition((self._pos + n))
  32. def nbTours(self):
  33. return self._tours
  34. def premier(self):
  35. return self._liste[0]
  36. def dernier(self):
  37. return self._liste[len(self._liste)-1]