一、什么是Python控制流?
在Python中通常的情况下程序的执行是从上往下执行的,而某些时候我们为了改变程序的执行顺序,故而使用控制流语句控制程序怎么执行。
二、Python控制流有哪些类型?
在Python中,有三种 控制流类型,
第一种是顺序结构,就是指按顺序执行的结构,
第二种是分支结构,
第 三种是循环结构。
1.顺序结构:
2.分支结构if
if结构基本语法
(1)只有一种选择if
(2)有两种选择if .. else ...
(3)有两种以上的选择elif来添加条件if ...elif....else...
if语句要点:“各分支尽量不重复,并且尽量包含全部可能性”
比如我们要按成绩高低分为优良差,比如这样划分的条件是比较合理的0<=成绩<80为差,80<=成绩<90为良,90<=成绩<=100为优。
而这样划分的条件是不合理的:
1)0<成绩<=80为差,80<=成绩<90为良,90<=成绩<100。80重合了;
2)0<成绩<80为差,80<成绩<90为良,90<=成绩<100。比如如果一个人成绩是0分、100分、80分、90分这种临界条件的时候就没办法判断执行哪部分语句了。
3.循环结构while...(else...)
while 条件为真:
循环执行“该部分语句
执行该部分语句
执行该部分语句”
else:
如果条件为假,执行该部分语句
其中else语句可以省略。
4.循环结构for
for语句格式:
for i in 集合:
执行该部分
else:
执行该部分
(2)for与range函数的使用
python range() 函数可创建一个整数列表,一般用在 for 循环中。
函数语法
range(start, stop[, step])
参数说明:
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
(3)for经常与Python中的迭代器一起使用
什么是“迭代器”?
迭代是Python最强大的功能之一,是访问集合元素的一种方式。
迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本的方法:iter() 和 next()。
字符串,列表或元组对象都可用于创建迭代器:
列表迭代器
list=[1,2,3,4]
it = iter(list) # 创建迭代器对象
for x in it:
print (x, end=" ")
(4)带嵌套的for语句
三.Break语句
Break语句的功能正如其名字一样,是用来打破(Break)程序的执行的。Break语句常用于循环结构中,在循环结构中出现Break语句的时候,能将该循环强制停止,然后退出该循环。
(1)break语句用在while循环中
(2)break语句在for循环中
(3)break语句在双层循环语句中
四、Continue语句
Continue语句的功能是强制停止循环中的这一次执行,直接跳到下一次执行。
(1)continue在while循环中
(1)continue在for循环中
(3)continue语句在双层循环语句中
(4)continue和break区别:
break是停止循环,continue是停止这次执行直接进行下一次循环
五、列表生成式
列表生成式是快速生成一个列表的一些公式
1.在列表中存放0~100的数:
普通的列表生成:
numbers=[]
for x in range(0,101):
numbers.append(x)
print(numbers)
用列表生成式生成列表:[要放入列表的数据 简单的表达式1 表达式2]
#x for x in range(0,101) for循环遍历出来的值,放入列表中
numbers=[x for x in range(0,101)]
print(numbers)
2.列表中存放0~100的偶数:
普通方法生成列表:
numbers
用列表生成式生成列表:
#for循环遍历0~101的数字,如果数字对2取余==0,表示是偶数,x放在列表中
numbers=[x for x in range(0,101)if x%2==0]
print(numbers)
3.找出列表list1=['asd','adf','dafg','acbo']带有a的字符
普通写法:
rs_list=[]
for s in list1:
if 'a' in s:
rs_list.append(s)
print(rs_list)
列表生成式:
list1=['asd','adf','dafg','acbo']
list2=[x for x in list1 if 'a' in x]
print list2