所谓的函数其实就是一个方法,就类似于我们在生活当中使用的模板模具。
在此函数中,test是一个方法,或者说是函数。test()就是一个调用的方法。点击运行,输出结果为:大家好。
点击运行,输出结果为:Hello,小王。
在函数中,分为实参和形参,在该函数中,test(name),test这是一个函数,name是一个形参。形参就是完成工作所需的一项信息。
test('小王'),调用了test的这个函数,小王是个实参,实参就是调用这个函数的时候传递给函数的信息,name就等于小王。
小王这个值存储到了name当中。
1.无参数无返回值。
这个就是无参数无返回值的形式,这也是最简单最基本的结构函数。没有参数(形参,实参),也没有返回值。或者可以把它的实参或者形参都看做空。
2.有参数无返回值。
点击运行,输出结果为,我喜欢去打篮球 我喜欢去打篮球 我喜欢去游泳 我喜欢去游泳 ,在这个函数中有形参与实参。而且可以调用函数多次。
点击运行,输出结果为:比起吃鸡肉,我更喜欢吃牛肉; 我最喜欢去唱歌 ; 比起吃鸡肉,我更喜欢吃唱歌 ; 我最喜欢去牛肉。此函数有两个形参,所以我们需要传进去两个实参,但是切记实参之间的位置切勿写乱,否则结果就会像第二次输出的一样感觉搞笑了。
3.无参数有返回值。
点击运行,输出结果为:小美;小美。在此函数中,没有参数,有一个return,返回的意思,只能应用于函数中,test()调用函数,得到love=‘小美’,return又返回到love值上。love=‘小美’ ,返回的值为小美,输出的话,可以用这两种方法输出。
点击运行,输出的结果是:我的爱人是小丽。而return下面的一段代码则不会执行。
return 有截断返回的意思,return给一个返回值,下面的代码便统统不会执行。
4.有参数有返回值。
点击运行,输出结果为3,此函数有参数,有返回值。
点击运行,输出结果为:43。可以做一些小的运算工作。
点击运行,输出结果为:21。虽然此函数中有六个参数,但在过程中,程序只用到了a,d,f三个参数,对应的分别是8,9,4。
最后运算得出结果。
5.默认参数。
点击运行,输出结果为:那个孩子叫小明 他今年16 每天打游戏;那个孩子叫小明 他今年20 每天打篮球。此函数中,在设置形参age,fond的时候我们给了它一个值,这个值叫做默认值,这个参数叫做默认参数。默认参数可以随意设置。但是要注意,默认参数要放到末尾。当形参只有一个小明的时候,输出的结果就是他的默认参数,年龄16,爱好打游戏。当形参写成 小明,20,打篮球的时候,默认的值便不起作用,会输出你传入的值,年龄20,爱好打篮球。
6.关键参数。
其实关键参数和默认参数的差别不是特别大,我们来仔细的研究一下
点击运行,输出结果为:那个孩子叫小明 他今年16 每天跑步;那个孩子叫小华 他今年28 每天工作。关键参数的要点在于,在调用的时候,写出形参的名字,然后给它赋值,这个就是关键的参数,顺序可以随便写,就像第二种调用。
7.*args的用法。
点击运行,输出结果为:('吃饭',);('吃饭', 110, [1, 2, 3], {'name': '小明'}),*args的用法就是会输出一个元组,里面什么都可以存放。
点击运行,输出结果为:小明;10;('aaa',);{'fond': '打游戏'}。
8.函数if判断,返回值。
点击运行,输出结果为:灯已经开着了。当isOpen(False)的时候,会输出,请打开灯,这是return和if判断结合的一个小例子。
9.高级函数的应用。
【1】
点击运行,输出结果为:h--e--l--l--o-- --w--o--r--l--d,这是我们用之前说过的python内部的函数进行操作。那么怎么用人建函数来实现呢?
点击运行,输出结果为:h--e--l--l--o-- --w--o--r--l--d。这就是我们用人建的函数来实现插入。
【2】map的用法。
点击运行,输出结果为:他的考试成绩是79;他的考试成绩是86;他的考试成绩是92;他的考试成绩是61。map里面需要两个值,第一个值必须为函数。第二个值是一个序列。map的用法和for循环十分的相似。依次处理序列里面的所有元素,ba序列里面的每个元素单独的放在函数里面去执行。
【3】reduce的用法
首先需要先引进一个包,from funtools import reduce
点击运行,输出结果为:15。可能你还会不太明白,reduce在函数中起到了什么作用。
点击运行,输出结果为:1的好朋友是2.的好朋友是3.的好朋友是4.。看到这个输出,就应该明白,reduce 它会将序列里面所有的元素操作两次,步骤是,将前面的两个值进行处理,然后这个值再和第三个值进行处理,处理的结果再和下一个值进行处理。所以上方那个程序的实现步骤就是,1+2=3,3+3=6,6+4=10,10+5=15。
【4】匿名函数lambda
点击运行,输出的结果为11;lambda表示该函数为匿名函数,匿名函数后面的x,y,代表接收的函数,:x+y表示要返回x+y的值。
点击运行,输出结果为:[1, 11, 24, 46, 56, 65, 99]。使用匿名函数进行排序,默认的是正序,reverse=False。想获取反序排列的话:
10.局部变量与全局变量。
全局变量:所有函数之外定义的变量。
局部变量:函数内部定义的变量 或者代码块里的变量
函数内部的变量名如果第一次出现,且出现在=前面,即被视为定义了一个局部变量,不管全局域中有没有该变量名,函数中使用的将是局部变量。即使声明了一个新的局部变量。如果这个变量名字和全部变量名字相同,那么局部变量名字会覆盖全局变量名字。
点击运行,输出的结果为:123。
点击运行,输出的结果为:123。
点击运行,输出结果为:123,100。
在局部变量修改全局变量:
点击运行,输出结果为:123;123.
如果不是明显要局部变量和全局变量,能不纠缠就不纠缠。也就是定义变量名字的时候 ,要严格规范一下,避免这些不必要的问题。