函数1

本文详细介绍了Python函数的基础概念,包括函数的定义与调用、参数类型(如普通参数、默认值参数、可变参数等),以及递归函数的概念与实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:函数
    函数是一段可重用的代码。可以通过输入的参数值,返回需要的结果,并可存储在文件中供以后使用。几乎任何Python代码都可放在函数中。Python为函数提供了强大支持。
    1、函数的定义及调用
格式:
    def 函数名(形参表):
    函数体语句序列
    [return 表达式]    #可选项,即有的函数可以没有返回值。
函数调用:
函数名(实参表)
说明:
函数必须先定义,后使用;
函数名与变量名的命名规则相同,只能包含字母、数字和下划线_,且不能以数字打头。
2、函数的参数
在C、C++中,参数的传递有值传递和引用传递两种方式。Python中任何东西都是对象,所以参数只支持引用传递的方式。
Python通过名称绑定的机制,把实际参数的值和形式参数的名称绑定在一起,形式参数和实际参数指向内存中同一个存储空间。
向函数传递参数时,Python采用按引用传递的方式。这意味着当传递参数时,函数将使用新变量名来引用原始值。
函数的参数类型
形式参数类型(定义函数时):
         普通参数、默认值参数、可变参数

实际参数类型(调用函数时):
         位置实参、关键字实参、解构实参
形式参数类型
普通参数
    def  add(x,y):
            return x + y
默认值参数
函数的参数支持默认值。当某个参数没有传递实际的值时,函数将使用默认参数计算。
带默认值的参数不能位于没有默认值的参数前面。
位置可变参数(*)
在形式参数名称前加一个星号*,则代表使用该形式参数可以接收任意多个参数,而且接收的参数将会以元组的方式组织。
    def  func(*args):
         # args以元组的方式组织传入的实参
          print(args)
    func(1,2,3,4,’abc’)
关键字可变参数(**)
   在形式参数名称前加两个星号**,则代表使用该形式参数可以接收任意多个传入的键-值对参数(关键字实参),而且接收的参数将会以字典的方式组织。
     def  func(**kwd):
         # kwd以字典的方式组织传入的关键字实参
             print(kwd)
     func(name=‘tom’,age=20)
  当位置可变参数(*args)和关键字可变参数(**kwd)一起使用时候,必须先声明位置可变参数(*args),最后声明关键字可变参数(**kwd)
二、递归函数
(1)递归的概念
递归函数可以在函数主体内直接或间接地调用自己,即函数的嵌套是函数本身。
递归是一种程序设计方法,使用递归可以减少重复的代码,使程序变得简洁。
递归的过程分为两个阶段:递推和回归。
递归函数的原理:
第一阶段,递归函数在内部调用自己。每一次函数调用又重新开始执行此函数的代码,直到某一级递归程序结束。
第二阶段,递归函数从后往前返回。递归函数从最后一级开始返回,一直返回到第一次调用的函数体内。即递归函数逐级调用完毕后,再按相反的顺序逐级返回。
(2)递归的实现
一个问题能否用递归实现,看其是否具有下面的特点:
     需有完成任务的递推公式。
结束递归的条件。
编写递归函数时,程序中必须有相应的语句:
一个递归调用语句。
测试结束语句。先测试,后递归调用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值