对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。为了方便自己,所以复制了老师的
1、赋值
赋值,只是创建一个变量,该变量指向原来内存地址,如:
1
2
3
|
n1 = { "k1" : "wu" , "k2" : 123 , "k3" : [ "alex" , 456 ]}
n2 = n1
|
2、浅拷贝
浅拷贝,在内存中只额外创建第一层数据
1
2
3
4
5
|
import copy
n1 = { "k1" : "wu" , "k2" : 123 , "k3" : [ "alex" , 456 ]}
n3 = copy.copy(n1)
|
3、深拷贝
深拷贝,在内存中将所有的数据重新创建一份(排除最后一层,即:python内部对字符串和数字的优化)
1
2
3
4
5
|
import copy
n1 = { "k1" : "wu" , "k2" : 123 , "k3" : [ "alex" , 456 ]}
n4 = copy.deepcopy(n1)
|
函数
函数分为自定义函数,和python的内置函数
定义:
函数是指将一组语句的集合通过一个名字(函数名)封装起来,想要执行这个函数,只需要调用其函数名即可
语法定义:
def hello():#hello是函数名,def关键字用于创建函数 print("hello world...") hello()#调用函数
函数的执行过程:
1、def关键字,创建函数
2、函数名
3、()
4、函数体(函数体默认是不执行的,当我调用时执行)
5、返回值
函数的特性:
1、减少重复代码
2、是程序变的可扩展
3、是程序变得已维护
return返回值的使用:
def ret(): print("hello world") return "success"#在函数中,一旦执行了return后,函数执行过程立即终止,返回值将会赋给我们定义的函数 print(123)#123是不会执行的 r = ret() print(r) hello world success
return默认的返回值:
def ret(): print(123) r = ret() print(r) 123 None#python默认的返回值为none
函数的基本参数:
1、基本参数 == 形参、实参
2、默认参数(必须放置参数的最后面)
3、指定参数 == 相当于a="b"、b="a"
形参、实参定义方法:
def parameter(p1, p2): # 在定义时被称为形参,相当于他是一个变量 print("name:", p1, "age:", p2) return "..." parameter("smelond", 16) # 在调用时我输入的参数被称为实参,大概就是他是一个实际的值,反正我是这样理解的 name: smelond age: 16
默认参数:
def parameter(p1, p2="16"): # 默认参数必须放置在形参列表的最后面 print("name:", p1, "age:", p2) return "..." parameter("smelond") #在调用过程中,如果我不传参进去他就会输出默认的值 name: smelond age: 16
指定参数:
def parameter(p1, p2): # 形参的常规写法 print("name:", p1, "age:", p2) return "..." parameter(p2 = "smelond", p1 = 16) #在调用过程时,我们只需要指定形参名即可 name: 16 age: smelond