Python循環語句中whlie和for的應用
Python循環語句是很多程序員必須掌握的一項技能,雖然有點老掉牙的話題,但是還需要大家不斷的進行鞏固。dict用一種更優雅的方式模擬了switch選擇,集合lambda函數,還可以進一步實現更加復雜的邏輯分支語句。關于lambda函數的使用,我們到下一章再學習。
Python循環語句
Python循環語句支持兩種循環語句——while循環和for循環,不支持C#中的do-while循環。Python的while循環和C#基本一致,此處我們著重比較兩種語言中for循環的區別。
說的簡單一點,Python循環語句中的for語句相當于C#中的foreach語句,它常用于從集合對象(list、str、tuple等)中遍歷數據。例如:
- for i in [1,2,3,4,5]:
- print i
這與C#中的foreach語法基本是一樣的,下邊是C#中的對應代碼:
- IEnumerable<int> numbers = Enumerable.Range(0, 5);
- foreach( int i in numbers)
- Console.WriteLine(i);
如何實現類似C#中for(int i = 0; i < 10; i++)這種for循環呢?答案是使用range或xrange對象,見下邊的代碼:
- # range(10)也可以用xrange(10)代替
- for i in range(10):
- print i#等價于以下C#語句
- #for(int i = 0; i<10;i++)
- # Console.WriteLine(i);
內建函數range([i,]j[,stride])建立一個整數列表,列表內容為k(i <= k < j)。第一個參數i和第三個參數stride是可選的,默認值分別為 0 和 1。內建函數xrange([i,]j[,stride])與 range 有相似之處,但xrange返回的是一個不可改變的XRangeType對象。這是一個迭代器,也就是只有用到那個數時才臨時通過計算提供值。當 j 值很大時,xrange能更有效地利用內存。#t#
Python循環語句中的while和for循環中支持break和continue語句。break語句用于立刻中止循環,continue語句用于直接進入下一次循環(忽略當前循環的剩余語句)。break和continue語句在C#與Python中的用法是一致的,只用于語句所在的當前循環。如果需要退出一個多重循環,應該使用異常,因為Python中沒有提供goto語句。
最后,Python中的循環還支持else語句,它只在循環正常完成后運行(for和while循環),或者在循環條件不成立時立即運行(僅while循環),或者迭代序列為空時立即執行(僅for循環)。如果Python循環語句使用break語句退出的話,else語句將被忽略。