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又是如何想我体现他在字符串上的魅力