初学者/菜鸟在这里: 如果有人能用简单的术语帮助解释实际发生的事情(代码背后),将不胜感激 尝试实验,为什么第二个脚本不输出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
答案 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)
谢谢大家的帮助,我现在明白背后的原因了。感谢您花时间向我解释