python函数基础知识

目录

前言

一、函数的定义

        Ⅰ、函数的创建

        Ⅱ、函数的参数 

二、函数的变量

三、递归函数(递推,回归)


前言

        什么是函数?函数就是执行特定任务和以完成特定功能的一段代码,那为什么要用到函数呢?是为了复用代码,隐藏实现细节,提高可维护性,提高可读性便于调试等等。那接下来介绍下函数的常见基础知识吧。

一、函数的定义

        Ⅰ、函数的创建

                函数的创建是通过def关键字来创建的。

                这就是一个最简单的函数表示方式

                函数的调用也很简单,就是直接:函数名(参数)例如:最后得出c等于3。

def main(a,b):
    return a+b
c = main(10,20)
print(c)

        Ⅱ、函数的参数 

                知道了函数是怎么创建的,那么接下来了解下什么是函数的参数和是怎么传递的吧。

                函数的参数分为实参和形参。函数定义时,给形参设置默认值,只有与默认值不符的时候才需要传递实参。

def main(a,b = 10):
    print(a + b)
main(20)
main(20,30)

运行结果

                 位置实参:根据形参对应的位置进行实参传递 参数一对一进行传递。

                关键字实参:根据形参名称进行实参传递参数根据名字进行传递。

                实参名称和形参名称可以不一致。

                在函数使用过程中,进行参数的传递,如果是不可变对象,在函数体的修改不会影响实参的值。

                如果是个数可变的位置参数:①定义函数时,无法确定传递的位置实参的个数,使用可变的位置参数。②使用*定义个数可变的位置形参。③结果为一个元组且可变的位置参数,只能是一个。

def main(a,b,c):
    print(a + b +c)
main(1,2,3)    #函数调用的参数传递,叫做位置传参
lis = [2,3,4]
main(*lis)  #现在调用,将列表中的每个元素转换成位置实参传入

                如果是个数可变的关键字形参: ①定义函数时,无法确定传递的关键字实参的个数时,使用可变的关键字形参。②使用**定义个数可变的关键字形参。③结果为一个字典且个数可变的关键字参数,只能是一个。

def main(a,b,c):
    print(a + b +c)
main(a = 1,b = 2,c = 3)    #关键字实参
lis = {'a':2,'b':3,'c':4}
main(**lis)  #现在调用,将列表中的每个元素转换成关键字实参传入

                 注意:在一个函数定义过程中,既有个数可变的关键字形参,也有位置参数,位置参数必须放在关键字形参前面

二、函数的变量

        变量的作用域:程序代码能访问该变量的区域。

        根据变量的有效范围范围可分:局部变量:在函数内定义并使用的变量,只在函数内部有效,局部变量使用global声明,这个变量就会成全局变量。全局变量:函数体外定义的变量,可作用于函数内外。

a = 10  # 先定义一个全局变量
print(a)      # 输出全局变量
def main():
  global a      # 利用global重新定义变量a
  a = 100
  print(a)
main()
print(a)  #输出的是100,说明变量a已经被重新定义了,变成了全局变量

运行结果

三、递归函数(递推,回归)

        如果在一个函数的函数体内调用了该函数本身,这个函数就称为递归函数,递归组成部分:递归调用与递归终止条件

       递归地调用过程:每递归调用一次函数,都会在栈内分配一个栈帧;每执行完一次函数,都会释放相应的空间

       占用内存多,效率低;思路和代码简单

def mian(a):
  if a == 1:
    return 1
  return a * mian(a - 1)
a = mian(3)
print(a)  #输出6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值