[英]Negative numbers in range() function - how to print from positive to negative numbers?
我正在尝试创建一个函数来打印带有标记轴的板。 这是我用于打印 y 轴的代码。
y = [-1, 4]
y_axis = range(y[0], y[1]+1)
for i in y_axis: # rows
print(y_axis[i])
这是我得到的输出:
4
-1
0
1
2
3
为什么它不从 y[0] 开始并以整数递增直到 y[1]+1 ? 我认为这是 range() 函数的输出。 对于我的项目,我需要这段代码来输出以下内容:
4
3
2
1
0
-1
我不明白如何得到我想要的结果,我已经尝试了几个小时! 非常感谢任何帮助,谢谢
编辑:棘手的部分是这应该能够以正确的顺序打印任何类型的范围:如果我使用负步骤,它可能无法对所有正值等正常工作这样的方法不起作用:-1 - > 4: 范围(y[0], y[1]+1) 4 -> -1: 范围(y[1], y[0]-1, -1)
我需要一个通用的解决方案。 它可能与 enumerate() 函数有关吗?
这就是你要找的:
y = [-1, 4]
y_axis = range(y[1], y[0]-1, -1)
for i in y_axis:
print(i)
您的原始代码有两个问题:
打印应该是元素,而不是索引列表。
您的范围应该从 4(第一个元素)开始,到 -2(第二个元素)结束。 为了确保递减,请使用函数范围的第三个参数:step。 step=-1 从第一个元素到最后一个元素递减。 您可以通过执行以下操作来测试项目范围输出的顺序:
打印([i for i in range(4, -2, -1)])
希望这有帮助! 干杯! :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.