为什么打印输出不同[重复]

问题描述 投票:-2回答:4

这个问题在这里已有答案:

打印功能的输出根据其在代码中的位置而有所不同,这对我来说很清楚。 但是我无法断定它为什么这样做。

1.

fruits = ["apple", "banana", "cherry"]
for x in fruits:
  if x == "banana":
    continue
  print(x)

2.

fruits = ["apple", "banana", "cherry"]
for x in fruits:
  if x == "banana":
    continue
    print(x)

3.

fruits = ["apple", "banana", "cherry"]
for x in fruits:
  if x == "banana":
    continue
print(x)

1号将输出applecherry,而2号将不打印,3号将仅打印cherry

我明白continue会跳过香蕉的循环,因此不打印它,但我不确定为什么2.什么都不打印,3。打印樱桃。

python python-3.x
4个回答
1
投票

3,print(x)不是循环的一部分。所以它打印x的最后一个值(樱桃)。

在2中,print(x)永远不会执行,因为它只是在继续之后 - 这使得控件转到循环的顶部。


0
投票

数字2中的print()无法访问,因为它位于continue后面,永远不会被执行。


0
投票

1.每个水果都印有香蕉除外。因为当x等于香蕉时,if语句变为true,并且跳过该迭代,控件不会移动到print语句。这里的打印在外面,但在for循环内。这将打印每个值,除非有continue语句。在2.如果声明内部打印。因此,只有当x == banana时,它才会尝试打印,但在此之前继续!因此在print语句之前跳过其余代码。在3.打印在for循环之外。因此,在for循环结束后,将打印出樱桃X的值。(因为它是列表中的最后一个值)


0
投票

在第一种情况下,print语句在“for”循环内,但在“if”语句之外(什么也不做)所以输出是:

"apple"
"banana"
"cherry"

在第二种情况下,print位于“IF”内,但它遵循“continue”语句(从“if”退出脚本执行的指令。):它永远不会被执行。

如果要在包含“banana”的情况下打印变量,则必须删除continue语句,或者在print语句之后写入

在第三种情况下,print语句在“FOR”循环之外,并将最后一个赋值的内容打印到“X”变量 - 在本例中为“cherry”。

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