如何为指定区间内的数字加偏移量,超出范围时自动绕回区间开头
问题解决
你当前的代码仅做了简单的加法计算,没有实现超出区间后的循环绕回逻辑,才会输出97的结果。要实现目标效果可以用模运算处理溢出逻辑,具体方案如下:
实现逻辑
- 先获取区间的起始值、总长度:range类型自带
start和stop属性,区间总长度为stop - start - 把当前数值转换为相对于区间起点的相对偏移量,加上你要累加的偏移值后对区间总长度取模,得到循环后的相对位置
- 相对位置加上区间起点就是最终结果
修正后代码
big = range(60,90) num = 84 add_offset = 13 if num in big: start = big.start range_length = big.stop - start final_num = start + (num - start + add_offset) % range_length print(final_num)
运行以上代码输出结果为67,符合你的预期。不管累加的偏移值多大,该逻辑都能自动完成循环绕回,最终结果始终落在big的区间范围内。
内容的提问来源于stack exchange,提问作者AlexLikesWater
相关产品推荐
相关产品推荐

