一、for循环和可迭代对象遍历
for循环通常用于可迭代对象的遍历。
for循环的语法格式如下:
for 变量 in 可迭代对象:
循环体语句

for x in (20,30,40):
	print(x*3)

for x in "sxt001":
	print(x)

d = {'name':'Dante','age':'18','address':'Cq'}
for x in d:   #遍历字典所有的key
	print(x)

for x in d.keys():  #遍历字典所有的key
	print(x)

for x in d.values)_: #遍历字典所有的value
	print(x)

for x in d.items():  #遍历字典所有的“键值对”
	print(x)

二、range对象
range对象是一个迭代器对象,用来产生指定范围的数字序列。格式为:
range(start,end [,step])

三、else语句
while、for循环可以附带一个else语句(可选)。如果for、while语句没有被break语句结束,则会执行else子句,否则不执行。语法格式如下:
while 条件表达式:
循环体
else:
语句块

或者:
for 变量 in 可迭代对象:
循环体
else:
语句块

四、循环代码优化
1、尽量减少循环内部不必要的计算
2、嵌套循环中,尽量减少内存循环的计算,尽可能向外提。
3、局部变量查询较快,尽量使用局部变量

五、其他优化手段
1、链接多个字符串,使用join()而不是+
2、列表进行元素的插入和删除,尽量在尾部进行

六、使用zip()并行迭代
我们可以通过zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。

for name,age,job in zip(names,ages,jobs):  #names,ages,jobs都是元组,数组等这类型
	print("[0]--[1]--[2]".format(name,age,job))

六、推导式创建序列
推导式是一个或者多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合,从而避免冗长的代码。

1、列表推导式

列表推导式生产列表对象,语法如下:
[表达式 for item in 可迭代对象]
或者: {表达式 for item in 可迭代对象 if 条件判断}

cells = [(row,col) for row in range(1,10) for col in range(1,10)]

2、字典推导式
字典的推导式生成字典对象,格式如下:
{key_expression : value_expression for 表达式 in 可迭代对象}
类似于列表推导式,字典推导也可以增加if条件判断、多个for循环。

my_test = "i love you , i love swu, i love Dante"
char_count = {c:my_text.count(c) for c in my_texy} #查找每个字母在其中出现的次数

#将其用普通的for循环方式来看
my_text = "i love you, i love swu, i love Dante"
char_name=[];
char_count=[];
for c in my_text:
    char_name.append(c);
    char_count.append(my_text.count(c))
char_count1=dict(zip(char_name,char_count))
print(char_count1)

3、集合推导式

b = {x for x in range(1,100) if x%9==0}

4、生成器推导式(生成元组)
一个生成器只能运行一次。第一次迭代可以得到数据,第二次迭代发现数据已经没有了

七、函数

定义函数的语法如下:

def 函数名([参数列表]):
 ·
 ·
 ·
 ·
 ·[return]