for 循环
for 变量 in可迭代对象:
循环体语句
可迭代对象包括:
序列 字典 文件对象 迭代器对象iterator 生成器函数 generator
range对象 range(start, end,step)
打印九九乘法表
for m in range(1,10):
for n in range(1,m+1):
print("{0}*{1}={2}".format(m,n,m*n),end="\t")
print()
break跳出循环 continue 继续下一个循环
for while 语句没有被break中断,则会执行else子句,否则不执行
循环代码的优化
遵守三个原则可以大大提高运行效率:
(1)尽量减少循环内部不必要的计算
(2)嵌套循环中,尽量减少内存循环的计算,尽可能向外提
(3)局部变量查询较快,尽量使用局部变量
其他优化手段:
(1)连接多个字符串用join()而不使用+ str.join(sequence) 用str链接sequence里面的元素序列,生成新的字符序列
(2)列表进行元素插入和删除,尽量在列表尾部操作
names={"老大","老二","老三"}
ages={"11","12","13"}
jobs={"一年级","二年级","三年级"}
for name,age,job in zip(names, ages,jobs):
print("{0}-{1}-{2}".format(name,age,job))
#两种都可以
for i in range(3):
print("{0}-{1}-{2}".format(name[i],ages[i],jobs[i])
同时遍历多个列表
推导式创建序列
推导式是从一个或者多个迭代去快速创建序列的一种方法,可以将循环和条件判断相结合,
列表推导式: [表达式 for item in 可迭代对象]
或者{表达式 for item in 可迭代对象 if 条件判断}
字典推导式:{key_expression : value_expression for item in 可迭代对象}
my_test = "i love you, i love congcong, i love coco"
#不使用字典推导式
char_count ={} #初始化一个字典,不然在for循环里每次循环就新建一个char_count
for c in my_test:
char_count[c] = my_test.count(c)
# print(c)
#使用字典推导式char_count = {c:my_test.count(c) for c in my_test}
print(char_count)
集合推导式
和列表推导式语法类似: {表达式 for item in 可迭代对象 }
生成器推导式 用来生成元组
一个生成器只能运行一次,第一迭代可以得到数据,第二次迭代就没有数据了
(x for x in range(1,100)if x%9 ==0) 得到一个生成器对象 生成器是一个可迭代的对象
函数
函数是可重用的程序代码块,实现代码复用 实现代码一致性。
分类:内置函数 标准库函数 第三方库函数 用户自定义函数
def 函数名(参数列表):
“文档字符串”
函数体、若干语句
函数也是对象
实参 形参
‘’‘ 文档字符串 ’‘’ 函数的注释
使用help(函数名.__doc__)打印该函数的文档字符串
返回值:结束函数执行并返回值
函数体不包含return则返回None值
要返回多个返回值,使用列表、元组、字典、集合将多个值存起来即可