if-else語句:
和各種語言相同的用法,在條件語句中,與if語句搭配使用的else語句。如果if語句的條件表示式的結果布林值為假,那麼程式將執行else語句後的**。它的語法是大家最為熟知的:
python**
if expression:
expr_true_suite
else:
expr_false_suite
elif(else-if)語句:
elif是python提供的else-if語句,它檢查多個條件表示式的值是否為真,並在為真時執行特定**塊中的**。和else一樣,elif是可選的,但是要注意的是,乙個if語句可以跟多個elif語句,但最後只能有乙個else語句:
python**
if expression1:
expr1_true_suite
elif expression2:
expr2_true_suite
elif expressionn:
exprn_true_suite
else:
none_of_the_above_suite
在其他語言中,除了條件語句,是不會見到else分支的,但在python中,while和for迴圈中,也是可以使用else語句的。它們的工作順序為:在迴圈中使用時,else語句只在迴圈完成後執行,也就是說,break語句也會跳過else**塊,只要迴圈是正常結束,而不是通過break,else語句就會執行。
python**
items=
keys=
for key in keys:
for item in items:
if item==key:
print key,'was found'
break
else:
print key,'not found'
輸出:i love you was found
(4, 5) was found
my name is tom was found
ok not found
在上述**中,使用了兩個for迴圈,並且兩個迴圈在同時執行:外層迴圈掃瞄鍵列表,內層迴圈為每個鍵掃瞄元素列表。迴圈中的else分句的巢狀是關鍵的,其縮排至和內層for迴圈首行相同層次,因此是和內層迴圈相關聯的。break關鍵字在巢狀的迴圈總出現,如果符合條件那麼跳出的內迴圈。
try-else語句:
對於python中的錯誤和異常,try-except語句段,也可以和else連用,其功能和迴圈中的else語句沒有多大區別:在try範圍內沒有檢測到異常的時候,執行else子句。看一下語法:
python**
try:
log = open(logfile.txt,w)
except:
print file logfile.txt is not exsit
else:
log.write(no exception caught)
log.close()
當然,在異常處理中,else一樣可以和finally聯用:try-except-else-finally。
C語言中的「else懸掛」問題
在c語言中,編譯器通常將else與上乙個 最近的 if進行匹配,除非通過花括號來制定匹配關係。看下面乙個例子 example 1 x 11,y 9 include int main 其輸出為 由於else是與最近的if響匹配,所以上述 實際上與下面的 功能一致 example 2 x 11,y 9 ...
C語言中「 」與「 」有什麼區別?
這雖然是個小問題,但有時候很容易讓人迷惑,因為有的時候用混淆了,程式編譯不通過。下面說說我對它們的理解。一般情況下用 只需要宣告乙個結構體。格式是,結構體型別名 結構體名。然後用結構體名加 加網域名稱就可以引用域 了。因為自動分配了結構體的記憶體。如同 int a 一樣。而用 則要宣告乙個結構體的指...
C語言中「 」與「 」有什麼區別?
這雖然是個小問題,但有時候很容易讓人迷惑,因為有的時候用混淆了,程式編譯不通過。下面說說我對它們的理解。一般情況下用 只需要宣告乙個結構體。格式是,結構體型別名 結構體名。然後用結構體名加 加網域名稱就可以引用域 了。因為自動分配了結構體的記憶體。如同 int a 一樣。而用 則要宣告乙個結構體的指...