码迷,mamicode.com
首页 > 编程语言 > 详细

一起入门python6之函数

时间:2016-11-04 22:55:49      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:表达式   color   ret   cti   没有   而不是   多行   ...   字符   

今天我们来学习新的一篇吧,那便是“函数(function)
我们用def来定义一个函数,以案例说话。
>>> def name(x):          #定义一个“name”的函数
...     print x + ",是一个帅哥!"           #加号就当作一个连接符了,连接x跟后面的字符串
...
>>> name("二狗哥")
二狗哥,是一个帅哥!
>>>
>>>#求三角形面积。
>>> def sanjiaoxing(di,gao):
...     s = di * gao / 2
...     return s
...
>>> sanjiaoxing(31,54)
837
>>>#再来一个小案例教大家认识一下啥事局部作用于跟全局作用域,其实跟别的语言一样,就是全局变量跟局部变量而已。
>>> a = 2
>>> b = 4
>>> def test(b):
...     test = a * b
...     return test          #return是返回的意思,返回test
...
>>> #大家猜一下输出多少?
>>> print test(12)
24
>>>#def 里面的是叫做局部变量,而def外面的是全局变量。局部的只能在局部用,当然了,局部的也可以调用全局的,但是全局是不能调用局部。所以打印出来是24,即2*12
>>>
>>> a = 2
>>> b =[12,23]
>>> def test(a,b):
...     a = 5
...     b[0] = 45
...     print a,b
...
>>> test(a,b)
5 [45, 23]
>>>#上面的一个案例你明白了吗?明白了的话,那就是真的懂了。
再给大家传授一个函数。那便是lambda函数
lambda只是一个表达式,函数体比def简单很多。其主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。
用lamdba会比def定义的函数来的简单多。来看一下下面的案例。
>>>def python(x,y,z):
.......     return x+y*z
.......
>>>python(1,2,3)
7
如果用lambda的话是这样的
>>>s = lambda x,y,z:x+y*z  #直接一行就解决了,有没有很高效,在编程中能用一行解决的,就绝对不要用多行解决。
7
>>>
函数的话相对还是比较简单,大家有不会的就尽量问。

一起入门python6之函数

标签:表达式   color   ret   cti   没有   而不是   多行   ...   字符   

原文地址:http://www.cnblogs.com/xishaonian/p/6031592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!