Python3.5函数详解:参数、作用域与递归

0 下载量 179 浏览量 更新于2024-07-15 收藏 1.31MB PDF 举报
"Python3.5基础教程,涵盖函数的定义、调用、参数、作用域、递归及函数重载等核心概念。" 在Python编程语言中,函数是组织良好、可重复使用的代码块,它们可以接受输入(参数)并产生输出(返回值)。在Python3.5中,理解函数的定义和使用是至关重要的。以下是关于Python3.5函数的详细讲解: 1. **函数定义与调用** - 函数定义通常以`def`关键字开始,后跟函数名,然后是圆括号中的参数列表。函数体由缩进的代码块组成。 - 函数调用是通过函数名后面跟上括号来执行的,括号内可以传入参数。 示例: ```python def hello(): print("Hello, World!") hello() # 调用函数 ``` 2. **函数的四种格式** - **无参数无返回值**:函数不接收任何参数,也不返回任何值。 - **有参数无返回值**:函数接收参数,但不返回任何值。 - **无参数有返回值**:函数不接收参数,但返回一个值。 - **有参数有返回值**:函数接收参数,并返回一个值。 3. **函数参数** - **位置参数**:按照顺序传递的参数,函数调用时按位置匹配。 - **关键字参数**:通过参数名指定的参数,允许不按位置顺序传递。 - **默认参数**:在定义函数时提供默认值的参数,如果不提供实参,则使用默认值。 - **不定个数参数**:使用`*args`和`**kwargs`接收额外的位置参数和关键字参数。`*args`接收元组,`**kwargs`接收字典。 4. **作用域** - **局部作用域**:在函数内部定义的变量,只能在该函数内部访问。 - **全局作用域**:在函数外部定义的变量,整个程序都可以访问。在函数内部要修改全局变量,需使用`global`关键字声明。 5. **递归** - **递归函数**:函数在其定义中调用自己的情况称为递归。在Python中,需要注意防止无限递归,可以通过设置`sys.setrecursionlimit()`来限制递归深度。 6. **函数重载(Overloading)** - Python不支持真正的函数重载,即同一函数名但参数列表不同的多个函数。但是,可以通过参数类型和数量来实现类似的功能。 示例代码: ```python def add(a, b): # 两个参数的加法 return a + b def add(*nums): # 多个参数的加法 return sum(nums) print(add(1, 2)) # 调用两参数版本 print(add(1, 2, 3)) # 调用多参数版本 ``` 通过理解这些基本概念,你可以更有效地编写和组织Python3.5代码,创建复用性强且易于维护的函数。在实际编程中,还可以结合装饰器、闭包等高级特性,进一步提升代码的灵活性和可扩展性。