数组 If-And 条件未按计划运行 {Python} [已关闭]

问题描述 投票:0回答:1

我有一个程序,给定数组中的数字序列,目标是检查是否可以取出不超过多个一个值以使该序列成为严格递增序列。我的条件之一是检查当前索引处的值是否大于其之前的值并且索引大于零(我认为没有必要检查第一个索引)。这里的问题是,由于某种原因,当将数组 [10, 1, 2, 3, 4, 5] 传递到程序中时,此条件似乎在第二个索引处评估为 true。

这是我写的代码:

remove_count = 0
  for i in range(len(sequence)):
    if i > 0 and sequence[i] <= sequence[i-1]:
      ...

预期这将被完全跳过,程序将输出

True
,因为取出 10 就可以满足程序的目标。然而,不知何故,当
i = 1
代码实际运行并返回
False
时。我只是不知道它是如何通过最初的 if 语句到达下一行代码的,因为 1 不小于 10。

python if-statement operators
1个回答
1
投票

正如您所说,当前索引的值必须大于前一个索引的值。

你在代码中写道:

if i > 0 and sequence[i] <= sequence[i-1]:
这转换为前一个索引处的值是否大于或等于当前索引处的值。

© www.soinside.com 2019 - 2024. All rights reserved.