【问题标题】:Does Python perform Bound Checking?Python 是否执行边界检查?
【发布时间】:2015-07-06 17:25:21
【问题描述】:

所以,我正在阅读这个网站上的代码(Python 代码):

Solution to problem: Best time to buy & sell iii (leetcode)

我想知道为什么在第 19 行,Python 没有给出任何边界检查错误。

谢谢!

【问题讨论】:

  • L19: ed = prices[-1]
  • 目前看来这可能不是你学习python的有效途径
  • 非常感谢您的反馈!

标签: python arrays indexoutofboundsexception


【解决方案1】:

第 19 行:

ed = prices[-1]

在 python 中,-1 的列表(数组)索引表示定义的列表中的最后一个元素。所以它没有超出范围,因此没有错误。

【讨论】:

  • 谢谢!所以对于第 20 行:for i in range(n-2,-1,-1): 这是否意味着 for 循环将从 n - 2 开始并在 0 结束(我认为这里的 -1 表示反向数组的结束)。再次感谢!
  • @HuyenNguyen 是的,这确实意味着循环将从 n-2 开始并在 0 结束。最后一个参数是步骤。步长 -1 表示递减。
【解决方案2】:

是的,python 进行边界检查。当您在 python 中使用负索引时,您从数组的末尾开始计数。有问题的行:

ed = prices[-1]

这是将ed 设置为prices 中的最后一个元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 2014-06-11
    • 2015-02-03
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    相关资源
    最近更新 更多