今天我们来学习新的一篇吧,那便是“函数(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
>>>
函数的话相对还是比较简单,大家有不会的就尽量问。