繁体   English   中英

range() 函数中的负数 - 如何从正数打印到负数?

[英]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)

您的原始代码有两个问题:

  1. 打印应该是元素,而不是索引列表。

  2. 您的范围应该从 4(第一个元素)开始,到 -2(第二个元素)结束。 为了确保递减,请使用函数范围的第三个参数:step。 step=-1 从第一个元素到最后一个元素递减。 您可以通过执行以下操作来测试项目范围输出的顺序:

    打印([i for i in range(4, -2, -1)])

希望这有帮助! 干杯! :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM