与C语言类似
x = 1
while x <=4:
print x
x += 1
常用于可迭代对象
for number in range(1, 4): #range函数,返回一个列表,包含1~3的整数
print number
#xrange函数与range函数类似
#range函数一次性产生整个序列
#xrange函数一次只产生一个数
#遍历字典元素
d = {'x': 1, 'y': 2, 'z':3}
for key in d:
print key, 'corresponds to', d[key]
#同时迭代两个序列
names = ['Zk', 'Zps', 'Zjx', 'Jqj']
numbers = [1, 2, 3, 4]
for i in range( len(names) ):
print names[i], 'is', numbers[i], '.'
#并行迭代,用zip函数把两个以上的序列压缩起来
zip(names, numbers)
for name, number in zip(names, numbers):
print name, 'is', number, '.'
#zip函数很屌哒!!!它甚至可以处理不等长序列,一直迭代到最短的序列结束为止
zip( range(5), xrange(100000000)) #这里可别拿range来代替xrange,不然算死你
strings = ['Zk', 'Zxxxpxxxs', 'Jxxxqxxxj']
enumerate(strings) #enumerate函数返回序列的索引-值对迭代器对象
for index, string in enumerate(strings):
if 'xxx' in string:
strings[index] = '==='
#这段程序把字符串序列中含xxx的字符串都替换为===
strings
#sorted函数,排序,返回列表
sorted([4,3,6,8,3])
#reversed函数,翻转,返回迭代器对象
reversed('Hello, world')
list( reversed('Hello, world') )
''.join( reversed('Hello, world') ) #连接字符成为字符串
break语句应该尽量少用,提高程序可读性
from math import sqrt
for n in range(99, 81, -1): #没错!range还可以加入步长参数
root =sqrt(n)
if root == int(root): #判断是否为整数
print n
break
else:
print "Didn't find it!"
#这段程序查找了99~80间开平方后能为整数的数
艾玛!这不是数列通项嘛!
在列表内写for语句哦!
[x*x for x in range(10)]
[x*x for x in range(10) if x % 3 == 0] #哇塞,还能给x加条件
[(x, y, x*y) for x in range(1,4) for y in range(1,4)] #建立九九乘法表(1~3)!!
a = ['a1', 'b2', 'c3']
b = ['a2', 'b2', 'd3']
[x + '+' + y for x in a for y in b if x[0] == y[0]] #加入if子句,只有首字符相等的字符串才会被创建到列表里
不存在元组推导式这种东西哈!!
python2.3以前会报错,新版本中会产生一个生成器