四川省住房和城乡建设厅网站是多少,网站界面设计需要,小程序api抓取,想做网站濮阳网站建设函数局部变量 全局变量 及其作用域 #简单类型(int str等)变量的局部变量与全局变量及其作用域的关系name xxx #第一级顶头定义的变量都称为全局变量#xff0c;其作用域从变量定义的位置开始到此程序结束def Print_Name():print(name before change:…函数局部变量 全局变量 及其作用域 #简单类型(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 levelPrint_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 nameprint(name before change is :, name)name yyyChange_global_Name() # xxx 修改前的全局变量print(global name is :, name) # yyy此处由于函数内强制声明name为global变量整个函数内部可以对global进行操作#复杂数据类型列表 集合 字典等复杂数据结构如果函数外部定义了函数里面是可以不用global声明也操作的是全局变量没有局部变量一说了names [111, 222, 333]def Change_Names():names[0] 444print(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 nHalf_fun(n/2)Half_fun(100)#递归特性1、必须有一个明确的结束条件 2、每次递归调用问题复杂度需要相比上次简化 3、递归会占用大量内存以上实例很简单大家可以本次测试下感谢你的阅读和对聚米学院的支持。