python控制流_Python基础知识详解(四):控制流篇

b17eca8065380cd7ae0c74acc952723159828179.jpeg?token=62671b60af619403cb5935062ffebcde&s=4F145F8C08304A9C8AA0E4D2030050BB

作者 | CDA数据分析师

循环语句

1、for循环

For循环用来遍历任何序列的项目,这个序列可以是一个列表也可以是一个字符串,针对这个序列中的每个项目去执行相应的操作。

举一个例子,一个数据分析师的必修课主要有Excel、SQL、Python和统计学,你要想成为一名数据分析师,那么这四门课是必须要学的呃,且学习顺序也应该是先Excel,再SQL,然后Python,最后是统计学。依次学习这四门课的过程就是在遍历一个for循环。

0dd7912397dda14413f43e9adaa10fa70cf48631.jpeg?token=390759301c92aeb404a3e6fb1eb6af62&s=BFA87823CB2245225CF505DA000080B1

2、while循环

While循环用来循环执行某程序,即当条件满足时,一直执行某程序,直到条件不满足时,终止程序。

举一个例子,七周成为数据分析师,即只要你按课程表学习七周,你就算是一名数据分析师了,可以去找工作了。这里就是以你是否已经学习了七周作为判断条件,如果学习时间没有达到七周,那么你就需要一直学,直到学习时间大于七周,你才可以停止学习,去找工作了。用while语句执行时的具体流程如下图所示:

fcfaaf51f3deb48f056356f49809e52c2df578aa.jpeg?token=fcf887543505a3349e2f9b463a33c52e&s=5A8C3C62014F4D4B1A74B5D30000E0B1

下面为其实现代码:

eaf81a4c510fd9f9a2c1f23f4d3b0b2f2934a4aa.jpeg?token=7884cc57bc420ab72329c992cb2e3c94&s=BFAA78230BC245605CFDA1DA0000C0B1

3ac79f3df8dcd1007a337dbe069d9815b8122f9a.jpeg?token=a5a7becb557f89a7ffaf8e4fdb45bc67

94cad1c8a786c917f8fd8bfda02bafca3ac75710.jpeg?token=0024896ce628233cd3412c69f8fd66cb&s=7842F71C410654E848C018570300A063

条件语句

1、if语句

if条件语句是程序先去判断某个条件是否满足,如果该条件满足,则执行判断语句后的程序。If条件后面的程序需要首行缩进。

举一个例子,如果你好好学习数据分析师的必备技能,那么你就可以找到一份数据分析相关的工作,但是如果你不好好学习,那么你很难找到一份数据分析相关的工作。

我们用1表示好好学习,0表示没有好好学习,并赋初值为1,也就是假设你好好学习了。

当判断条件为是否好好学习时,具体流程如下图所示:

72f082025aafa40fc5fde7d6c372dc4a78f01999.jpeg?token=00dbdc4135c51be582cc2de769e2a270&s=598C3472594F6D4D185DD1CA0000E0B1

下面为其实现代码:

a50f4bfbfbedab645af829a09c2070c678311ee7.jpeg?token=d0208d35e8c457044565a74ed2e47870

当判断条件为是否没有好好学习时,具体流程如下图所示:

810a19d8bc3eb13584fc3379c10877d6fc1f44d1.jpeg?token=5c0b12a23f8887ca556dd96b46c6fc49&s=59843C7251CF614D1C5DD5CE0000E0B1

下面为其实现代码:

aa18972bd40735fa2452a8b7f047d0b60f24083e.jpeg?token=4bdad59289da265dd47657a83c9302f9

因为条件不满足,所以执行if条件后面的程序,即输出为空。

2、else语句

else语句是if语句的补充,if条件只说明了当条件满足时程序做什么,没有说当条件不满足时程序做什么。而else语句正好是用来说明当条件不满足时,程序做什么。

当判断条件为是否好好学习时,具体流程如下图所示:

6f061d950a7b02080c896e800acf2dd6572cc82f.jpeg?token=8a9077e596dde6d75bfa8457a3baaff3&s=5AAC3C62011FC5CE4AD5F5D30000E0B1

