python中的pass和continue有啥区别[重复]
Posted
技术标签:
【中文标题】python中的pass和continue有啥区别[重复]【英文标题】:What's the difference between pass and continue in python [duplicate]python中的pass和continue有什么区别[重复] 【发布时间】:2013-12-20 11:31:21 【问题描述】:我的测试表明pass
和continue
都可以等效地用于构造一个空的for
循环用于测试目的。它们之间有什么区别吗?
【问题讨论】:
文档:docs.python.org/2/reference/simple_stmts.html 【参考方案1】:pass
关键字是“无操作”关键字。它什么也不做。它通常用作稍后添加的代码的占位符:
if response == "yes":
pass # add "yes" code later.
另一方面,continue
关键字用于在控制点重新启动循环,例如:
for i in range(10):
if i % 2 == 0:
continue
print(i)
该循环将仅输出奇数,因为 continue
返回循环控制语句 (for
) 以进行 i
为偶数的迭代。
与完全相同的代码进行对比,但使用pass
代替continue
:
for i in range(10):
if i % 2 == 0:
pass
print(i)
该循环打印所有范围内的数字,因为pass
不会返回到i
的偶数(或任何)值的循环控制语句。它只是直接进入print
语句。
就 empty for
循环而言,您说得对,它们在功能上是相同的。您可以使用以下任何一种:
for i in range(10):
pass
for i in range(10):
continue
【讨论】:
所以如果它是占位符,我们可以使用注释而不是传递权限 @The6thSense 不,如果你有一个空的for
循环,其中只有一个注释,Python 会感到困惑,因为它会在循环内查找代码。这就是为什么你需要使用 pass
关键字,即使它什么都不做。尝试运行它并查看错误:for i in range(10): # some comment
(您将看到IndentationError: expected an indented block
)。然后尝试用pass
替换评论,就不会再报错了
@nickang 谢谢你的信息【参考方案2】:
pass
什么都不做(无操作),而continue
使控制流继续到循环的下一个循环。
【讨论】:
【参考方案3】:如果循环只包含一个语句,pass
或 continue
不会有任何区别。但是如果有多个语句,那就很重要了:
for item in my_list:
pass
print(item) #This will be executed
for item in my_list:
continue
print(item) #won't be executed
基本上,pass 语句什么都不做,而 continue 语句将重新开始循环。
但在你的情况下:
for item in my_list:
pass
#Since there's nothing after pass, the loop is finished.
for item in my_list:
continue
#You're restarting the loop
区别不是很明显。
希望这会有所帮助!
【讨论】:
【参考方案4】:continue
表示“跳到循环体的末尾”。如果是while
循环,则循环继续循环测试;如果是for
循环,则循环继续到它所迭代的任何元素的下一个元素。
pass
绝对什么都不做。它的存在是因为您必须在空块语句的主体中包含 something,并且 pass
比执行 1
或 None
作为用于该目的的语句更具可读性。
【讨论】:
【参考方案5】:如果你使用continue
,这将导致无限循环:
i = 0
while i<1:
continue
i = i + 1
print i
因为continue
只会进入下一次迭代。但是pass
将适用于这种情况。
【讨论】:
【参考方案6】:pass
和 continue
都可以,但可能会造成无限循环。
例如,以下代码将创建无限循环。
i = 0
while i<100:
continue # replacing continue with pass still creates an infinite loop.
如果你想避免这种情况(也许你打算用循环修改i
,但你还没有写代码),使用break
。
【讨论】:
以上是关于python中的pass和continue有啥区别[重复]的主要内容,如果未能解决你的问题,请参考以下文章
break continue pass return exit 的使用与区别
在while循环中,break,continue,return有啥区别