python 中的 for-else 和 while-else 语句
python 中的 for-else 和 while-else 語句
絕大部分編程語言中都有條件判斷語句,比如 if-else。這里的 else 一般與 if 成對使用。不過在 Python 中,else 除了能與 if 配合外,還能和 for、while 配對使用。
我們來看一個例子:
假設有一個列表用來保存學生信息,列表的元素是字典,字典中的鍵有姓名、年齡等。讓用戶輸入一個名字,然后在列表中查詢,如果有這個名字就告訴用戶“找到了”,反之告訴用戶“沒有找到”。
一般情況下,我們可能會這樣寫:
info = [{"name":"Leslie", "age":30},{"name":"Karl", "age":20},{"name":"Tom", "age":25}]to_find_name = input("please input a name:")found_flag = Falsefor person in info:if person["name"] == to_find_name:found_flag = Trueif found_flag:print("Found it") else:print("Not found")程序運行結果如下:
please input a name:Tom
Found it
please input a name:Wang
Not found
細心的你肯定發(fā)現(xiàn)了:代碼在第7行定義了一個標志變量,其默認值是False;在對列表的遍歷中,如果找到了,就把這個變量賦值為True;最后根據(jù)這個變量的值,打印出查詢結果。
如果使用了 for-else 語句,代碼可以這樣寫:
info = [{"name":"Leslie", "age":30},{"name":"Karl", "age":20},{"name":"Tom", "age":25}]to_find_name = input("please input a name:")for person in info:if person["name"] == to_find_name:print("Found it")break; else:print("Not found")運行結果和前面是一樣的。
這里的邏輯是:如果運行了 break,那么就不執(zhí)行 else 語句;如果沒有運行 break,那么就執(zhí)行 else 語句。
這樣寫的優(yōu)點是:節(jié)省筆墨,不用再設置一個標志變量。
有的朋友會問,如果 for 的循環(huán)體中沒有 break 語句,else 語句還會執(zhí)行嗎?答案是:會!
while-else 的用法同理。
總結
以上是生活随笔為你收集整理的python 中的 for-else 和 while-else 语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重载运算符
- 下一篇: python 中的序列