循环 for循环和可迭代对象遍历 for通常用于可迭代对象的遍历 for 变量 in 可迭代对象: 循环操作体 range 对象 range(start,end[,step])
break,跳出最近的一层循环 continue,结束本次(最近)循环,继续下一次
循环里的else while、for循环可以附带一个else语句(可选)。如果for、while语句没有被break语句结束,则会执行else子句,否则不允许执行。 while 条件: 循环体 else: 语句块
或者 for 变量 in 可迭代对象: 循环体 else: 语句块
for i in range(4):
a=input("请输入一个数:")
if a==0:
break
else:
print("四个数已输入完成!")
循环代码优化
- 尽量减少循环内部不必要的计算
- 嵌套循环中,尽量减少内层循环的计算,尽可能地向外提
- 局部变量查询较快,尽可能使用局部变量
- 其他手段:连接多个字符串,使用join()而不使用+;列表进行元素插入和删除,尽量在尾部操作
import time
start = time.time()
for i in range(1000):
result = []
for m in range(1000):
result.append(i*1000+m*100)
end = time.time()
print("耗时:{0}".format((end-start)))
start2=time.time()
for i in range(1000):
result = []
c = i*1000
for m in range(1000):
result.append(c+m*100)
end2 = time.time()
print("耗时:{0}".format((end2-start2)))
使用zip()并行迭代 使用zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止
推导式 列表推导式 [表达式 for item in 可迭代对象] 或者[表达式 for item in可迭代对象 if 条件判断]
>>>y=[x*2 for x in range(1,5)]
>>>y
[2,4,6,8]
>>> cells = [(row,col) for row in range(1,10) for col in range(1,10)]
字典推导式 {key_expression : value_expression for 表达式 in 可迭代对象}
>>> my_text = ' i love you, i love sxt, i love gaoqi'
>>>> char_count = {c:my_text.count(c) for c in my_text}
>>>> char_count
{' ': 9, 'i': 4, 'l': 3, 'o': 5, 'v': 3, 'e': 3, 'y': 1, 'u': 1, ',': 2, 's': 1, 'x': 1, 't': 1, 'g': 1, 'a': 1, 'q': 1}
集合推导式,与上面类似 生成器推导式(生成元祖)
函数 def 函数名(参数列表): 函数体
程序的可读性很重要,一般建议在函数体开始部分附上函数定义说明这就是文档字符串(函数注释),通过三个单引号或者三个双引号来实现,中间可以用多行文字说明。使用help(函数名)就可以获取函数注释
|