少儿python编程之局部变量与全局变量

少儿python编程之局部变量与全局变量

python中定义一个变量很简单,不需要声明类型。只要直接取一个名字,并且要让这个名字得到一个值(或指向一个对象)。
这个名字也叫标识符,用来标识一个对象的。就像我们人一样,每个人都有一个姓名,姓名就是标识我们的符号。
在函数中也能定义变量,如果在函数中定义了一个变量。我在函数外使用这个变量会怎么样呢?可以自行测试。
所以变量定义的位置可以是不同的,根据位置不同有全局变量和局部变量之分(或叫公共变量与私有变量)。
如果在函数外定义了一个变量,在函数里能使用它的值吗?
如果在函数外定义了一个变量,在函数里能改变它的值吗?
如果在函数外定义了一个变量,在函数内能删除这个变量吗?
下面的代码,结果会打印什么呢? 可以先测试一下。

x=5
def 函数1():      #定义函数
    x=12          #给x赋值为12
    del x         #删除变量x 
函数1()
print(x)

上面的函数内有一个x变量,它和函数外的x变量虽然同名称,但它们不是同一个变量。虽然在函数内用del马上又删除了x变量,但不影响外面的x变量。所以结果还是5。函数里定义的变量叫本地变量,也就是局部变量。 如果我想在函数内修改函数外的x的值,要怎么写呢?我们只要在函数内声明x为全局变量即可,语法为:
global x

上面就表示x这个变量是函数外部定义的全局变量,相当于告诉python,你不要再建立同名的x变量了!

#下面是python 局部变量与全局变量 源代码示例:

  
""" 071_局部变量与全局变量.py
   我们已经使用过局部变量与全局变量了。
   局部变量是只能在函数中使用的变量。函数运行结束后,局部变量也就消失了。
   全局变量是在主程序中运行的变量,也就是在函数外定义的变量。
   我们可以在函数中使用全局变量,但只能引用它的值。
   如果在函数中要改变全局变量的值,那么就要加global关键词进行声明。
   表示,现在使用的是在函数外定义的变量。
   如果不使用global进行声明,python会默认建立同名的局部变量。
   当函数运行结束后,同名的局部变量会被删除,并不会影响到全局变量。
   
    
"""
from turtle import *
from time import sleep
r=255
g=12
b=44
bgcolor("black")
红龟=Turtle(visible=False)
红龟.color('gray100','black')      #分别设定海龟的画笔颜色和填充颜色
红龟.shapesize(5)                  #让海龟变大为原来的5倍
红龟.showturtle()

def 改变颜色1():
                                  #在本函数中,直接使用了全局变量的值。
    红龟.fillcolor(r,g,b)         #设定龟的填充颜色为(r,g,b)

改变颜色1()
print("在函数中可以使用全局变量的值")
print(r,g,b)

sleep(2)
def 改变颜色2():
    r=0;g=210;b=55                #python会新建三个同名的r,g,b变量,对外部的r,g,b变量没有影响。
    红龟.fillcolor(r,g,b)         #设定龟的填充颜色为(r,g,b)

改变颜色2()
print("函数中定义的同名r,g,b三个变量,并没有影响到全局变量的值")
print(r,g,b)

sleep(2)
def 改变颜色3():
    global r,g,b                 #声明r,g,b三个变量是全局变量,不必要新建三个同名的r,g,b变量了。
    r=2;g=15;b=225               #改变三个全局变量的值
    红龟.fillcolor(r,g,b)        #设定龟的填充颜色为(r,g,b)

改变颜色3()
print("函数中对r,g,b进行了声明,声明它们是全局变量,所以它们的值改变了")
print(r,g,b)

少儿python编程培训预订开始,单击链接享受优惠:https://item.taobao.com/item.htm?id=544061935133

李兴球

李兴球的博客是Python创意编程原创博客