一、拷贝
python中 变量在存储时, 都为地址(C中指针)拷贝:将变量的值赋值一份,产生新的数据,返回地址a,赋值 为 固定值时, b地址会变 a=10; b=a; b=20b,赋值后 改变 地址中指向对应 值的改变时,b地址不会变 a的值也会变 a=[1,2]; b=a; b[0]=1import copy浅拷贝:copy.copy(对象); copy(对象); 切片直接拷贝地址深拷贝:copy,deepcopy(对象)将地址中对应的值再次拷贝,产
生新的地址值不变 **只有赋值中 变量有地址时才用
[if !supportLists]二、[endif]字典和列表的应用
[if !supportLists]1、[endif]列表中字典
Persons = [
{‘name: ‘zhangsan’, ‘age’: 18, ‘sex’:’男’}]
Print(person[0][‘name’])
[if !supportLists]2、[endif]字典中列表
My_class={‘class_name’:’python1807’,
‘location’: ‘18-6’;
‘all_student’:[
{‘name: ‘d’, ‘age’: 18, ‘sex’:’男’}
{‘name: ‘zh’, ‘age’: 18, ‘sex’:’男’}
] }
Print(my_class[‘all_class’][0][‘school’])
my_class['all_students'].append({...})
for i in my_class['all_students'][:]:注意删时用[:] if i['age'] < 20: 避免少删 my_class['all_students'].remove(i)
[if !supportLists]三、[endif]函数
函数-->对实现莫以特定功能的代码段封装
sum(); max(); range()
A、内置函数
B、自定义函数
1、声明函数方法:
def函数名(参数列表):
函数体
注意:a、def --> python中声明函数的关键字
b、函数名-->标识符,not关键字,见名知义
遵循PEP8(所有字母小写,多单词用_ 隔开)
c、参数列表 -->参数1,参数2,... or 无参
参数是从函数外面传值给函数
d、(): --> 固定格式
f、函数体 -->实现函数功能的代码段
2、函数调用
a、函数名(实参列表)
b、调用过程:
第一步:回到函数声明的地方
第二步:用实参赋值形参(保证参数都有值)
第三步:执行函数体
第四步:返回返回值-->返给函数调用表达式
第五步:回到函数调用位置,continue执行代码
[if !supportLists]四、[endif]函数的参数
1、def fun(a, b, c):
位置参数:按实参顺序对应赋值形参
fun(10, 20, 30)
关键字参数:形参1=值1,形参2=值2,...
fun(a=10, c=30, b=20)
2、默认参数
声明时可以设置参数默认值,但必须放在最后
def fun(a, c, b=20):
3、不定长参数
参数不确定的时,形参前加*,变成元祖
有确定的参数时,*sum必须放最后
def fun(name, *sum):
[if !supportLists]五、[endif]函数的返回值
是函数表达式的值,就是return后面表达式的值
Python中所有函数均有返回值,默认为None
注:执行函数时没return,返回值为None,
有return后面的值
return -->用来返回返回值和结束函数(遇到就结束)