设为首页 收藏本站

运维网

运维网 首页 资讯 查看内容

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

2017-6-28 05:04| 发布者: admin| 查看: 118| 评论: 1|来自: 中国统计网

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

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

控制流

if判断

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

语法

http://i1.go2yd.com/image.php?url=0Gi2xeHXhj

注意的点:

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

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

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

例子

http://i1.go2yd.com/image.php?url=0Gi2xe2t01

http://i1.go2yd.com/image.php?url=0Gi2xeyvqU

for循环

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

语法

http://i1.go2yd.com/image.php?url=0Gi2xeQEoa

例子

http://i1.go2yd.com/image.php?url=0Gi2xeRZa0

http://i1.go2yd.com/image.php?url=0Gi2xeLGqd

while循环

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

语法

http://i1.go2yd.com/image.php?url=0Gi2xeIz2Z

注意的点:

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

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

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

例子

http://i1.go2yd.com/image.php?url=0Gi2xejdm9

http://i1.go2yd.com/image.php?url=0Gi2xead8Y

自定义函数

lambda函数

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

语法

注意的点:

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

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

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

例子

http://i1.go2yd.com/image.php?url=0Gi2xe1MP6

自定义函数语法

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

语法

注意的点:

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

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

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

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

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

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

http://i1.go2yd.com/image.php?url=0Gi2xepZVJ

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

必选参数

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

http://i1.go2yd.com/image.php?url=0Gi2xeVqOU

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

http://i1.go2yd.com/image.php?url=0Gi2xetvYk

默认参数

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

http://i1.go2yd.com/image.php?url=0Gi2xeAmgE

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

可变参数

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

http://i1.go2yd.com/image.php?url=0Gi2xekup0

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

关键字参数

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

http://i1.go2yd.com/image.php?url=0Gi2xe4fJ2

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

注意

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

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

End.


鲜花

握手

雷人

路过

鸡蛋
分享到微博 收藏 分享 邀请

引用 fafafafa 2018-2-1 21:08
fafafafa

相关分类

最新资讯

文章排行

More
扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服 E-mail:kefu@yunvn.com

本站由青云提供云计算服务

运维网--中国最专业的运维工程师交流社区

京ICP备14039699号-1 Copyright © 2012-2018

使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

Good good study day day up !


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


独家合作伙伴: 青云cloud

返回顶部