目录
前言
本篇主要展现变量的作用域,以及python中的递归函数
一、变量的作用域
变量的作用域:
程序代码能访问该变量的区域
根据变量的有效范围可分:
局部变量:在函数内定义并使用的变量,只在函数内部有效,局部变量使用global 声 明,这个变量就会成全局变量;
全局变量:函数体外定义的变量,可作用于函数内外
示例代码如下:
def fun(a, b):
c = a + b # c,就称为局部变量,因为c是在函数内进行定义的变量;a,b为函数的形参,作用域范围也是函数内部,相当于局部变量
print(c)
name = '温华' # name的作用范围为函数的内部外部,所以称为全局变量
print(name)
def fun2():
print(name)
fun2()
def fun3():
global age # 函数内部定义的变量,局部变量,局部变量使用global,这个变量实际上就成了全局变量
age = 20
print(age)
fun3()
print(age)
二、递归函数
什么是递归函数:
如果在一个函数体内调用了该函数本身,这个函数就称为递归函数
递归的组成部分:
递归调用与递归终止条件
递归的调用过程:
每递归调用一次函数,都会在栈内存分配一个栈帧
每执行完一次函数,都会释放相应的空间
递归的优缺点:
缺点:占用内存多,效率低下
优点:思路和代码简单
示例代码
# 使用递归来计算阶乘
def fun(n):
if n == 1:
return 1
else:
return fun(n - 1) * n
a = int(input('请输入要计算的阶乘数:'))
print(fun(a))
# 斐波拉契数列
def fun1(m):
if m == 1 or m == 2:
return 1
else:
return fun1(m - 1) + fun1(m - 2)
b = int(input('请输入数字:'))
print(fun1(b))
结果: