| 1234567891011121314151617181920212223242526272829303132333435363738 |
- #!/usr/bin/env python3
- # Copyright 2009-2017 BHG http://bw.org/
- class inclusive_range:
- def __init__(self, *args):
- numargs = len(args)
- self._start = 0
- self._step = 1
-
- if numargs < 1:
- raise TypeError(f'expected at least 1 argument, got {numargs}')
- elif numargs == 1:
- self._stop = args[0]
- elif numargs == 2:
- (self._start, self._stop) = args
- elif numargs == 3:
- (self._start, self._stop, self._step) = args
- else: raise TypeError(f'expected at most 3 arguments, got {numargs}')
- self._next = self._start
-
- def __iter__(self):
- return self
- def __next__(self):
- if self._next > self._stop:
- raise StopIteration
- else:
- _r = self._next
- self._next += self._step
- return _r
- def main():
- for n in inclusive_range(25):
- print(n, end=' ')
- print()
- if __name__ == '__main__': main()
|