2014-02-12 55 views
-1

如何打印此“是”?你好会打印一次(为i == 3),但打印(“是”) 即使没有if语句也没有错误。在没有IF语句的情况下,ELSE中的“是”是如何打印的?

CODE:

for i in range(5): 
    if i == 3: 
     print("hello") 
else: 
    print("yes") 
+3

您正在使用'for-else'循环而不是'if-else'。 :) –

+1

我向提问者提供的+1,因为在doc中搜索'for-else'并不明显。在我看来,给它-1意味着你忘记了自己的学习路径。 – pepr

+0

好点pepr和AFAIK python是少数几种语言中的一种for-for循环。我只是发现了这个,因为有人建议在另一个问题中使用'for-else'循环。 – RedX

回答

7

一个for回路的else分支是总是执行,除非该环被打破了的(具有break)。引述for statement documentation

当项目被耗尽(并立即开始时序列为空),该套件的else子句中,如果存在,执行,循环终止。

A break在第一个套件中执行的语句终止循环而不执行else子句的套件。

如果你想要的elseif语句的一部分,它缩进到同一级别:

for i in range(5): 
    if i == 3: 
     print("hello") 
    else: 
     print("yes") 

,它会为除非i == 3是真实的每一次迭代执行。

+0

Else不在for循环中(在原始问题中)。它不在for循环中。 – user2331262

+0

@ user2331262:不,确切地说。它与*循环配对。 –

+0

这段代码是正确的,但是如果你从foor循环中移除其他东西,并将它放在for循环之后,那么“yes会被打印出来现在的问题是为什么是得到打印??” – user2331262

相关问题