python基础(第三章) | 您所在的位置:网站首页 › python求完全数n以内 › python基础(第三章) |
1.5函数!!! 1.5.1 基本函数结构 在上面一些程序中我们已经使用过了一些python自带的一些函数了,比如说print()、input()、range()等。数学上我们定义一个函数是像下面这样的: 在python中,我们定义一个函数是通过def关键字来声明的。 结构如下: Def 函数名(参数): 函数体 Return 返回值 以函数为例: Def f(x,y): Z=x**2+y**2 Return z 函数定义好了,使用语句f(c,c)就可以算出函数数值,完整程序如下: def f(x,y): z=x**3+y**2 return z #注意返回z值 A=f(1,2) print(A) 拓展为键盘输入形式:(这样子就可以计算任何你想输入的任何常数啦) def f(x,y): z=x**3+y**2 return z x=float(input("请输入x的数值: ")) y=float(input("请输入y的数值: ")) A=f(x,y) print("计算结果为:",A) 1.5.2 参数结构 函数可以传递参数的也可以不传递参数。同样的,函数可以有返回值也可以没有返回值。可将python的传参方式归为4类 1.传统参数传递 (1)无参数传递 格式: def func(): print("这是无参数传递") func() #调用func函数即可输出print语句 (2)固定参数传递 def func(x): print("传出的参数为:%s"%x) func("hello") #调用func函数即可传输固定参数hello 2.默认参数传递 Python中默认参数传递的机制作用是能减少重复参数的多次输入,需要注意的是函数允许默认的参数大多数程序语言都支持的 示例代码: def func(x,y=100,z="hello"): #定义参数,之后指令跟随此默认参数定义 print(x,y,z) func(0) func(0,1) func(0,24,"world") func(66,z="hello world") func(44,y=10,z="kkkk") 3.未知参数个数传递 对未知参数个数的传递机制,只需在参数前加个*就可以 示例代码: def func(name,*args): print(name+ " 有以下雅称:") for i in args: print(i) func('赵钱孙','吴总','小吴','老吴','吴大哥') #赵钱孙赋值于name变量,剩余的全部赋值于arg,*符号即代表剩余人名有多少就赋值多少给arg 4.带键参数传递 带键参数传递是指参数通过键值对的方式进行传递。带键参数的传递只需要在参数前面加**符号就可以 示例: def func(**kwargs): print(type(kwargs)) #查询变量类型,打印出来是’dict‘ for i in kwargs: print(i,kwargs[i]) func(aa=1, bb=2, cc=3) print('-------------------') func(x=1,y=3,z='hello') 1.5.3 回调函数 回调函数又叫函数回调,指将函数作为参数传递到另外的函数中执行。例如说将A函数作为参数传递到B函数,然后在B函数中执行A函数。好处是在函数被定义前就可以使用函数,或者对于其它程序提供API进行调用。 示例: def func(fun,args): fun(args) #函数f2传递承接处 def f1(x): print("这是f1函数: ",x) def f2(x): print("这是f2函数: ",x) func(f1,1) func(f2,"hello") 1.5.4 函数的递归与嵌套 函数的递归函数的递归是指函数在函数体中直接或间接地调用自身的现象,递归要有停止条件,否则函数将永远无法跳出递归,进入死循环。 递归的经典应用:编写斐波那契数列 斐波那契数列的函数定义为数列中每一项都等于前面两项的和,公式: F(n)=f(n-1)+f(n-2) n>2 F(n)=1 n |
CopyRight 2018-2019 实验室设备网 版权所有 |