函数的理解2

1 Python中的递归

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rplz8uGO-1721953155211)(https://i-blog.csdnimg.cn/direct/a58d3eeeea914b6b99a6a6ea67cfeae7.png#pic_center)]

基线条件是一个不再进行递归的条件,即它告诉函数何时停止递归。 递归步骤是函数调用自身的部分,它必须朝着基线条件的方向进

递归的基本结构
基线条件:这是递归的结束条件,如果不满足这个条件,递归将继续进行。
递归步骤:函数在调用自身时,必须改变其状态以向基线条件靠拢。
示例:计算阶乘
阶乘是一个常见的递归示例。阶乘定义为n! = n * (n-1) * (n-2) * … * 1,特别地,0! = 1。

def factorial(n):
    if n == 0:
        return 1
    else:
        return n + factorial(n - 1)  # 这里错误地使用了加法

print(factorial(10))  

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OEkvWX8u-1721953155215)(https://i-blog.csdnimg.cn/direct/9e442b406b7e4f6f919482a9c4ed7fab.gif#pic_center)]

2 函数的空间命名

全局命名空间:包含了在所有模块级别(非函数内部)定义的变量和函数。(村里的事它都管,村长)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sY5Q6tS7-1721953155217)(https://i-blog.csdnimg.cn/direct/41bae8fe6f124e329f0d2848bc0739c9.jpeg)]

局部命名空间:在函数内部定义的变量和函数会存在于该函数的局部命名空间中。(你家里你爹最帅,出了门啥也不是)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i2ZJQJRj-1721953155218)(https://i-blog.csdnimg.cn/direct/549786445488426a93996eda0a55a4c9.jpeg)]

内置命名空间:Python解释器自带的命名空间,包含了所有内置函数和异常等。(系统内定钦差管所有的事)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2hhCelOh-1721953155219)(https://i-blog.csdnimg.cn/direct/b8742c48365d4ea6b07111608f43531e.jpeg)]

3 作用域两种

def my_function():
x = 10 # x 是局部变量
print(x)

y = 20 # y 是全局变量

my_function()
print(y)

全局作用域(整个村)

作用在全局 —— 内置和全局名字空间中的名字都属于全局作用域 ——globals()

局部作用域 (你家)

作用在局部 —— 函数(局部名字空间中的名字属于局部作用域) ——locals()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值