局部变量:只在当前函数中生效,对全局变量无法造成影响
作用域:局部变量所在区域
全局变量:在程序的最顶层进行定义
如果想要在函数中的局部变量修改全局变量,需要提前声明使用:global 变量 再进行修改
注:列表,字典,集合,类都是可以直接修改的
eg1:

name=ht#全局变量
def change_name(name):
global name#声明要修改全局变量
name=hunter
print("before change_name",name)
print("after change_name",name)
------------------------------------------------
name="hantao"
change_name(name)

eg2:

name=["hantao","ht","hunter"]
def change_name(name):
name[0]="韩涛"
print("name:",name)
------------------------------------------------
change_name
print(name)

递归:在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

def calc(n):
print(n)
if int(n/2) ==0:
return n
return calc(int(n/2))
calc(10)

输出:
10
5
2
1
递归特性:

  1. 必须有一个明确的结束条件,不然会死循环
  2. 每次进入更深一层递归时,要相比上次递归都应有所减少
    3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)
正文到此结束

本文标题:Python基础-作用域、局部变量及递归

本文链接:https://www.hantaosec.com/303.html

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源及链接,不带链接禁止任何转载!访问任何网络安全相关文章,则视为默认接受网络安全文章免责声明 ,请认真阅读。

喜欢我的文章吗?
别忘了点赞或赞赏,让我知道创作的路上有你陪伴。