下面为其实现代码:

8b82b9014a90f6038faf6aac5e046c1eb151eddf.jpeg?token=f7765444b7640485d89752244b792b67&s=BFAA78234B6241200EF4E5DA000080B1

当判断条件为是否没有好好学习时,下面为其代码实现:

f636afc379310a556d753eb6df539cac8226103f.jpeg?token=4f481d7d4b83cd3ce290aef50dbe708d&s=BFAA78234B6245220EF5C5DA0000C0B1

3、elif语句

elif语句可以近似理解成else_if,前面提到的if语句、else语句都只能对一条语句进行判断,但是当你需要读多条语句进行判断时,就可以用elif语句判断。

elif中可以有else语句,也可以没有,但是必须有if语句,具体执行顺序是先判断if后面的条件是否满足,如果满足则运行if为真时的程序,结束循环;如果if条件不满足时就判断elif语句。可以有多个elif语句,但是只有0个或者1个elif语句会被执行。

比如你要猜某个人考试考了多少分,你该怎么猜?先判断这个人是否及格(60分为准),如果不及格,分数范围直接猜一个小于60分的即可,如果及格了再去判断他的分数到底在哪个分数段,具体流程如下图所示:

7aec54e736d12f2e4668a74827d40a6785356841.jpeg?token=e8e97ec20d808e431600f55a4e370c21&s=5A8C3C62191FD5CE0E7DE5DF0000A0B1

代码实现如下图所示:

11385343fbf2b2115229ec4da296ba3d0cd78e4e.jpeg?token=e5cc0da00f26974bf4275ee9fb209cd0&s=FFA838634B6245201CF584DA0000C0B1

0b7b02087bf40ad1651124463f3acedaa8eccebe.jpeg?token=4d9688c17ed419f8f72f599f7a525aec&s=30899D553C72608E4B0579E20300C010

函数

函数是再一个程序中可以被重复使用的一段程序。这段程序是由一块语句和一个名称组成的,只要函数定义好以后,你就可以在程序中通过该名字调用执行这段程序。

1、普通函数

普通函数一般由函数名(必需)、参数、语句块(必需)、return、变量这几部分组成。

函数定义语法如下图所示:

8cb1cb1349540923d1e11425e64e0e0cb2de49f8.jpeg?token=e5a7bbeedd4eab3f8a990bd906b0d7e7

定义函数使用的关键词是def,函数名后面的括号里面放参数(参数可以为空),参数后面要以冒号结尾,语句块要缩进四个空格,语句块是函数具体要做的事情。

定义一个名为learn_python的函数:

5fdf8db1cb134954f8d6b5c63e584d5dd0094a60.jpeg?token=cbc52a4898b06cc813298484c355230b&s=BFAA782387D241600CDDE5DA0000C0B1

上面的函数利用函数名learn_python调用了多次learn_python对应的语句块。

函数的参数有形参(形式参数)和实参(实际参数)两种,在定义函数的时候使用的参数是形参,比如上面的location;在调用函数时传递的参数是实参,比如上面的地铁。

上面语句块中直接执行了print操作,没有返回值,我们也可以利用return对语句块的运行结果进行返回。

定义一个含有return的函数:

b999a9014c086e06d5881a5c6a1ea4f10ad1cba5.jpeg?token=a9c4174856b0d51d27009278f7a60579&s=BFAA7823CFE265201C7DA5DA000080B1

8694a4c27d1ed21b35fe5123c27802c150da3fd8.jpeg?token=70b2365063625367e29a248db72ce607

这次调用函数以后,没有直接进行print操作,而是将运行结果利用return进行了返回。

定义一个含有多个参数的函数:

7acb0a46f21fbe098fbcedd60c76d3368644ad2a.jpeg?token=da1651a77d78dce5cfd9115c8319ac69&s=BFA87823CF224D201EF5A1DA0000C0B1

2、匿名函数

匿名函数,顾名思义就是没有名字的函数,也就是省略了def定义函数的过程。Lambda只是一个表达式,没有函数体,lambda使用方法如下:

