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 【问题描述】:

我的测试表明passcontinue 都可以等效地用于构造一个空的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】:

如果循环只包含一个语句,passcontinue 不会有任何区别。但是如果有多个语句,那就很重要了:

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 比执行 1None 作为用于该目的的语句更具可读性。

【讨论】:

【参考方案5】:

如果你使用continue,这将导致无限循环:

i = 0
while i<1:
   continue  
   i = i + 1
   print i

因为continue 只会进入下一次迭代。但是pass 将适用于这种情况。

【讨论】:

【参考方案6】:

passcontinue 都可以,但可能会造成无限循环。

例如,以下代码将创建无限循环。

i = 0
while i<100:
 continue # replacing continue with pass still creates an infinite loop.

如果你想避免这种情况(也许你打算用循环修改i,但你还没有写代码),使用break

【讨论】:

以上是关于python中的pass和continue有啥区别[重复]的主要内容,如果未能解决你的问题,请参考以下文章

继续并通过:有啥区别?

python的continue和pass的区别

break continue pass return exit 的使用与区别

在while循环中,break,continue,return有啥区别

python break ,continue和 pass 语句

while循环中continue和break的区别