初学Python学习日志(七)

Python(七)

函数

#什么是函数
函数就是执行特定任务已完成特定功能的一段代码
(意思是该需要它发挥能力的时候用它)
#为什么需要函数
1.复用代码
2.隐藏实现细节
3.提高可维护性
4.提高可读性便于调试
#函数的创建
语法格式:def 函数名('[定义参数对象(形参)]'):
            函数体 
            [return XXX]
#函数的调用
函数名('[实际参数值(实参)]')
#函数的参数传递
函数调用的参数传递
1.位置实参
根据形参对应的位置进行实参传递
2.关键字实参
根据形参名称进行实参传递
#Ps.关于形参和实参
1.形参为位于函数的定义处
2.实参位于函数
#在函数的调用过程中
1.如果是对象是'不可变的',则在函数体的修改不会影响实参
2.如果是对象是'可变的',则在函数体的修改会影响实参
#函数的返回值
1.如果函数没有返回值,return可以省略不写
2.如果函数返回1个值时,直接返回类型即可
3.如果函数返回多个值时,结果是'元组'
#创建函数时是否需要设置返回值?
视情况而定
#函数的参数定义
1.函数的默认值参数
·函数定义时,给形参设置默认值,
只有与默认值不符的时候才需要传递实参。
·当不指定实参时,则采用形参设置的默认值
2.个数可变的位置参数
·定义函数时,可能无法事先确定传递的位置实参的个数时,使用可变的位置参数
·使用'*'定义个数可变的位置形参,但只能定义一个
·结果为一个'元组'
3.个数可变的关键字参数
·定义函数时,无法事先确定传递的关键字实参的个数时,使用可变的关键字形参
·使用'**'定义个数可变的关键字形参,但只能定义一个
·结果为一个'字典'
#ps:在一个函数的定义过程当中,定义可变的既有位置形参和关键字形参时,位置要放在关键字前面

#变量的作用域
程序代码能访问该变量的区域
根据变量的有效范围可分为:
1.局部变量
在函数定义并使用的变量,值在函数内部有效,局部变量使用global声明,这个变量就会变成局部变量
2.全局变量
函数体外定义的变量,可作用于函数内外
#递归函数
1.什么是递归函数
在一个函数的函数体内调用了该函数本身
2.递归的组成部分
递归调用和递归终止条件
3.递归的调用过程
每递归调用一次函数,都会在栈内存分配一个栈帧
每执行完一次函数,都会释放相应的空间
4.递归的优缺点
缺点:占用内存多,效率低下
优点:思路和代码简单
eg:使用递归函数,求一个数的阶乘 
def fac(n):
    if n==1:
        return 1
    else:
        return n*fac(n-1)
    print(fac(n))
eg:典型例子斐波那契数列
def fib(n):
    if n==1:
        return 1
    elif n==2:
        return 2
    else:
        return fib(n-1)+fib(n-2)
    ##n表示在数列中的第几位(位置索引)
   print(fac(n)) 
#如果想要输出这个数列中的指定数列:
for i in range(开始位置,结束位置):
    print(fib(i))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值