python基础教程,python基础语法_3

  python基础教程,python基础语法

  高级目录01。变量的引用1.1引用的概念1.2‘变量引用的例子’1.3函数的参数传递和返回值02。可变类型和不可变类型的哈希`(哈希`)03。局部变量和全局变量3.1局部变量的作用3.2局部变量的生命周期1)函数不能直接修改全局变量的引用2)在函数内部修改全局变量的值3)全局变量的位置4)全局变量的建议变量命名高级01。参考变量和变量数据存储在存储器中。在Python中,函数的参数传递和返回值都是通过引用传递的。1.1引用的概念在Python中

  变量和数据是分开存储的,存储在内存中的某个位置。变量保存数据。记录在内存地址变量中的数据地址称为引用。使用id()函数检查变量中存储数据的内存地址。注意:如果一个变量已经被定义,当给一个变量赋值时,它实质上修改了数据的引用。

  变量不再引用以前的数据,而是引用新赋值的数据。1.2变量引用的例子在Python中,变量的名字像便利贴一样粘贴在数据上。

  定义一个整数变量A,并将其赋给1个代码。

  图示

  a=1

  将变量a赋给2代码

  图示

  a=2

  定义一个整数变量B,并将变量A的值赋给B代码

  图示

  b=a

  变量B是附在数字2上的第二个标签,其本质是将A引用到B上。

  1.3传递函数的参数和返回值在Python中,函数的参数/返回值是通过引用传递的。

  定义测试(数量):

  打印(- * 50)

  Print(函数中“% d”的内存地址是% x“%(num,id(num)))

  结果=100

  Print(返回值%d在内存中的地址是%x% (result,id(result)))

  打印(- * 50)

  回送结果

  a=10

  Print(调用函数前的内存地址是%x% id(a))

  r=试验(a)

  Print(调用函数后,实际内存地址是%x% id(a))

  Print(调用函数后返回值的内存地址是%x% id(r))02。变量和不可变类型是不可变类型,内存中的数据是不允许修改的:数字类型int、bool、float、complex、long(2 . x)string str tuple tuple tuple tuple变量类型,内存中的数据是可以修改的:list list字典dict a=1

  你好

  a=[1,2,3]

  a=[3,2,1]demo_list=[1,2,3]

  Print(定义列表后内存地址%d% id(demo_list ))

  demo_list.append(999)

  demo_list.pop(0)

  演示_列表.删除(2)

  演示列表[0]=10

  Print(修改的内存地址%d% id(demo_list))

  Demo_dict={name: Xiaoming}

  Print(字典定义后的内存地址%d% id(demo_dict ))

  demo_dict[age]=18

  demo_dict.pop(name )

  Demo_dict[name]=老王

  Print(内存地址% d % id after modified data(demo _ dict))注意:字典的键只能使用不可变的数据。

  注意

  可变数据的改变是通过方法实现的。如果一个变量类型的变量被赋了一个新的数据,引用会修改这个变量,不是引用以前的数据,而是引用新赋数据的散列。

  Python中有一个名为hash(o)的内置函数,它接收不可变类型的数据作为参数,并返回整数哈希作为算法。它的作用是提取数据的特征码(指纹),得到相同的结果,得到不同内容的不同结果。在Python中,设置dictionary的键值对,首先会对key进行哈希处理,已经决定了如何在内存中保存dictionary的数据,以便于dictionary的后续操作:添加、删除、更改、查找键值对的key必须是不可变的数据,键值对的值可以是任意类型的数据。03.局部变量和全局变量局部变量是在函数中定义的变量。只能在函数内部使用全局变量。它是在函数外部定义的变量(不是在某个函数内部定义的)。所有函数都可以在内部使用这个变量。提示:在其他开发语言中,大多数语言不建议使用全局变量3354。变量范围太大,导致程序维护不好!

  3.1局部变量局部变量是在函数内部定义的变量,只能在函数内部使用。函数执行后,函数内部的局部变量将被系统回收。可以定义同名的局部变量,但不会互相影响。它们在函数内部使用,函数内部需要的数据被临时保存。def演示1():

  num=10

  打印(数字)

  数量=20

  打印(修改的%d% num )

  def demo2():

  数量=100

  打印(数字)

  演示1()

  演示2()

  打印( over )局部变量的生命周期所谓生命周期,就是从变量创建到被系统回收的过程。执行该函数时,将创建局部变量。函数执行后,局部变量将被系统回收。在生命周期中,局部变量可以用来存储函数内部临时使用的数据。3.2全局变量是在函数外部定义的变量。所有函数都可以使用这个变量#来定义一个全局变量。

  num=10

  def演示1():

  打印(数字)

  def demo2():

  打印(数字)

  演示1()

  演示2()

  Print(over )注意:当函数被执行时,当变量需要被处理时,它将:

  首先,找出函数内部是否有指定名称的局部变量。如果有,直接用。如果没有,找出函数外是否有指定名称的全局变量。如果有,直接用。如果没有,程序会报错!1)函数不能直接修改全局变量的引用。

  全局变量是在函数外部定义的变量(不是在某个函数中定义的),它可以在所有函数内部使用。提示:在其他开发语言中,通常不建议使用全局变量3354。变量范围太大,导致程序维护不好!

  在函数内部,可以通过引用全局变量来获取相应的数据。但是,不允许直接修改全局变量3354的引用。使用赋值语句修改全局变量num=10的值。

  def演示1():

  打印(演示1 - * 50)

  #只定义了局部变量,不会修改为全局变量,但是变量名是一样的。

  数量=100

  打印(数字)

  def demo2():

  打印(演示2 - * 50)

  打印(数字)

  演示1()

  演示2()

  Print(over )注意:在函数内部只定义了一个局部变量,但是全局变量的值不能在具有相同变量名3354的函数内部直接修改。

  2)修改函数内部全局变量的值。如果需要修改函数中的全局变量,需要使用global声明num=10。

  def演示1():

  打印(演示1 - * 50)

  # global关键字,告诉Python解释器num是一个全局变量

  全局编号

  #只定义了局部变量,不会修改为全局变量,但是变量名是一样的。

  数量=100

  打印(数字)

  def demo2():

  打印(演示2 - * 50)

  打印(数字)

  演示1()

  演示2()

  Print(over)3)全局变量定义的位置为了保证所有函数都能正确使用全局变量,全局变量应该定义在其他函数之上a=10。

  def演示():

  打印( %d % a )

  打印( %d % b )

  打印( %d % c )

  b=20

  演示()

  C=30注意

  因为全局变量C是在函数被调用之后定义的,所以在函数执行的时候,变量还没有定义,所以程序会报错!代码结构图如下

  4)关于全局变量命名的建议。为了避免局部变量和全局变量混淆,有些公司在定义全局变量时有一些开发要求,比如全局变量名称前要加前缀g_或gl_等。提示:要求的具体格式可能因公司而异。

  原创作品来自岁讨厌编程的博主。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: