功能介绍
代码的整个执行过程我们可以认为是一个flow,就是一种流,从开始流到最后,但是在实际的过程中,就比如下面的例子,我们可能会根据不同的情况,做出不用的反应(分支),让流的运动轨迹发生变化,如果价格是10元的话,肯定是打印一下太贵了,买两斤,而其他的情况语句肯定是不会打印的,控制流,从字面意思我们也能看出来,就是控制数据流的流向,Python里的控制流包括if else(elif)和while。
当然,除了if else和while,我们还要再讲一下for循环。
使用说明
参考如下
#if 实例apple_price = 10if apple_price<5: #如果满足这个条件,那么执行,否则继续向下"流动"print('我要买十斤')elif apple_price<8:print('太贵了,买两斤')elif apple_price <15:print('太贵了,不吃')else:print('再见')#while实例age = 1while age<18: #如果一直满足,那么一直执行print('还是未成年的孩子'+str(age))age+=1 #age = age+1#for 循环for a in range(6):print(a) #依次打印0 1 2 3 4 5#以下为for循环的变体for a in range(1,6):#指定初始值和结束值,其中范围为[起始值,结束值)print(a) #依次打印1 2 3 4 5for a in range(1,6,2): #指定step步数,即每次递增为step步(此处为2步)print(a) #依次打印1 3 5#倒序循环,我们会有这样的需求,需要从6到0的遍历,将step步数设置为负数,实现递减的操作for a in range(6,-1,-1): #由于范围为[起始值,结束值),那么要打印6 5 4 3 2 1 0 ,就需要结束值指定为-1print(a)#当然了,以上的for循环,全部是和range搭档出现的,for的用处远不止于此,在Python中for循环遍历的是任何可迭代对象的返回值novels = ['红楼梦','西游记','三国演义','水浒传']for novel in novels:print(novel)
其他
利用for循环遍历列表、修改或选中某个元素,新建列表或字典,这些都是十分常见的用法,这是的循环往往如下所示:
x = [1,2,3,4]x_square = []for i in x:x_square.append(i*i)print(x_square) #[1, 4, 9, 16]
以上用法太过普通了,因此Python为这种操作提供了特殊的快捷写法。称为推导式。
列表推导式:new_list = [expression1 for variable in old_list if expression2]
字典推导式:new_dict = {expression1:expression2 for variable in list if expression3}
那么我们参考以上列表推导式,可以将以上代码重新编写
x = [1,2,3,4]x_square = [i*i for i in x]print(x_square) #[1, 4, 9, 16]
练习题
- 超市里的西瓜是5元一斤,然后我现在卡里只有36元,用while循环表达式来输出,我能够买多少个西瓜
- 我计划排一个锻炼表,根据当前日期判断,如果是周一的话,我的活动是打篮球,如果是周二的话,我的活动是打乒乓球,如果是周三的话,我的活动是游泳,其他时候都是跑步(使用if语句)
