函数(局部变量与全局变量,函数即变量理论,递归函数)

一.局部变量和全局变量  函数内部:局部变量优先全局变量  局部变量仅限于函数内部使用  通常:全局变量变量名大写       局部变量变量名小写1.global关键字 在函数内部只能读全局变量,利用global进行修改name=‘fjy‘def change_name():  global name  name=‘bcs‘

print(name)##打印结果  fjy错误用法:global在变量名后面name = ["雪花","寒冰"]def snow():  name = "雾霾"  global name  print(‘冬天有‘, name)

snow()  #直接报错

2.函数内部优先读取局部变量name = ["雪","寒冰"]def snow():    global name    name = "雾霾"    print("冬天下",name)    name=‘温暖‘    print(‘冬天有‘, name)

snow()打印结果:冬天下 雾霾冬天有 温暖

3.对于可变类型,利用global可以对内部元素进行操作name = ["雪","寒冰"]def snow():    global name    name[0] = "雾霾"    print("冬天下",name)    name=‘温暖‘    print(‘冬天有‘, name)

snow()

打印结果:冬天下 [‘雾霾‘, ‘寒冰‘]冬天有 温暖

4.关于多重嵌套函数(1)对于里层函数有global时,优先取值全部变量    在这里global有种如同指针指向内存的方式name = "艾欧尼亚"def w():    name = "永不"    def ww():        global name        name =‘放弃‘

        print(name)    ww()w()打印结果:放弃(2)对于多层函数没有global函数没有定义变量就往上层找name = "艾欧尼亚"def w():    name = "永不"    def ww():

        print(name)    ww()w()打印结果:永不

5.nonlocal关键字,指定上一级变量可修改,如果没有就继续往上直到找到为止(但不能到全局变量否则报错)上层有变量:name = "艾欧尼亚"def w():    name = "永不"    def ww():        nonlocal  name        name=‘战无不胜‘        print(name)    ww()w()打印结果:战无不胜

上层无变量:name = "艾欧尼亚"def p():  name=‘牛逼‘  def w():

      def ww():          nonlocal  name          # name=‘战无不胜‘          print(name)      ww()  w()p()打印结果:牛逼

二.函数即变量理论
函数在未调用时,执行到函数,函数名如同变量名,函数体如同字符串封存在内存中。调用时在执行。例如:正常运行def qi():    print(‘祁磊大坏蛋‘)    li()def li():    print(‘历经风是条子‘)qi()运行错误(第二个函数未定义,如同这个变量没有定义)def qi():    print(‘祁磊大坏蛋‘)    li()qi()def li():    print(‘历经风是条子‘)
三.浅谈递归函数真正领悟递归的精髓、灵活地运用递归思想来解决问题必须经过长期使用,是一个漫长的过程。递归特性:1.必须有一个明确的结束条件2.每次进入更深一层递归,规模比上一层递归减少3.递归效率不高,循环越多会导致栈溢出****递归中每一次return都是返还给上一层递归函数,如果中途没有打印,最终只有一个结果
1 def cla(n):
2     print(n)
3     if int(n/2) == 0:
4         return n
5     return cla(int(n/2))
6 print(cla(8))
******84211******cla(8)本身等于1, 8 4 2 1是在执行cla()函数过程中打印出来的原理图

原文地址:https://www.cnblogs.com/snowony/p/11773828.html

时间: 2024-10-02 04:35:44

函数(局部变量与全局变量,函数即变量理论,递归函数)的相关文章

C++局部变量、全局变量、静态变量(堆、栈、静态存储区)

1 static关键字 1.1 隐藏 eg: //a.c文件中 char a = 'A'; void msg() { printf("Hello\n"); } //main.c文件中 extern char a; printf("%c",a); 输出结果:A Hello 所有未加static前缀的全局变量和函数都具有全局可见性,其它的源文件也能访问.a是全局变量,msg是函数,并且都没有加static前缀,因此对于另外的源文件main.c是可见的. 如果加了stat

PYTHON 函数局部变量和全局变量

有这样一段PYTHON代码,从事C语言开发的人都知道,如果定义了全局变量,而函数内没有定义同名的函数变量的话,那么在函数内对该变量的赋值就是对全局变量空间数值的修改, 然后在PYTHON中却不尽相同,在python中的函数中,如果没有明确声明是全局变量,那么python就会为函数创建局部变量,所以函数中操作的变量也是局部变量 count = 5 def myfun(): count = 10 print(count) myfun() print(count) 打印的结果如下 那么如何在函数中修改

