Python3.5函数详解:参数、作用域与递归
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代码,创建复用性强且易于维护的函数。在实际编程中,还可以结合装饰器、闭包等高级特性,进一步提升代码的灵活性和可扩展性。
2020-12-24 上传
2022-05-04 上传
点击了解资源详情
2020-12-23 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38725260
- 粉丝: 2
- 资源: 909
最新资源
- UTD Comet Calendar-crx插件
- linuxboot:LinuxBoot项目正在努力使Linux能够在所有平台上替换固件
- elk-examples:麋鹿的示例集合
- SoftwareArchitect:通往软件架构师的道路
- Challenges in Representation Learning: Facial Expression Recognition Challenge(表征学习中的挑战:面部表情识别挑战)-数据集
- foundryvtt-lexarcana
- interpy-zh::blue_book:《 Python进阶》(中级Python中文版)
- 水平滚动菜单(Menu)效果
- food-drinkweb
- LED.zip_单片机开发_C/C++_
- distributed-mining-github
- Spring 2.0 技術手冊
- 信呼在线客服系统 1.0.0
- ant-design-pro-V5-multitab:基于 ant design pro V5 版本实现多标签切换 基于umi插件 umi-plugin-keep-alive 实现 (目前只支持layout
- pinba服务器:简单快速的pinba服务器,在Clickhouse中存储
- webgaim-开源