Python 3.0 里 用reversed没有反应的?检查了一模一样
来源:3-4 如何进行反向迭代以及如何实现反向迭代

Ryunosuke
2017-10-19
Pycharm Python 3.6版本 正向迭代也是在输出的时候会有多余的小数点,反向迭代就没有反应
写回答
1回答
-
Arya_Stark
2017-11-05
多余位数是浮点数计算的问题,所有的语言都有这样的问题,可以做保留位数处理,反向迭代和正向迭代差别不大,照课程里面写个reversed方法即可
# -*- coding:utf-8 -*- class FloatRange: def __init__(self, start, end, step=0.2): self.start = start self.end = end self.step = step def __iter__(self): number = self.start while number < self.end: yield '%.1f' % number number += self.step def __reversed__(self): number = self.end while number > self.start: yield '%.1f' % number number -= self.step for x in FloatRange(2.0, 6.0): print(x) print('-*' * 20) for x in reversed(FloatRange(2.0, 6.0)): print(x)
00
相似问题