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
发表评论