精华内容
下载资源
问答
  • 一、函数全局变量1、什么是全局变量顶着头开始写,没有任何缩进,在py文件的任何位置都能调用#!/usr/bin/env python#_*_ coding:utf8 _*_name="gouguoqi"name="gouguoqi"defchange_name():print ("111",(name)) #...

    一、函数的全局变量

    1、什么是全局变量

    顶着头开始写,没有任何缩进,在py文件的任何位置都能调用

    #!/usr/bin/env python#_*_ coding:utf8 _*_

    name="gouguoqi"name="gouguoqi"

    defchange_name():print ("111",(name)) #这里的name就是调用的全局变量

    change_name()

    C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py111 gouguoqi

    2、全局变量与局部变量的区别

    name="gouguoqi"

    defchange_name():

    name="miaoye" #局部变量

    print ("111",(name)) #这打印的是局部变量

    change_name() #这里函数调用的是局部变量的name

    print (name) #这里是是调用的函数外面的全局变量

    C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py111miaoye

    gouguoqi

    3、global 关键字。想要在函数里面修改全局变量应该如何做

    global name,就代表调用全局的变量name

    专业的说法是global 后面的name是一个指针,一个内存地址,直接调用的那个内存地址

    调用之后在子程序(局部程序)里面再次给name赋值的话就修改了全局变量name了

    name="gouguoqi"

    defchange_name():globalname

    name="miaoye"

    print ("111",(name))

    change_name()print(name)

    C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py111miaoye

    miaoye

    全局作用域是全局

    局部作用于是局部

    变量调用的顺序是先找局部作用域,如果找不到,再往外层找,然后在找全局作用域

    4、人性化的描述全局变量和局部变量

    我们把全局变量当做是一个盒子,局部变量是这个盒子里面的小盒子。这些小盒子是同一个级别的,当程序运行的时候,是从上到下的运行方式,碰到函数之后,先不运行,继续往下走,直到调用函数的时候,才打开函数的子程序进行赋值运行然后出结果

    当自己的盒子里面没有要寻找的变量的时候,就去盒子外面找,外面没有,再去全局找

    如果函数内部没有globe关键字,优先读取局部变量,能读取全局变量,无法对全局变量重新赋值,但是对于可变类型,可以对内部元素进行操作,可以append

    如果函数中有golobe关键字,变量本质上就是全局的那个变量,可读取,可重新赋值

    (4).1

    如果函数中无global关键字,优先读取局部变量,能读取全局变量,无法对全局变

    量重新赋值,但是对于可变类型,可以对内部元素进行操作,可以append remove clear

    如果声明了局部变量,就调用局部变量

    如果没有声明局部变量,就会调用全局变量

    name="苍老师" #这是真正的苍老师肉体

    defgou():

    name= "娃娃"

    print ("我要搞",name)defmiao():

    name= "基"

    print ("我要搞",name)defbei():print ("我要搞",name)

    gou()

    miao()

    bei()

    C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py

    我要搞 娃娃

    我要搞 基

    我要搞 苍老师

    如果变量是一个可变的类型,可以用方法来进行apped remove clear

    name=["苍老师","波多野吉衣"]defgou():

    name.append("基")print ("我要搞",name)

    gou()print(name)

    C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py

    我要搞 ['苍老师', '波多野吉衣', '基']

    ['苍老师', '波多野吉衣', '基']

    (4).2如果函数中有global关键字,变量本质上就是全局的那个变量(指针),可读取,可赋值

    在局部子程序调用全局变量(如果只是调用的话相当于做蜡像)

    name="苍老师" #这是真正的苍老师肉体

    defgou():global name #相当于做了一个苍老师的蜡像,跟本人一模一样

    print ("我要搞",name)defmiao():

    name= "基"

    print ("我要搞",name)

    gou()

    miao()

    C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py

    我要搞 苍老师

    我要搞 基

    (4).3在局部变量中修改全局变量(修改的话相当于玩过了,感觉不过瘾,就换人了)

    name="苍老师" #这是真正的苍老师肉体

    defgou():global name #相当于玩了苍老师的肉体

    name = "波多野吉衣" #感觉不是很好,把苍老师换成了波多野吉衣

    print ("我要搞",name)defmiao():print ("我要搞",name)#因为上面已经换人了,所以下面这人玩的也是波多野吉衣

    gou()

    miao()

    C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py

    我要搞 波多野吉衣

    我要搞 波多野吉衣

    (4.)4

    错误示例,局部变量也有name,全局变量也有name,并且全局变量在局部变量下面的位置

    代码过程是,首先定义了一个全局变量,在局部子程序首先设置了相同名字的局部变量,再引用了全局变量,然后在去打印的时候,就不知道打印的到底是全局变量还是局部变量了,这样写是不行了,所以以后要养成一个习惯就是global一定要放到上面,再工作中我们定义全局变量最好用大写,局部变量小写,这样下面函数一调用 我们一看是大写的就知道是全局变量了

    name="gouguoqi"

    defchange_name():

    name= "阿猫"

    globalnameprint ("111",(name))

    change_name()

    C:\python35\python3.exe D:/pyproject/day14函数/全局变量和局部变量.py111阿猫

    D:/pyproject/day14函数/全局变量和局部变量.py:19: SyntaxWarning: name 'name' is assigned to before globaldeclarationglobal name

    (4).5函数中嵌套函数

    函数的执行过程

    name="北爷" #1 第一步 定义全局变量name

    def huangwei(): #2 第二步 定义一个函数,到49行第二步结束,把这些都放到内存里面加载上,并没有执行

    name = "黄伟" #4.1 定义局部变量name

    print (name) #4.2 打印局部变量name的值 "黄伟"

    def liuyang(): #4.3 定义一个函数,然后把这段到47行的代码又放入了内存,等待下次调用

    name = "刘洋" #4.4.1定义局部变量name

    print (name) #4.4.2打印出局部变量name "刘洋"

    def nulige():#4.4.3 又遇到def了。又把这一部分到45行的代码放入了内存,没有执行。等待下次调用

    name = "喵爷"#4.4.5.1定义了一个局部变量name

    print (name)#4.4.5.2打印局部变量name的值"喵爷"

    print (name)#4.4.4 打印name 刘洋

    nulige()#4.4.5 调用nulige这个函数,开始向上找

    liuyang()#4.4 调用liuyang这个函数,开始向上找

    print(name) #4.5 第五步 打印name 这时候的name的值是"黄伟"

    print(name) #3 第三步 打印name 这时候name="北爷"

    huangwei() #4 第四步 执行huangwei这个函数,开始向上找他

    print(name)#5第五步 打印全局变量name

    def gou():#1

    name = "狗"#2.1

    print (name)#2.2

    def mao():#2.3

    name = "猫"#2.4.1

    print (name)#2.4.2

    def zhu():#2.4.3

    name = "猪"#2.5.1.1

    print (name)#2.5.1.2

    zhu()#2.5.1

    print(name)#2.5.2

    mao()#2.4

    print (name)#2.5

    gou()#2

    C:\python35\python3.exe D:/pyproject/day14函数/hanshu.py

    Name = "beiye" #1 定义一个全局变量

    def weihou(): #2 把从函数到143行的放入内存中,等待被调用

    name = "沉着"#4.1 定义一个局部变量name = 沉着

    def weiweihou(): #4.2 又遇到def 把到141行的代码再次放入内存,等待被调用

    global Name#4.3.1

    Name = "冷静"#4.3.2 把全局变量修改为 "冷静"

    weiweihou()#4.3 调用weiweihou ,开始向上找这个函数

    print(name)#4.4 打印下这个级别的name 是 沉着

    print(Name)#3 打印一下全局变量 Name 等于 beiye

    weihou()#4 调用函数 weihou,开始网上找 weihou这个函数

    print(Name) #5 打印下全局变量 这时候全局变量是冷静了

    C:\python35\python3.exe D:/pyproject/day14函数/hanshu.py

    beiye

    沉着

    冷静

    那我要是想修改我上一级的name呢,而不是修改全局的name呢该怎么做呢

    nonloca 这个关键字就是修改上一级的变量的,我们来测试下,还是上面的例子,改变下

    nonlocal

    修改上一级的变量

    Name = "beiye" #1 定义一个全局变量

    def weihou(): #2 把从函数到143行的放入内存中,等待被调用

    name = "沉着"#4.1 定义一个局部变量name = 沉着

    def weiweihou(): #4.2 又遇到def 把到141行的代码再次放入内存,等待被调用

    nonlocal name#4.3.1

    name = "冷静"#4.3.2 把上一级的name变量修改为 "冷静"

    weiweihou()#4.3 调用weiweihou ,开始向上找这个函数

    print(name)#4.4 打印下这个级别的name 是 沉着

    print(Name)#3 打印一下全局变量 Name 等于 beiye

    weihou()#4 调用函数 weihou,开始网上找 weihou这个函数

    print(Name) #5 打印下全局变量 这时候全局变量是冷静了

    C:\python35\python3.exe D:/pyproject/day14函数/hanshu.py

    beiye

    冷静

    beiye

    展开全文
  • 9.3 函数的分类 以有没有参数: ...函数的内部是可以访问全局变量,但是不能改变(操作)全局变量 变量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量 如果要操作全局变量?----

    9.3 函数的分类

    以有没有参数:
    有参函数
    无参函数

    以有没有返回值:
    有返回值函数
    无返回值函数

    定义者分类:
    系统
    第三方

    9.4 全局变量和局部变量

    全局变量
    在python,定义py文件里面的变量就是全局变量
    在这里插入图片描述
    特点:
    代码运行的时候,变量是始终有效的

    局部变量:
    定义在函数的内部的变量称为局部变量
    在这里插入图片描述
    局部变量的作用域只在函数内有效
    函数的内部是可以访问全局变量,但是不能改变(操作)全局变量
    变量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量
    如果要操作全局变量?--------- global (全局)
    在这里插入图片描述
    值传递:
    在这里插入图片描述
    引用传递(对象):
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • python函数全局变量的使用

    千次阅读 2018-11-28 21:52:18
    python函数全局变量的使用 global i #定义全局变量 i=0 def digui(n): global i #使用全局变量,若无该语句,编译器会认为i为函数内的局部变量 i += 1 if i > 2: return n else: return digui(n-1) + digui...

    python函数中全局变量的使用

    global i #定义全局变量
    i=0
    def digui(n):
    global i #使用全局变量,若无该语句,编译器会认为i为函数内的局部变量
    i += 1
    if i > 2:
    return n
    else:
    return digui(n-1) + digui(n-2)

    展开全文
  • 原博文2019-12-29 15:33 −python在引用变量的时候尤其要注意变量的作用域,在函数里引用不可变类型变量的时候,函数执行结束后是不会改变全局变量的值的;若想在函数改变不可变类型全局变量的值时,引用的时候要...

    原博文

    2019-12-29 15:33 −

    python在引用变量的时候尤其要注意变量的作用域,在函数里引用不可变类型变量的时候,函数执行结束后是不会改变全局变量的值的;若想在函数里改变不可变类型全局变量的值时,引用的时候要用”global arg";对于可变变量,函数执行结束后全局变量的值是回被改变的,如下:(说明一下,pytho...

    相关推荐

    2019-12-24 14:53 −

    目录

    Pythone变量类型

    变量赋值

    标准数据类型

    数据类型转换

    Python 变量类型

    变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可...

    2019-12-19 10:17 −

    一、python基本数据类型:python3有6个标准的数据类型(区别于数字类型):  1、Number(数字): a、当你指定一个值的时候,Number对象就会被创建,如var1 = 1。另外,一个变量可以通过赋值指向不同类型的对象。 b、内置的type()可以用来查询变量所指的对象类型。 ...

    2019-12-20 17:45 −

    一、

    Python 是一种解释型语言

    Python 是交互式语言

    Python 是面向对象语言

    二、

    Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠(\)来实现多行语句,在 [], {}, 或 () 中的多行语句,不需要使用反斜杠(\)。

    三、

    python中数字有四种类型:...

    2019-12-10 02:16 −

    list(目录):

    内容可变,可重复,例如:

    >>> a=['wen','wen']

    >>> a

    ['wen', 'wen']

    可以通过a[0]访问,可使用append,pop,insert操作。

    tuple(元组):

    内容不可变,可重复,例如:

    >&g...

    2019-11-28 23:13 −

    一、三级菜单程序练习

    要求:

    1.打印省、市、县三级菜单

    2.可返回上一级

    3.可随时退出程序

    data = { '北京': { "昌平": {&nb...

    2019-12-19 16:00 −

    一、*args的使用方法

    *args 用来将参数打包成tuple给函数体调用

    例子一:

    输出结果以元组的形式展示:

    &n...

    2019-12-24 13:08 −

    在前一篇文章中我们对 python set集合 做了详细的讲解,而本文讲解的 frozenset集合 其实和set集合类似!区别在于frozenset集合不能修改/添加/删除,其他功能和set集合一样,这就有点类...

    2019-12-19 18:05 −

    list 是python的一种内置数据类型即列表。list是一种有序的集合,其中的元素可以随时添加和删除。

    常用的列表操作方法

    # -*- encoding: utf-8 -*- # 定义一个空列表

    TestList = []

    print(TestList) # 给列表添加元素

    # 将元素插入到列表...

    comment.png

    0

    attention.png

    105

    2019-12-14 22:03 −

    python中变量不需要事先声明,这是因为python中的变量是以内容为基准,不像其他语言如c语言是以变量名为基准,所以只要你的数字内容是5,不管你起什么名字,这个变量的 ID 是相同的,同时也就说明了 python 中一个变量可以以多个名称访问。

    需要使用时直接赋值即可。python变量是没有类型的...

    comment.png

    0

    attention.png

    109

    展开全文
  • python 函数 def 全局变量

    千次阅读 2020-08-28 08:56:31
    # 函数的话有一个需要注意的点是全局变量和局部变量,在一个函数中如果有与全局变量名称相同的话默认使用的是局部变量 # 如果没有相同的话,默认print的是全局变量,为什么说是print,因为你除了print其他的都是要...
  • # 这是一个全局变量 # 可写函数说明 def sum(arg1, arg2): # 返回2个参数的和." # total = arg1 + arg2; # total在这里是局部变量. # print "函数内是局部变量 : ", total # return total; # ...
  • 今天在写python代码的时候遇到一个问题,我在函数外面定义了一个全局变量onhit判断我是否对按钮进行点击,若点击之后会切换这个按钮的值,但是在函数内部却出现了报错,代码如下 import tkinter as tk window = tk....
  • 一、函数全局变量 1、什么是全局变量 顶着头开始写,没有任何缩进,在py文件的任何位置都能调用 #!/usr/bin/env python # _*_ coding:utf8 _*_ name="gouguoqi" name="gouguoqi" def change_...
  • 如果在函数中出现global 全局变量的名字那么这个函数中即使出现和全局变量名相同的变量名 = 数据也理解为对全局变量进行修改,而不是定义局部变量,gloal a,b return return除了能够将数据返回之外,还有一个隐藏...
  • 本文实例讲述了python通过函数属性实现全局变量的方法。分享给大家供大家参考。具体分析如下:python函数可以定义属性,而且是全局的,这个非常好用,例如用于数字累加,你不用专门去定义一个全局变量,使用函数的...
  • 如何在一个python函数内部修改全局变量python函数内部修改全局变量,需要使用global关键字,这样的答案只是一个粗浅的理解,实际上,我们还要考虑全局变量的类型,可变对象与不可变对象在这个问题上的处理方式以及...
  • https://www.cnblogs.com/victorm/p/9126380.html  
  • python 函数内部修改全局变量

    万次阅读 2018-06-12 11:26:05
    有一个全局file_content 的list,在函数内部向其append...对全局变量进行赋值修改,需要进行显示global声明 每一次读取file_content时候,读取完或者开始读取的时候要重新对该list清空, 防止每次读取都会将上一...
  • 全局变量是编程语言中常见的一种变量,通过全局定义,可以是某对象函数创建,也可以是本程序任何位置创建,能够被本程序中的所有对象或函数进行引用,全局变量的定义有利于程序的变量共享,简化了添加和修改的程序。...
  • 初学python时候,关于全局变量的各种问题不是容易的,小编曾经系统的跟着老师学习了一遍,如果有小伙伴和小编一样,想要知道全局变量内容,可以看下自己是否遗漏些内容,梳理一下,或者可以跟着小编看一下内容。...
  • Python3——局部变量和全局变量python3全局变量,在函数里定义的变量就在函数里定义的变量就叫局部变量,定义在函数外部的一级代码的变量叫全局变量结果:jakealex两个变量虽然都叫name但不是一回事,互不相干如果...
  • python中定义全局变量可以使用global关键字global介绍在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用域是全局变量。此时用global语句就...
  • 主要介绍了Python字典,函数,全局变量代码解析,具有一定借鉴价值,需要的朋友可以参考下。
  • 函数不能直接修改全局变量的引用 在函数内部,可以通过全局变量的引用获取对应的数据 但是,不允许直接修改全局变量的引用——使用赋值语句修改全局变量的值 ...
  • Below is my codeglobal PostgresDatabaseNameSchemaglobal RedShiftSchemaNamePostgresDatabaseNameSchema = NoneRedShiftSchemaName = Nonedef check_assign_global_values():if not PostgresDatabaseNameSchema:P...
  • 函数局部变量 全局变量 及其作用域 #简单类型(int str等)变量的局部变量与全局变量及其作用域的关系 name = xxx #第一级顶头定义的变量都称为全局变量,其作用域从变量定义的位置开始到此程序结束 def Print_Name...
  • 请看问题代码 提出问题: 本意就该是 先使用全局变量a...否则看变量是否是外层函数的闭包变量,再看它是否只全局变量,最后看它是否是内建名字空间里的变量 (3) a += 1 是一个典型的赋值语句,因此 a 一定是局部变
  • 运行程序中发现已经有值的变量,返回的值是空的,又找不到原因,其实这是因为变量不是全局变量的原因工具/原料pythonpycharm电脑 win 7 64位方法/步骤1首先我们先写一个函数,然后在函数外用这个变量你会发现这是...
  • global语句的作用在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用域是全局变量。此时用global语句就可以变成这个任务,也就是说没有用...
  • 在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用域是全局变量。此时用global语句就可以变成这个任务,也就是说没有用global语句的情况下...
  • 例如 要改变count全局变量 def MyFun(): global count count = 10 print(count) 加上global 关键字即可 内嵌函数:fun2() 闭包:FunY(y)就是一个闭包
  • 1、在函数里面(函数的作用域)定义的变量就叫局部变量。在函数外面的变量就叫全局变量,全局能用。2、函数里面可以调用全局变量,但函数外面不可调用局部变量。...5、在函数内部修改全局变量:先声明为全局变...
  • 今天前端转python同事问我,在A函数修改全局变量,在B函数使用该变量怎么不生效 原因 因为python的变量与JS的不一样,是不需要声明的,所以修改到的只是局部变量,print输出"Hello" name = 'Hello' def changeName...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 119,594
精华内容 47,837
关键字:

python函数修改全局变量

python 订阅