python函数局部变量、全局变量、递归知识点总结
更新时间:2019年11月15日 08:14:56 投稿:laozhang
在本篇文章里小编给大家整理了关于python函数局部变量、全局变量、递归知识点,有兴趣的朋友们学习参考下。
函数局部变量 全局变量 及其作用域
#简单类型(int str等)变量的局部变量与全局变量及其作用域的关系 name = "xxx" #第一级顶头定义的变量都称为全局变量,其作用域从变量定义的位置开始到此程序结束 def Print_Name(): print("name before change:", name) #由于name在此函数之前已经被定义为全局变量,此处函数读取变量name是读取的全局变量name “xxx”,函数内部就不能再定义其同名局部变量,否则无法区分变量为局部变量还是全局变量 # name = "yyy" #此语句放开以后会报错:IndentationError: unindent does not match any outer indentation level Print_Name() def Change_Name(): name = "yyy" #函数内部首先定义全局变量的同名局部变量,则整个函数内部操作的为局部变量(一个与全局变量同名的临时变量) print("name after change is", name) Change_Name() # yyy实际输出的是局部变量的值 print("global name is", name) # xxx此处访问的是全局变量,因为此print语句不是在Change_Name内部。 #函数内部需要强制对全局变量进行修改,使用global关键字 def Change_global_Name(): global name print("name before change is :", name) name = "yyy" Change_global_Name() # xxx 修改前的全局变量 print("global name is :", name) # yyy此处由于函数内强制声明name为global变量,整个函数内部可以对global进行操作 #复杂数据类型列表 集合 字典等复杂数据结构如果函数外部定义了函数里面是可以不用global声明也操作的是全局变量,没有局部变量一说了 names = ['111', '222', '333'] def Change_Names(): names[0] = "444" print("in function names :", names) Change_Names() #in function names : ['444', '222', '333'] print("global names :", names) #in function names : ['444', '222', '333'] 对于复杂的数据类型,函数内直接操作全局变量,不会再生成局部变量
递归
#函数内部可以调用其它函数,如果函数在内部调用自己就被称为递归函数 def Half_fun(n): print(n) if n < 2: return n Half_fun(n/2) Half_fun(100) #递归特性:1、必须有一个明确的结束条件 2、每次递归调用问题复杂度需要相比上次简化 3、递归会占用大量内存
以上实例很简单,大家可以本次测试下,感谢你的阅读和对脚本之家的支持。
相关文章
selenium+python 去除启动的黑色cmd窗口方法
今天小编就为大家分享一篇selenium+python 去除启动的黑色cmd窗口方法。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-05-05pip安装python库时报Failed building wheel for xxx错误的解决方法
最近在使用pip安装python的时候遇到些问题,所以下面这篇文章主要给大家介绍了关于pip安装python库时报Failed building wheel for xxx错误的解决方法,需要的朋友可以参考下2023-01-01Django celery实现异步任务操作,并在后台运行(守护进程)
这篇文章主要介绍了Django celery实现异步任务操作,并在后台运行(守护进程),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-03-03Django restful framework生成API文档过程详解
这篇文章主要介绍了Django restful framework生成API文档过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-11-11python机器学习Github已达8.9Kstars模型解释器LIME
这篇文章主要为大家介绍了Github已达8.9Kstars的最佳模型解释器LIME的使用示例及功能详解,有需要的朋友可以借鉴参考下,希望能够有所帮助2021-11-11
最新评论