前言:
现在姐妹们对“python计算数字n阶乘”大体比较珍视,各位老铁们都需要剖析一些“python计算数字n阶乘”的相关文章。那么小编也在网上收集了一些对于“python计算数字n阶乘””的相关内容,希望大家能喜欢,朋友们快快来学习一下吧!函数参数的定义(个数可变的位置形参)
【个数可变的位置参数】 1)自定义函数时,可能无法事先确定传递的位置实参的个数时(需要根据实际情况来),这种情况就需要使用可变的位置参数。 (2)使用 * 定义个数可变的位置形参 3)返回值结果为一个元组
# 函数定义时 可变的位置参数 只能是1个参数def fun(*args): print(args)fun(10)fun(10,20,30)函数参数的定义(个数可变的关键字形参)
【个数可变的关键字形参】 1)自定义函数时,无法事先确定传递的关键字实参的个数时,使用可变的关键字形参。 2)使用 ** 定义个数可变的关键字形参。 3)返回值结果为一个字典
# 可变的关键字参数 只能是1个参数def fun1(**args): print(args)fun1(a=10)fun1(a=10,b=20,c=30)def fun2(*agrs1,**args2): pass'''def fun3(**args1,*args2): pass在一个函数的定义过程中,既有个数可变的位置形参,又有个数可变的关键字形参:【个数可变的位置形参必须放在个数可变的关键字形参前定义】'''函数的参数详解
# 自定义列表数据lst = [11,22,33]# 直接调用函数传递列表 TypeError: fun() missing 2 required positional arguments: 'b' and 'c' 函数缺少2个必须的位置参数# fun(lst)# * 表示在函数调用时,将列表中的每个元素都转换为位置实参传入fun(*lst)# 关键字实参调用函数fun(a=100,b=300,c=200)# 自定义字典数据dic= {'a':111,'b':222,'c':333}# 直接调用传参 TypeError: fun() missing 2 required positional arguments: 'b' and 'c' Fun()缺少2个必需的位置参数:'b'和'c'# fun(dic)fun(**dic)# 自定义函数 【c,d两个参数只能采用关键字实参传递】def fun(a,b,*,c,d): print('a=',a,'\t','b=',b,'\t','c=',c,'\t','d=',d)# TypeError: fun() takes 2 positional arguments but 4 were given 【fun()接受2个位置参数,但给出了4个】# fun(10,20,30,40)fun(10,20,c=30,d=40)# 函数定义时的形参的顺序def fun(a,b,*,c,d,**args): passdef fun(*args,**args1): passdef fun(a,b=10,*args,**args1): pass变量的作用域
1)程序代码能够访问该变量的区域称为变量的作用域;2)根据变量的有效范围划分: a)局部变量:在函数内定义并使用的变量,只在函数内部有效;局部变量使用 global 声明, 这个变量就会变成全局变量。 b)全局变量:函数体外定义的变量,可作用于函数内外
# 自定义函数 【函数体内定义的变量c称为局部变量;a,b函数的形参,作用范围也是函数内部,相当于局部变量】def fun(a,b): c = a+b print(c)# 函数体内定义的变量值 使用global声明,就变成了全局变量def fun3(): global age age = 18 print('函数体内输出变量值:',age)fun3()print('函数体外输出变量值:',age)# 函数体外直接调用局部变量 【NameError: name 'a' is not defined 提示:变量'a'没有定义】# print(a)# 自定义一个全局变量(函数内部和外部都可以使用)name = '张三'print('自定义原始变量值:',name)def fun1(): print('函数体内输出自定义的全局变量:',name)fun1()递归函数
【什么是递归函数?】 在一个函数的函数体内调用了该函数本身,这个函数就称为递归函数。【递归函数的组成部分】 递归调用与递归终止条件【递归的调用过程】 每递归调用一次函数,都会在栈内存分配一个栈帧; 每执行完一次函数,程序都会释放对应的空间。【递归的优缺点】 缺点:内存再用多,效率低 优点:代码简单
使用递归计算阶乘
# 自定义函数计算阶乘def fac(n): if n == 1: return 1 else: return n*fac(n-1)print('计算阶乘:',fac(6))斐波那契数列
# 自定义函数计算 斐波那契数列def fib(n): if n == 1: return 1 elif n == 2: return 1 else: return fib(n-1)+fib(n-2)print('求第N位上的斐波那契数列值:',fib(6))# 输出斐波那契数列前N位的值for i in range(1,7): print('输出斐波那契数列前N位的值',fib(i))
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #python计算数字n阶乘