前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 1. 位置参数与关键字参数尽管这种方式很常见,但是位置参数的一个弊端是必须熟记每个位置的参数的含义。在调用函数 f()时误把最后一个参数当作第一个参数,会得到完全不同的结果: 关键字参数为了避免位置参数带来的混乱,调用参数时可以指定对应参数的名字,甚至可以采用与函数定义不同的顺序调用: 你也可以把位置参数和关键字参数混合起来。首先,实例化参数 ,然后对参数使用关键字参数的方式:
默认参数当调用方没有提供对应的参数值时,你可以指定默认参数值。这个听起来很普通的特性实际上特别有用,以之前的例子为例: 2.不定参数*args位置参数(了解) 无参数调用函数,则什么也不会返回: 给函数传入的所有参数都会以元组的形式返回输出: 这样的技巧对于编写像 print() 一样接受可变数量的参数的函数是非常有用的。如果你函数同时有限定的位置参数,那么 *args 会收集剩下的参数:
**kwargs关键字参数 案例:案例:假设 python 中的 print 不能一次性传入多个参数使用了,让我们自己实现 print 可以传递多个参数的功能。 ![]() 要求:自己编写一个 changed_print 函数实现原本 print 的功能。 ![]() ![]() 3. 一等公民函数在 Python 中,函数是一等对象。编程语言理论家把“一等对象”定义为满足下述条件的程序实体:
在 Python 中,整数、字符串和字典都是一等对象——没什么特别的。接下来的内容将重点讨论把函数作为对象的影响和实际应用。 比如说我要将之前函数修改一个名字,使用新的函数名去调用旧的函数 ![]()
![]()
![]()
@拓展函数的递归(难点)函数的递归(难点)
代码特点
递归阶乘 示例:函数调用本身 ![]() 斐波那契数列斐波那契数列(Fibonacci sequence),又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、 8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的 方法定义:F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2)(n>=3,n∈N*) 每一位数都等于前两位数之和,在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。 第N个数是多少 ![]() ![]()
|
|