如何将输入的正数转为负数以实现Python range()函数的反向遍历
解决方法
要把步长amount固定转换为负数实现反向遍历,最简单的方式是对输入值取绝对值后添加负号,这样无论用户输入的是正数还是负数,最终得到的步长始终为负:
修改后完整代码
start = int(input("Please enter starting number")) end = int(input("Please enter ending number")) # 强制将步长转换为负数 amount = -abs(int(input("Please enter the amount to count"))) for i in range(start, end, amount): print(i)
额外说明
- 反向遍历必须满足
start > end的前提,否则range()会生成空序列,不会输出任何内容。比如你要从10倒序数到2,步长为2的话,需要输入start=10,end=1,才能输出10、8、6、4、2的结果。 - 如果你不需要兼容用户输入负数步长的场景,也可以直接对输入值取反:
amount = -int(input("Please enter the amount to count")),但这种写法如果用户输入负数,会得到正步长,无法实现反向遍历。
内容的提问来源于stack exchange,提问作者Shreyas
相关产品推荐
相关产品推荐

