从零开始学Python【3】--控制流与自定义函数

浏览: 1824

在Python编程中控制流和自定义函数是用的非常频繁的语句,通过控制流完成各种判断、循环等处理;通过自定义函数实现个性化的问题解决。今天我们就来讲讲Python中的控制流和自定义函数。

控制流

if判断

if判断可以处理两分支判断和多分支判断,对于两分支类似于Excel中的if函数、R中的ifelse函数,处理的是某种条件满足时则如何如何,否则又如何如何;而多分支无非是Excel中if函数或R中ifelse函数的多层嵌套而已。接下来看看Python中if语言的语法和例子。

语法

image.png

注意的点:

1)关键词if、elif、else所在行的末尾必须要有英文冒号;

2)冒号的下一行必须要有缩进;

3)else后面不要再写条件;

例子

image.png

image.png

for循环

for循环可以对一切可迭代对象(如列表、元组、字典、字符串、序列等)按照指定的方式进行循环处理。在R语言中,也有相应的for循环语句,只是语法上有些不同,实质是完全一致的。

语法

image.png

例子

image.png

image.png

while循环

while循环与for循环比较类似,两者基本上都是可以互换的,即for循环也可以用while循环完成,反之亦可。

语法

image.png

注意的点:

1)对于可知循环次数的while循环,一般需要给一个初始的计数器i,i可以是任何值(这要根据你实际的情况来了,如我只是计算1....100的和,那i可以从0开始也可以从1开始);

2)对于可知循环次数的while循环,有了初始的计数器,也要有循环体内的累加器,即 i+=1,每循环一次则累加记录一次;

3)对于未知循环次数的while循环,可以用True关键词接在while关键词后面,但一定要记得通过if分支实现break操作,否则将会进入死循环。

例子

image.png

image.png

自定义函数

lambda函数

lambda函数又称匿名函数,是一种精简版的小函数,可以非常方便的嵌套在任何地方。先来看一下lambda函数的语法和例子。

语法

image.png

注意的点:

1)parameters形参可以是多个,用英文逗号隔开;

2)参数与函数体之间用英文冒号隔开,且不需要换行;

3)函数体expression不可写的复杂,即一个表达式即可;

例子

image.png

image.png

自定义函数语法

在实际工作中,你可能觉得Python现有的函数并不能满足你的需求,这就需要你自己构造一个自定义函数完成实际的工作,关于自定义函数是一个必知必会的知识点,下面带你进入自定义函数的说明。

语法

image.png

注意的点:

1)以关键词def开头,说明准备开始自定义函数;

2)function_name是用户指定要的一个函数名称;

3)形参放在括号内,即使没有参数,括号也保留着;

4)def行末尾记得加上英文冒号,并换行缩进写入函数体

5)一般需要加上关键词return,将函数的运算结果返回出来;

例如,使用列表解析式,对列表的每一个元素做一个二次函数处理

image.png

Python的自定义函数,有四种类型的形参,分别是必选参数、默认参数、可变参数和关键词参数,我们通过例子一一道来。

必选参数

顾名思义,自定义函数时,传入了某个形参,为保证函数正常运行则必须为其传入实参。举个例子就明白了:

image.png

上面的程序运行出错,就是因为没有给c参数传入一个实参导致的。我们再看一个猜数字游戏的代码:

image.png

默认参数

默认参数就是在自定义函数的时候,就已经给了函数一个初始值的参数,那么,在函数运行时,就可以不用为该默认参数传值了,当然也可以根据实际情况为默认参数传入其他值。

image.png

这里的pi参数就是一个默认参数,可以在函数运行时不给该参数传入一个值,从而减少了重复的代码。

可变参数

有的时候,你在构造一个函数时都不知道会有多少参数,即参数是可变的,故衍生出了可变参数。可变参数前面需要加一个星号(*),用来区分必选参数和默认参数,可变参数是以元组的形式传给函数的,还是举个例子说明比较好

image.png

参数name前面有一个星号,说明该参数就是可变参数,而income,outcome则为必选参数,故给函数func2传入6个参数时,前面两个分别为income和outcome的实参,后面4个则以捆绑的元组作为name的实参。

关键字参数

最后,再来说一下关键字参数,其实该参数与可变参数类似,区别有二,一是关键字参数前面需要以双星号(**);二是关键字参数是以字典的形式传给函数的。同样举个例子说明:

image.png

math,english,chinese三个参数就传递给了关键字参数score,而且这三个捆绑在一起的实参是以字典的形式传给score参数的。

注意

在构造自定义函数时,如果你的函数比较复杂,需要考虑到使用上面介绍的4种参数,切记4种参数是有顺序的,即必须参数,默认参数,可变参数和关键字参数。

image.png

今天我们的内容就介绍到这边,欢迎大家拍砖。下期我们来聊聊Python数组操作--numpy。

从零开始学Python系列:

从零开始学Python--数据类型及结构

从零开始学Python--数值计算及正则表达式

每天进步一点点2015

学习与分享,取长补短,关注小号!

推荐 0
本文由 每天进步一点点2015 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

很喜欢你的系列文章

要回复文章请先登录注册