目录
循环
循环的执行和if条件一样,通过判断循环条件语句来决定是否执行循环体。条件表达式计算结果为True时,执行循环体,结果为False时,结束循环。Python中只有while循环和for循环,没有do...while...循环。循环中可以有else语句:else语句是循环条件为false时执行的代码块。
While循环
语法
只用while...的循环语句(当条件为True时执行while中的代码,否则结束循环)
while 判断条件:
循环体
While...else...循环语句(当条件为True时执行while中的代码,否则执行else中的代码)
while 判断条件:
循环体
else:
值为False时执行代码语句
while循环语法糖
简单的while循环也可以写成一句表达式,将下面的代码写成语法糖模式
while False:
print('独乐乐')
else:
print('众乐乐')
语法糖语句
while False:print('独乐乐')
else:print('众乐乐')
这种只有while简单的语句或while...else...简单的循环,可以将判断语句和循环执行体写在一行
for循环
for循环可以用来遍历一个可迭代对象,通常可以借助range()函数来遍历具有数字索引类型的数据对象(配合len()方法使用:可迭代、能通过len()获得长度的对象),或者指定循环执行次数,range()中的参数和索引的取法一样(左闭右开及步长),只有一个数字参数时表示循环的次数。
for循环语法糖
同while..else...语句,简单的for...else...循环语句也可以写成一行
for i in range(5):
print('爱我中华',end=' ')
else:
print('祖国万岁')
语法糖模式
for i in range(5): print('爱我中华',end=' ')
else: print('祖国万岁')
嵌套循环
在while和for循环中循环可以嵌套,如下使用嵌套来打印一个九九乘法表
print('\t'*7,'九九乘法表')
for i in range(1,10):
for n in range(1,i+1):
print('%s*%s=%s\t'%(n,i,n*i),end=' ')
print()
end关键字
关键字end可以将结果输出到同一行(将下一行的结果输出与当前的输出,输出在同一行),里面的参数为用来连接结果的字符,如下
for i in range(10):
print(i,end=',')
输出的数字在同一行,且每个数字的末尾用逗号连接
死循环
在代码中如果条件语句的bool值永远为True时,会出现死循环的情况,如下:
mport time
while 20>1:
print('你已进入死循环!!!!')
time.sleep(2)
在代码中应避免死循环的出现,但有的时候,根据设计需求,我们需要用到死循环来执行代码,比如用死循环让客户端实时请求服务器。
在命令交互行中出现死循环时,使用Ctrl+C可以结束当前死循环。在IDE中只需要点击结束执行的按钮即可结束执行死循环。
跳出循环
在循环中使用关键字跳出循环的方法有两种,跳出循环是在跳出循环中关键字对应的条件语句为True时执行的。
break
break关键字跳出并终止循环,从break之后的代码不再被执行,而且循环也不再执行。
i = 0
while i < 8:
i += 1
if i%2==0:
break # 跳出整体循环,不再执行
print(i,end=',')
continue
continue语句跳出本次(当前)循环后,不再执行循环体continue后面代码,开始下一轮的循环执行。
i = 0
while i < 8:
i += 1
if i%2==0:
continue # 跳出本次循环,开始执行下轮循环
print(i,end=',')
推导式
Python中有一种独有的方法,可以从已有的一个可迭代数据对象中创建出另一个新的数据对象的结构体,这种方法就是推导式,或称解析式(comprehensions),推导式利用循环对数据进行迭代操作,得到新的数据。基本语法是使用简单的循环语句。
列表推导式
推导式的最外面使用 [] 将整个推导式括起来。for(或while)前面为循环执行的语句体,for(或while)为循环的条件语句,后面为生成数据的过滤条件,可以是条件语句,也可以是循环的嵌套,根据需要,可有可无。如下:创建一个1到10 以内的偶数列表推导式。
list_compre = [i*20 for i in range(1,11) if i%2 == 0]
print(list_compre)
print(type(list_compre))
通过打印类型,发现结果为列表类型。
集合推导式
集合推导式同列表推导式,只是将外面的 [] 换成了 {}
字典推导式
类似于列表和集合的推导式,只不过除了外面的括号使用{}之外,里面的返回值也要是键值对的形式。
list1,list2 = [1,2,3,4,5,6],['一','二','三','四','五','六']
dict_compre = {list1[i]:list2[i] for i in range(len(list1))}
print(dict_compre)