PYTHON学习0024:函数---局部变量和全局变量----2019-6-19

1.在函数里面(函数的作用域)定义的变量就叫局部变量.在函数外面的变量就叫全局变量,全局能用. 2.函数里面可以调用全局变量,但函数外面不可调用局部变量.也就是说局部变量的作用域只限于函数内部. 3.如果全局和局部都有一个相同名字的变量,函数查找变量的顺序是由内而外的. 4.如果一个程序里有多个函数内部定义了相同的变量名,则变量名之间互不影响的,因为是同级别的. 5.在函数内部修改全局变量:先声明为全局变量:global后加上变量名 然后给全局变量重新赋值.(注意:必须先用global声明,而后

局部变量和全局变量以及成员变量的区别

import <Foundation/Foundation.h> @interface Person : NSObject { // 写在类声明的大括号中的变量, 我们称之为 成员变量(属性, 实例变量) // 成员变量只能通过对象来访问 // 注意: 成员变量不能离开类, 离开类之后就不是成员变量 \ 成员变量不能在定义的同时进行初始化 // 存储: 堆(当前对象对应的堆的存储空间中) // 存储在堆中的数据, 不会被自动释放, 只能程序员手动释放 int age; } @end @impl

JAVA基础之局部变量与全局变量以及成员变量的区别

局部变量 定义:在方法内定义的变量称为"局部变量"或"临时变量",方法结束后局部变量占用的内存将被释放. 全局变量 定义:全局变量,又称"外部变量",它不是属于哪个方法,作用域从定义的地址开始到源文件结束. 注意事项: 当局部变量与全局变量重名时,起作用的是局部变量. 成员变量 定义:在类体的变量部分中定义的变量,也称为字段. 区别: java中没有全局变量的定义,这是C中的例: class Demo{ int x;// 非静态成员变量,又称为属

[Sass]局部变量和全局变量

[Sass]局部变量和全局变量 Sass 中变量的作用域在过去几年已经发生了一些改变.直到最近,规则集和其他范围内声明变量的作用域才默认为本地.如果已经存在同名的全局变量,从 3.4 版本开始,Sass 已经可以正确处理作用域的概念,并通过创建一个新的局部变量来代替. 全局变量与局部变量 先来看一下代码例子: //SCSS $color: orange !default;//定义全局变量(在选择器.函数.混合宏...的外面定义的变量为全局变量) .block { color: $color;//

理解LoadRunner中的局部变量和全局变量

在C语言中,变量有效性的范围称变量的作用域.不仅对于形参变量,C语言中所有的量都有自己的作用域,按作用域范围不同,可分为局部变量和全局变量两种变量类型. 在LoadRunner中应用全局变量和局部变量的示例脚本如下: 图4.9 LoadRunner 9.5 Web(HTTP/HTML)协议脚本代码截图 上面代码是在LoadRunner 9.5中编写完成,请参见图4.9左侧,其包含一个文件名称为“globals.h”,您可以在该头文件中定义全局变量,这里我们定义了一个全局整型变 量,它的名称为“i

自定义函数及内置函数

动态参数:元组.字典的传值 //直接使用名称调用相当于把元组.字典整个传递给了一个形参 //元组前面加*,使元组里面的值分别传递给形参 //字典前面加**,使字典里面的值分别传递给形参 返回值 //函数被调用后会返回一个指定的值 //函数被调用后默认返回None //return 返回值 //返回值可以是任意类型 //return执行后,函数终止 //区分返回值和打印 局部变量.全局变量 //函数内部的变量为局部变量,函数外定义的变量为全局变量 局部变量前加 global 把局部变量变为全局变量

c语言,全局变量,局部变量,外部函数,内部函数,stasic和extern的复习总结

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 局部变量 定义:在代码块内部定义的变量 作用域:从定义变量的那一行开始,一直到代码块结束 生命周期:从定义变量的那一行开始分配存储空间,代码块结束后,就会被回收 没有默认的初始值 全局变量 定义:在函数外面定义的变量 作用域:从定义变量的那一行开始,一直到文件结尾(能