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

  有这样一段PYTHON代码,从事C语言开发的人都知道,如果定义了全局变量,而函数内没有定义同名的函数变量的话,那么在函数内对该变量的赋值就是对全局变量空间数值的修改,

然后在PYTHON中却不尽相同,在python中的函数中,如果没有明确声明是全局变量,那么python就会为函数创建局部变量,所以函数中操作的变量也是局部变量

count = 5

def myfun():
    count = 10
    print(count)

myfun()
print(count)

打印的结果如下

那么如何在函数中修改全局变量的数值呢,这里就用到了一个关键字,global,将代码就行如下修改,即可得到正确的数值

count = 5

def myfun():
    global count
    count = 10
    print(count)

myfun()
print(count)

时间: 2024-09-30 04:36:29

PYTHON 函数局部变量和全局变量的相关文章

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

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

python入门基础教程07 python的局部变量和全局变量

局部变量 要谈局部变量和全局变量的技术前提是对函数有一定的理解,我们先在这里简单说明一下Python的函数,Python有自带的函数也可以使用第三方工具包了外部引用函数,有的时候用户自己可以自主开发一些特定功能的函数我们称之为自定义函数.用户怎么才能自己定义函数呢?Python 规定的自定义函数语法结构如下: def function_name(parameters): (TAB)statement1 (TAB)statement2 (TAB)statement3 (TAB)etc. 第1行是定

Python的局部变量和全局变量

在python中,引用全局变量有些特殊的地方.我们来看代码例子. >>> num=1 >>> def test(): ... print num ... value = num+1 ... print value ... >>> test() 1 2 上面代码先定义了一个全局变量num,这时我们就可以在函数内部随便使用这个全局变量. 但是如果我们要在函数内部修改全局变量,写法就有些特殊了,如: >>> num=1 >>&g

python基础--局部变量与全局变量

首先来看两张图,局部变量与全局变量的区别: 局部变量: class MyClass(): def a(self): n=100 print('a中的n数值为:%d'%(n)) def b(self): n=n+200 print('b中的n数值为:%d'%(n)) 这个时候就会报错,函数b中的n=n+200会显示n未定义错误,原因是n只是在函数a中定义了一个值100,但是函数b中并未赋值,如果还是要使用n这个数值,就可以定义一个全局变量,表示区分我这里写成_n 全局变量: _n=1111 cla

python基础局部变量、全局变量

局部变量的作用域只作用与当前函数块(或代码块)中,对函数块(或代码块)之外的重名变量,没有任何影响. 在函数块(或代码块)中,局部变量可用通过global关键字声明变量来改变在函数块(或代码块)之外对该变量做的操作. 在函数里面定义的global全局变量,最好不要在函数里面改全局变量. 全局变量 作用域为整个程序包括函数中没有重名变量的代码块,如果有重名的,在函数中定义的局部变量起作用,全局变量不起作用. 变量为整数或字符型,最好不要在函数中做修改,其他类型的可以. 原文地址:https://w

Python基础局部变量、全局变量,递归的特性——07

局部变量与全局变量 如果函数的内容无global关键字,优先读取局部变量,能读取全局变量,无法对全局变量重新赋值,但是对于可变类型,可以对内部元素进行操作. 如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值. 递归 特性: 1.必须有一个明确的结束条件 2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少 3.递归效率不高,递归层次过多会导致栈溢出 例: def calc(n): if int(n/2) == 0: return n return (int(n/

python(10)——局部变量、全局变量

局部变量:在局部生效的,出了这个变量的作用域,这个变量就失效了.函数内部定义的变量就是局部变量,函数运行完就释放该变量内存 全局变量:在整个程序里面都生效的,在程序最前面定义的都是全局变量,全局变量如果要在函数中修改的话,需要加global关键字声明,如果是list.字典和集合的话,则不需要加global关键字,直接就可以修改 . 尽量少用全局变量,原因:1.若全局变量被修改,影响较大:2.全局变量在python文件运行完才会释放,占内存 name ='wangchan' #全局变量 每个函数里

Python中局部变量与全局变量的解释

num = 5 def  func(): num += 1 print(num) print(num) 输出:UnboundLocalError: local variable 'num' referenced before assignment 翻译:局部变量错误:变量 "num" 未被定义就被应用了.由此再次证明了这里定义了一个局部变量,而不是使用的全局的 "num" 总结:当已经在函数体外的变量已经被定义为全局变量后,在函数体内又被重新赋值一遍,这时的变量在函

Python函数之返回值、作用域和局部变量

一.函数返回值 说到返回值,相信大家肯定都认识,没错,就是return. 所谓返回值可以这样理解:函数外部的代码要想获取函数的执行结果,就可以在函数里用return语句把结果返回. 那具体怎么用呢?接着往下看: #!/usr/bin/env python3 #-*- coding:utf-8 -*- # write by congcong # return 表示一个程序的结束,他可以返回任意的元素,列表或字典 def stu_info(name,age,course): print(name,a