Python基础巩固:函数与递归解析
需积分: 0 154 浏览量
更新于2024-08-29
收藏 83KB PDF 举报
"这篇资料主要讲述了重新学习Python入门知识的重要性,强调了基础知识对于后续学习的支撑作用,尤其在遇到技术瓶颈时,回顾基础能够帮助提升信心和弥补不足。作者分享了从Jupyter Notebook中学习的经验,并感谢B站UP主‘字节课’提供的Python原教程。内容涵盖函数的定义、内嵌函数的使用、函数作为参数和返回值的调用、函数闭包的概念以及函数递归的示例。此外,还提及了切片操作,但未给出具体细节。"
在Python编程中,函数是组织代码的基本单元,`def`关键字用于定义函数。例如,定义一个名为`a`的函数可以写作`def a():`。函数可以包含任何数量的语句,用于执行特定任务。
内嵌函数是一种在另一个函数内部定义的函数,它们只能在包含它们的函数内部被调用。这样的设计有助于封装和隐藏内部逻辑。例如,函数`b`是函数`a`的内嵌函数,`c`是`b`的内嵌函数。在下面的例子中,`a()`函数可以调用`b()`,但不能直接调用`c()`,因为`c()`是`b()`的局部变量,只在`b()`的作用域内有效:
```python
def a():
print("函数a")
def b():
print("函数b")
def c():
print("函数c")
c() # 这里可以调用c()
b()
c() # NameError: name 'c' is not defined,因为c()在a()的作用域外无效
a()
```
函数可以作为参数传递给其他函数,也可以作为返回值。在作为参数的示例中,我们可以将函数`b`传递给`a`作为参数,然后在`a`内部调用`b`:
```python
def a(x):
x()
def b():
print(666)
a(b) # 输出两次666,因为x()即为b()
```
同样,函数可以作为返回值,例如`a`函数返回`b`函数的引用,这样`i`变量就等于`a`函数,可以像调用`a`一样调用`b`:
```python
def a():
print("hello", "world")
def b():
return a
i = b() # i现在等同于a函数
i() # 调用i相当于调用a函数,输出"hello world"
```
函数闭包是指一个函数能够记住它被创建时的环境,即使外部环境已经改变。例如,`x`函数返回一个内部函数`y`,`y`记住`x`的参数`a`:
```python
def x(a):
def y(b):
return a + b
return y
z = x(2) # z现在是一个闭包,记住a=2
print(z(3)) # 输出5,因为z()相当于y()(3),y记住a=2
```
函数递归是指函数在其定义中调用自身。在计算阶乘时,递归非常有用:
```python
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n - 1)
print(factorial(5)) # 输出120,5的阶乘
```
切片操作在Python中用于获取序列(如列表、元组或字符串)的一部分。虽然在提供的内容中没有详细介绍,但基本语法是`sequence[start:stop:step]`,其中`start`是起始索引,`stop`是结束索引(不包括),`step`是步长。例如,`a[1:4:2]`将从索引1开始,每隔一个元素取一个,直到索引4(不包括)。如果省略`step`,默认值为1。如果`start`或`stop`省略,则从序列开头或结尾开始。
2023-06-13 上传
2021-12-30 上传
2024-10-29 上传
2024-12-27 上传
2023-02-21 上传
2022-09-24 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38608379
- 粉丝: 7
- 资源: 918