【问题标题】:Array and for loops数组和 for 循环
【发布时间】:2020-05-11 09:33:46
【问题描述】:

假设我们有以下伪代码:

count = 0 for i in range(0,N): if a[i] == 0: count+= 1

为什么要从 0 到 N?假设该数组有 10 个条目。如果您要从 0 变为 10,您会将 11 个数字与 0 进行比较。将范围更改为是否不正确

for i in range(0,N-1):

【问题讨论】:

  • range(0,N) 将生成从 0 到 N-1 的整数。这就是 python 中的range 的工作原理。此外,您可以只使用range(N),因为默认从 0 开始,除非您想从其他数字开始
  • N in not included, --> [0,N), 将给出 [0,N-1] 的范围
  • official documentation on range 的状态是什么。

标签: python arrays algorithm for-loop increment


【解决方案1】:
a = [0,1,2,3,4,5]
N = len (a)
count = 0 
for i in range(0,N):
    if a[i] != -1:
        print(a[i])
        count+= 1

尝试通过从循环中打印出每个访问元素的内容来进行试验。你可能会感到惊讶。

【讨论】:

    【解决方案2】:

    在 python 3+ range(0, N) 意味着它将从 0 迭代到 N-1。在像 java 这样的编程语言中,程序员需要处理 n-1 因子,而在 python 中,它已经处理了 python。

    【讨论】:

    • In a programming language like java, the programmer needs to take care of n-1 factor while in python it has been taken care of python 这是使用 foreach 循环,它也存在于“像 java 这样的编程语言”(以及 c++11 和 C# 等)中。这里唯一的区别是,python 有原生的range() 函数。 Java also has something similar now.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 2020-11-20
    • 2013-06-19
    • 1970-01-01
    相关资源
    最近更新 更多