python學習之語句:循環語句(for,while)

while循環:

python中的while循環其實跟其他語言中的沒有什麼大的差距,都是以:

while (判斷條件):

語句塊

當判斷條件爲True的時候執行語句塊,當爲False的時候跳出循環

>>> i=0
>>> while i<2:
	i+=1
	print i
	
1
2
while還有一種用法:

>>> i=0
>>> while True:
	i+=1
	print i
	if i>1: break
	
1
2
當然,不推薦使用,太多的break關鍵字會使代碼的可讀性降低


for循環:

python中的for循環跟我們熟知的靜態語言的for循環就有一定的差距了,簡單的一句話概括就是python的循環是對列表、元組、字典等的實際序列的循環,沒有了類似於java的三個表達式判斷條件

>>> words=[1,2,3,4,5]
>>> for word in words:
	print word
	
1
2
3
4
5

迭代某個數字範圍:range函數

>>> range(0,9)
[0, 1, 2, 3, 4, 5, 6, 7, 8]
xrange和range的區別:range一次性創建整個序列,而xrange一次只創建一個數字,所以在循環次數較大的時候請使用xrange,當然python3之後range的實現方法跟xrange是一樣的


遍歷字典:

>>> d={'x':1,'y':2,'z':3}
>>> for key in d:
	print key , 'is to' , d[key]
	
y is to 2
x is to 1
z is to 3

一些迭代工具:

並行迭代:

並行迭代就是同時遍歷兩個序列,而zip函數可以將兩個序列“壓縮”成一個元組:

>>> name=['loutc','lzmtc','loutc1']
>>> ages=[12,13,14,15,16]
>>> zip(name,ages)
[('loutc', 12), ('lzmtc', 13), ('loutc1', 14)]
>>> for nam,age in zip(name,ages):
	print nam,'is',age,'years old'

loutc is 12 years old
lzmtc is 13 years old
loutc1 is 14 years old
如你所見,zip函數會自動匹配兩個序列的長度


enumerate函數:可以迭代序列的索引值

>>> for index,nam in enumerate(name):
	print index , 'is' , nam
	
0 is loutc
1 is lzmtc
2 is loutc1

列表推導式:利用其它列表創建新列表

>>> [x*x for x in range(1,10)]
[1, 4, 9, 16, 25, 36, 49, 64, 81]
同樣在for中可以加上if判斷:

>>> [x*x for x in range(1,50) if x%3==0]
[9, 36, 81, 144, 225, 324, 441, 576, 729, 900, 1089, 1296, 1521, 1764, 2025, 2304]

也可以增加迭代的數量:

>>> [(x,y) for x in range(1,3) for y in range(2,5)]
[(1, 2), (1, 3), (1, 4), (2, 2), (2, 3), (2, 4)]

不得不多言一句,python的for循環的簡便性充分的展示了python語言的魅力,如此靈活的語法規則,怎叫人不動心~好了,主要的語句分析完畢了,接下去我會整理一下python中字符串的一些用法,不管在哪個語言中,字符串都是佔很重的比例的,讓我們看看python又是如何想我體現他在字符串上的魅力










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章