拆包
==目标:==了解拆包的使用。
先来看看在现实生活中的拆包。比如,张同学背着背包来教室上课后,需要从背包中拿出电脑、鼠标、数据线、电源线等,这个过程就是拆包!
接着,看一下在Python程序中的拆包:把组合形成的元组形式的数据,拆分出单个元素内容。
变量名1,变量名2,... = 结果
例如,一起来完成:
(1)在一个函数中,使用return返回求解两个数的和、差;
(2)使用items()方式遍历处理字典中存储的学生信息各个键与值;
(3)分别使用拆包方式来拆分数据。
# 1.定义函数, 返回多个数据 # def get_sum_sub(a, b): # sum = a + b # sub = a - b # return sum,sub # result = get_sum_sub(560,89) # print(result) # (649, 471) # result[0] # result[1] # ret1, ret2 = get_sum_sub(560,89) # print(f"和为:{ret1}") # print(f"差为:{ret2}") # 2.items()处理 student = {"name": "马云", "age": 28, "gender": "男"} # for item in student.items(): # # print(item) # ('name', '马云') # key = item[0] # value = item[1] # for (key,value) in student.items(): for key,value in student.items():print(f"{key} --> {value}")
==总结:==
(1)当要把一个组合的结果快速获取元素数据时,可以使用拆包来完成;
(2)注意:对列表、元组数据结果,都可以使用拆包方式。
交换变量值
==目标:==掌握交换变量值的使用。
使用拆包方式可以用于交换变量的值。
例如,一起来完成:
(1)有变量a、b,请完成变量之间值的交换;
(2)使用引入第三方变量的形式完成数值的交换;
(3)使用拆包方式完成数值交换。
# 1.拆包 -互换两个数位置 a = 10 b = 98 b, a = (a,b) print(f"变量a={a}, b={b}") # (a,b) = (b,a) # 2.求最大最小值 # data = [12,3,14,56,7,0,1,-199] # data = [12,3,14,56,7,100,1,199] # # 1.先入为主; 2.简化操作 # # 最大值 # max_value = data[0] # # 最小值 # min_value = data[0] # # min_value = 0 # for temp in data: # if max_value < temp: # max_value = temp # if min_value > temp: # min_value = temp # print(f"最大值:{max_value}") # print(f"最小值:{min_value}")
==总结:==
(1)交换两个变量的方式较多,但最简单的是:直接使用拆包方式交换值。
了解引用
==目标:==了解什么是引用?
引用可以通俗的称为内存地址值。在Python中,引用有两种表现形式:
(1)十进制数 5040624
(2)十六进制数 0x45AC6 [后期讲解]
注意:在Python中,变量值是通过引用来传递的。
查看引用语法:
id(变量名)
说明:
我们可以把id()值理解为变量所在内存的地址值。
例如,一起来完成:
(1)定义一个变量a,查看变量的引用值;
(2)思考:有两个列表变量[1, 2],分别使用==和is去比较,结果如何?
# 1.定义变量,查看引用 # a = 10 # print(a) # print(id(a)) # 140704783964096 # 明确: 内存地址值是随机分配 # 2.== is # is比较的是内存地址值 # ==比较内容值 alist = [1,2] blist = [1,2] print(alist == blist) # True print(alist is blist) # False print(id(alist)) print(id(blist))
==总结:==
(1)当要查看一个变量的内存地址值时,可以使用()函数;==A、id()==;B、position()
(2)注意:比较两个变量的值是否相等时,使用==;比较两个变量的内存地址值是否相同时,使用is关键字。
把引用当做参数传递
==目标:==了解引用的传递。
我们知道,当定义函数时设定了参数,则在调用函数时也需要传递参数值。
而实际上,当给函数传递参数时,其本质就是:把引用当做参数进行传递。
例如,一起来完成:
(1)定义有一个参数的函数,并在调用函数时传递一个参数值;
(2)同时输出参数值与在函数内的参数的引用值,对比效果。
# 1.定义有参数的函数 def func(a):print("====================")print(f"a的引用值:{id(a)}")print("====================") # 2.外面输出、函数内输出 number = 100 print(id(number)) # 140704783966976 func(number) # 140704783966976 # ==================== # a的引用值:140704783966976 # ====================
==总结:==
(1)当把变量传递给函数时,本质上是:传递变量的引用值。