"""
实际案例:
实现一个连续浮点数发生器FloatRange(和xrange类似),
根据给定范围(start, end)和步进值(step)产生一系列连续浮点数,
如迭代FloatRange(3.0, 4.0, 0.2)可产生序列
"""
l = [1, 2, 3, 4, 5]
l.reverse()
l1 = l[::-1]
print(reversed(l))
print(iter(l))
for x in reversed(l):
print(x)
class FloatRange(object):
def __init__(self, start, end, step = 0.1):
self.start = start
self.end = end
self.step = step
def __iter__(self):
t = self.start
while t <= self.end:
yield t
t += self.step
def __reversed__(self):
t = self.end
while t >= self.start:
yield t
t -= self.step
print('-' * 50)
for x in FloatRange(1.0, 4.0, 0.5):
print(x)
print('-' * 50)
for x in reversed(FloatRange(1.0, 4.0, 0.5)):
print(x)