for循环
遍历可迭代对象:序列(字符串,列表,元组),字典,迭代器对象,生成器函数
for i in 'abcdef': print(i) # 偶数的累加和 s1 = 0 s2 = 0 for i in range(101): if i % 2 == 0: s1 += i else: s2 += i print(s1, s2)
嵌套循环
一个循环体内嵌入另外一个循环
for i in range(5): for j in range(5): print(j,end='') print()
break语句
break语句可用于while和for语句,结束整个循环,如果在嵌套循环内,只结束最近的一层循环
continue语句
结束本次循环,继续下一次
else语句
while,for循环语句可以附带一个else语句(可选),如果循环语句没有被break结束,则会执行else语句,格式如下:
while 条件表达式:
循环体
else:
语句
循环代码优化
1.劲量减少循环内部不必要的计算
2.嵌套循环中,尽量减少内存循环的计算,尽可能往外提
3.局部变量查询较快,尽量使用局部变量
其他优化手段:
1.连接多个字符串,使用join不使用+
2.列表进行元素插入和删除,尽量在列表尾部操作
ZIP并行迭代
推导式
列表推导式
l1 = [x for x in range(11)] print(l1) print('********************') l2 = [] for i in range(11): l2.append(i) print(l2) print('********************')
字典推导式
my_text = 'i love you,i love sxt,i love zf' l3 = {c: my_text.count(c) for c in my_text} print(l3)
集合推导式
l4 = {x for x in range(11)} print(l4)
迭代器推导式(生成元组)
a = (x for x in range(1, 100) if x % 9 == 0) print(a)
我们发现提示的是“一个生成器对象”。显然,元组是没有推导式的
元组没有推导式,一个生成器只能生成一次,第一次迭代可以得到数据,第二次迭代数据就没有了
函数的用法
函数是可重复的程序代码块
分为内置函数,标准库函数,第三方库函数,自定义函数
语法:
def 函数名(参数列表):
函数体
形参实参,文档字符串
def printmax(a, b): '''比较大小''' if a > b: print(a, '较大值') else: print(b, '较大值') printmax(10, 20) help(printmax.__doc__)
返回值
return返回值要点:
1.如果函数中包含return语句,则结束函数执行并返回值
def add(a, b): print('计算两个数的和:{0},{1},{2}'.format(a, b, a + b)) return a + b
2.如果函数体中不包含retur语句,则返回None
def test02(): print('a') print('b')
print(test02())
3.要返回多个返回值,使用列表,元组,字典,集合将多个值存起来即可
def test03(a, b, c, d): return [a * 10, b * 10, c * 10, d * 10] print(test03(1, 2, 3, 4))