2014-02-12 102 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

相關問題