1。Python中的函数是实现某种功能的代码段,可以重复使用。就是以后不要重新发明轮子,遇到那个场景就用那个函数,这就是函数式编程。下面,我定义一个my_func,传入一个HelloWorld,然后打印一个HelloWorlddefmy_func(message):print('Gotamessage:{}'.format(message))#Callthefunctionmy_func()my_func('HelloWorld')#outputGotamessage:HelloWorld简单知识def是函数的声明my_func是函数名message是函数的参数print是函数的主体部分。在函数结束时,调用的结果(return或yield)可以返回,也可以不返回。5)print(result)#Output8可以为函数的参数设置默认值deffunc(param=0):...如果没有传入param,则参数默认为0,如果参数被传入,它将被覆盖默认值。2.多态传入参数可以接受任何数据类型,例如listprint(my_sum([1,2],[3,4]))#output[1,2,3,4]例如stringprint(my_sum('hello','world'))#输出helloworld当然,如果参数数据类型不同,两者不能相加print(my_sum([1,2],'hello'))TypeError:只能将列表(不是“str”)连接到列表相同功能可以应用于整数、列表、字符串等的操作称为多态性。这不是变态。3、函数嵌套函数嵌套是指函数中有函数,称为嵌套函数。deff1():print('hello')deff2():print('world')f2()f1()#输出helloworld函数的嵌套保证了内部函数的调用,内部函数可以只被外部函数调用,不作用于全局作用域。合理使用函数嵌套,提高运行速度。例如,计算5的阶乘。deffactorial(input):ifnotisinstance(input,int):raiseException('inputmustbeaninteger.')ifinput<0:raiseException('inputmustbegreateror等于0')definner_factorial(input):ifinput<=1:return1returninput*inner_factorial(input-1)returninner_factorial(input)print(factorial(5))1204,functionvariablescope如果变量定义在izai函数内部,称为局部变量,只在函数内部有效。当函数执行时,局部变量会被回收。全局变量写在函数外。MIN_VALUE=1MAX_VALUE=10defvalidation_check(value):ifvalueMAX_VALUE:raiseException('validationcheckfails')这里MIN_VELUE和MAX_VALUE是全局变量,但是我们不能在MIN_VALUE函数内部随意改变全局变量的值=1MAX_VALUE=10defvalidation_check(value):...MIN_VALUE+=1...validation_check(5)UnboundLocalError:localvariable'MIN_VALUE'referencedbeforeassignment如果要更改,必须添加全局语句MIN_VALUE=1MAX_VALUE=10defvalidation_check(value):globalMIN_VALUE...MIN_VALUE+=1...validation_check(5)global告诉python解析器,函数内部的变量MIN_VALUE是定义的全局变量,这里输入的是2,所以修改后的值全局变量MIN_VALUE=1MAX_VALUE=10defvalidation_check(value):MIN_VALUE=3...MIN_VALUE=1MAX_VALUE=10defvalidation_check():MIN_VALUE=3print(MIN_VALUE)validation_check()print(MIN_VALUE)#3#1Fornestedfunctions,内部函数不能修改外部函数定义的变量,可以访问。如果要修改,必须加上nonolocaldefouter():x="local"definner():nonlocalx#nonlocal关键字表示这里的x是外部函数outer定义的变量xx='nonlocal'print("inner:",x)inner()print("outer:",x)outer()#outputinner:nonlocalouter:nonlocal不会覆盖defouter():x="local"definner():x='nonlocal'#这里的x是内部函数的局部变量print("inner:",x)inner()print("outer:",x)outer()#outputinner:nonlocalouter:local5、ClosureClosure是在函数中调用函数,一般用return来执行,返回内部调用的函数名,计算一个数的n次方defnth_power(exponent):defexponent_of(base):returnbase**exponentreturnexponent_of#返回值为exponent_ofFunctionsquare=nth_power(2)#计算一个数的平方cube=nth_power(3)#计算一个数的立方square#输出.exponent(base)>cube#Output.exponent(base)>print(square(2))#计算2的平方print(cube(2))#计算立方体of2#输出4#2^28#2^3文源网作品,仅供学习,如有侵权请联系删除。我的公众号【Python圈】汇集了优质的技术文章和经验总结。学习Python的路上肯定会遇到困难,不要慌张,我这里有一套学习资料,包括40+电子书,600+教学视频,涉及Python基础、爬虫、框架、数据分析、机学习等等,别怕学不会!还有学习交流群,一起学习进步~