1.如何定义函数
>>>def MyFirstFunction():#定义函数 print('这是我创建的第一个函数')#设置函数 >>>MyFirstFunction()#使用函数 这是我创建的第一个函数 >>>def MySecondFunction(name):#定义带参数的函数 print (name + '我爱你') >>>MySecondFunction('python') python我爱你 >>> def add(num1,num2): return (num1 + num2)#将函数运行的结果返回 >>> print(add(1,6))#实测不写print也能得出结果 7
2.函数的参数
>>> def SaySome(name,words): print(name + '>' + words) >>> SaySome('我','你') 我>你 >>> SaySome(words = '你',name = '我') 我>你
3.可变参数
>>> def test(*params): print('参数长度',len(params)) print ('第二个参数',params[1]) >>> test(1,'我',3.14,5,6,7,8) 参数长度 7 第二个参数 我
ps:函数运行的结果本身不能保存,要借助return返回
4.局部变量和全局变量
函数内定义的局部变量不能在外部使用;
外部定义的全局变量可以在函数内部使用,
但是函数内部不能对全局变量进行修改.
在函数内修改全局变量需要用global
>>> def myfun(): global count count = 10 print(10) >>> count = 5 >>> myfun() 10 >>> print(count) 10
5.内嵌函数
>>> def fun1(): print('fun1()正在被调用...') def fun2():#注意:函数内定义的函数只能在函数内部使用 print('fun2()正在被调用...') fun2() >>> fun1() fun1()正在被调用... fun2()正在被调用...
6.闭包
>>> def funx(x): def funy(y): return x * y return funy#注意这里不能加括号 >>> funx(2)(5) 10 >>> i = funx(2)#另一种方法 >>> i(5) 10
7.lambda表达式
>>> lambda x : 2 * x + 1 <function <lambda> at 0x000001E2EEA1AAF0> >>> g = lambda x : 2 * x + 1 >>> g(5) 11
8.常用BIF
filter
此处操作失误导致笔记丢失,待未来补全
#利用lambda简化上个程序 >>> list(filter(lambda x: x%2,range(10)))#注意lambda语句本身是不具备带上对象:如range(10)的功能的 [1, 3, 5, 7, 9]
map
>>> list(map(lambda x : x * 2, range(10))) [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] #主要目的是让lambda定义的函数后能加上范围,方便计算
9.递归
#写一个求阶乘的函数 #自己琢磨的 >>> def jiecheng (x): y=x while y!=1: y=y-1 x=x*y return x
#网课思路 >>>def test(n): result=n for x in range(1,n): result *= x return result
#递归思路 def test1(n): if n == 1:#递归要有一个正确的返回条件 return 1 else: return n*test1(n-1)#递归要有调用自身函数