嵌套 for 循环 - 范围

时间:2021-04-30 15:08:55

标签: python for-loop nested-loops

初学者/菜鸟在这里: 如果有人能用简单的术语帮助解释实际发生的事情(代码背后),将不胜感激 尝试实验,为什么第二个脚本不输出apple?

one = ["apple", "banana", "republic"]

for i in range(len(one)):
    for j in range(i + 1):
        print(one[i])

输出

   apple
   banana
   banana
   republic
   republic
   republic

one = ["apple", "banana", "republic"]

for i in range(len(one)):
    for j in range(i):
        print(one[i])

输出不包含苹果

   banana
   republic
   republic

3 个答案:

答案 0 :(得分:1)

这是大多数编程语言中的一个基本概念:范围和索引从 0 开始,不包括“最后一个”元素。

所以 range(len(one)) 将包括数字 0、1 和 2。

那么在您的第二个代码示例中,外循环的第一步中 i 将是 0。然后内部循环会说“好的,现在从 0 开始循环 j 并运行直到,但不包括 0`。这意味着,实际上,根本不运行。

您可以通过输入 print(list(range(0)) 来检查它,它应该是一个列表。

这就是为什么在你的第二个例子中苹果没有被打印出来。

答案 1 :(得分:0)

循环的第一次运行:

for i in range(len(one)):
    for j in range(i):
        print(one[i])

i = 0 => j = 0 到 0:这意味着“j”循环条件已经完成,应该使用 i 的下一次迭代。并且一个[i=0]项不会被输出。

答案 2 :(得分:0)

谢谢大家的帮助,我现在明白背后的原因了。感谢您花时间向我解释