64380cd7912397dd20590dc732946db2d1a287e9.jpeg?token=9f3187ba4094f540e3a33432628491a9

arg1,arg2,arg3表示具体的参数,expresion表示参数要执行的操作。

现在我们分别利用普通函数和匿名函数两种方式来建立一个两数相加的函数,让大家看看两者的不同。

普通函数如下:

d62a6059252dd42a93a2652f642d84b0c8eab8a3.jpeg?token=223872176e64806c86608018acfd0312&s=BFA878234B2245205E5500DA000080B1

匿名函数如下:

2fdda3cc7cd98d100f802d305829670b7bec9072.jpeg?token=6e6bc91f1e12e14ec695d6f2ce3b0de5

匿名函数比普通函数简洁的多,也是比较常用的,大家务必熟练的掌握。

91529822720e0cf3bf57eabd62502d1abf09aaf4.jpeg?token=424c04df1818a1ae24c400c34f86e108&s=F180F9157E36659ADD0CE8C20300F0A3

高级特性

1、列表生成式

现在有一个列表,你需要对该列表中的每一个,你需要对该列表中的每个值求平方,然后将结果组成一个新列表,我们先看看普通方法怎么实现的。

普通方法实现如下:

e824b899a9014c08571783d0626ddd0d7bf4f4b7.jpeg?token=3d522a91fc3b2ebcf7ff8aab609f960c&s=BFA878234D226F201CD585DE0000C0B1

列表生成式实现如下:

622762d0f703918f19ef2f723e2bf99259eec46c.jpeg?token=27989add23d0468f6cff142a4b45ed91

上面的需求比较简单,你可能没有领略到列表生成式的妙用。我们再来看一些复杂的需求。

现在有两个列表,需要把这两个列表中的值两两组合,我们分别用普通方法和列表生成式实现一下。

普通方法实现如下;

d833c895d143ad4b48667e2be51485aaa50f06a8.jpeg?token=4e577fa20240f65e8760f692134247b8&s=BFA878234B6245205E7524DA0000C0B1

列表生成式实现如下:

a71ea8d3fd1f4134e861dcac4f094acfd0c85eae.jpeg?token=95d1b75cfb77b06acd1a3939ab359c93

上面的需求用普通的方法要嵌套两个for循环,但是用列表生成式只要一行代码即可。如果数据量很小,那么for循环嵌套运行速度还行;如果数据量很大的话,那么for循环嵌套太多的程序,运行就会变的很慢。

2、map函数

map函数的表现形式是map(function,agrs),表示对序列args中的每个值进行function操作,最终得到一个结果列。

bf096b63f6246b600f61790783eec549510fa276.jpeg?token=fa9d74519f565e8661a3b1241dfa8b50&s=FFA838634B6245205ED580DA000080B1

map函数生成的结果序列不会直接把全部结果显示出来,要想获取到结果需要for循环遍历取出来。也可以使用list方法,将结果值生成一个列表。

94cad1c8a786c917a347f6c1a62bafca3ac7579a.jpeg?token=44800553a1d4c80f8b6453f2df2a3781

模块

模块是升级版的函数,我们前面说过,在一段程序中可以通过函数名多次调用函数,但是必须在定义函数的这段程序里面调用,如果换到其他程序里该函数就不起作用了。

模块之所以是升级版的函数,是因为在任意程序中都可以通过模块名去调用该模块对应的程序。

你要调用函数首先需要定义一个函数,同理,你要调用模块,首先需要导入模块,导入模块的方法主要有两种。

f7246b600c338744763879503a1906fcd72aa03d.jpeg?token=c8c9d138c18adfc1d2018422a9d73cf1

数据分析领域用的比较多的三个模块分别是Numpy、Pandas、matplotlib,Python中还有很多类似的模块,正是因为这类模块的存在,使得Python变的很简单,受到越来越多人的欢迎。

f703738da97739126a28bb08bc67661d377ae2d5.png?token=afa02b63f6ebed42af805c07b89734fa&s=5AF688524CD70DE91C839ABB0300B00E

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值